首页 > 系统相关 >【Powershell】Powershell管理计划任务

【Powershell】Powershell管理计划任务

时间:2024-01-10 14:34:29浏览次数:27  
标签:name ## trigger 任务 计划 time New ScheduledTaskTrigger Powershell

欢迎购买我的课程:

https://edu.51cto.com/course/35509.html

前半部分免费,后半部分收费。


适合人群:

对Powershell和域有一定知识的运维和爱好者。

你将会学到:

利用Powershell创建管理计划任务和计划任务的监控及邮件报警

课程简介:

利用Powershell创建管理计划任务和计划任务的监控及邮件报警。

学会后可以用Powershell批量创建各种备份检查监控计划任务,并定期监控,如果遇到报错或任务失败,可以自动邮件报警,做到真正的自动化运维。

课程目录:

E01-Poweshell管理计划任务

E02-计划任务邮件报警

____________________________________________________________________


E01-Poweshell管理计划任务中免费的脚本,请结合视频使用。

#1.ScriptDemo

$name="Test"
$date=Get-Date -Format "yyyyMMdd" 
$parentpath=Split-Path $PSScriptRoot | Split-Path
$path="$parentpath\backups\$name"

#Optional
New-Item $path -ItemType Directory -Name $date
$path1="$parentpath\backups\$name\$date\"

#Scriptblock
New-Item $path1 -ItemType Directory -Name Test

#2.TaskDemo

#Save before run this script#
#run this script with "C:\...\demo.ps1" in another tab

$time= '3 am'
##Once
$trigger = New-ScheduledTaskTrigger -once -At "2024/1/2 5:16:39 AM"

##Once an hour/miniute/second
$trigger = New-ScheduledTaskTrigger -RepetitionInterval 01:00:00 -once -At $time

##Daily
$trigger = New-ScheduledTaskTrigger -daily -At $time

##Every 3 days
$trigger = New-ScheduledTaskTrigger -daily -At $time -DaysInterval 3 

##Every monday
$trigger = New-ScheduledTaskTrigger -Weekly  -DaysOfWeek Monday -At $time

##Every 3rd week on monday
$trigger = New-ScheduledTaskTrigger -Weekly  -DaysOfWeek Monday -At $time -WeeksInterval 3

##AtLogon
$trigger = New-ScheduledTaskTrigger -AtLogon
##AtStartup
$trigger = New-ScheduledTaskTrigger -AtStartup

##TaskDemo
<#
$taskpath="\AD"
$user="NT AUTHORITY\SYSTEM"
$name='GPOWMI'
$path1="$PSScriptRoot\Scripts\gpo\$name.ps1"
New-Item $PSScriptRoot\backups\gpo -ItemType Directory -Name $name   ###Optional CMDlet
$time="07:10 PM"
#>


##with System Account 
##This can cover most task but some still need use specified admin account
<#
$taskpath="\AD"
$user="NT AUTHORITY\SYSTEM"
$name="Delete"
$time="12:00 AM"
#New-Item $PSScriptRoot\backups -ItemType Directory -Name $name -ErrorAction SilentlyContinue
$path1="$PSScriptRoot\Scripts\$name\$name.ps1"

$actions = New-ScheduledTaskAction -Execute 'Powershell.exe' -Argument $path1
$trigger = New-ScheduledTaskTrigger -RepetitionInterval 01:00:00 -once -At $time
$principal = New-ScheduledTaskPrincipal -user $user -RunLevel Highest -LogonType ServiceAccount 
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -Compatibility Win8 -DontStopIfGoingOnBatteries -Hidden -WakeToRun
$task = New-ScheduledTask -Action $actions -Trigger $trigger -Settings $settings  -Principal $principal
Register-ScheduledTask $name -InputObject $task -TaskPath $taskpath

#>


##with Administrator Account
##Some tasks only run sucessfully with admin authority
<#
$taskpath="\AD"
$user101="dhcp\administrator"
$password="Suzhou123"
$name='Test'
$time="12:00 AM"
New-Item $PSScriptRoot\backups -ItemType Directory -Name $name 
$path1="$PSScriptRoot\Scripts\$name\$name.ps1"
$actions = New-ScheduledTaskAction -Execute 'Powershell.exe' -Argument $path1
$trigger = New-ScheduledTaskTrigger -RepetitionInterval 01:00:00 -once -At $time
$principal = New-ScheduledTaskPrincipal -user $user101 -RunLevel Highest -LogonType ServiceAccount 
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -Compatibility Win8 -DontStopIfGoingOnBatteries -Hidden -WakeToRun
$task = New-ScheduledTask -Action $actions -Trigger $trigger -Settings $settings  -Principal $principal
Register-ScheduledTask $name -InputObject $task -TaskPath $taskpath -User $user101 -Password $password
#>


<#Multiple Triggers & ActionsTask
$name='Hibernate'
$path1="$PSScriptRoot\$name.ps1"
$path2="$PSScriptRoot\abc.ps1"
$time1="02:00 AM"
$time2="04:00 AM"
#$user="NT AUTHORITY\SYSTEM"

$actions = (New-ScheduledTaskAction -Execute 'Powershell.exe' -Argument $path1),(New-ScheduledTaskAction -Execute 'Powershell.exe' -Argument $path2)
$trigger = (New-ScheduledTaskTrigger -Daily -At $time1),(New-ScheduledTaskTrigger -Daily -At $time2)
$principal = New-ScheduledTaskPrincipal -user $user -RunLevel Highest -LogonType ServiceAccount 
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -Compatibility Win8 -DontStopIfGoingOnBatteries -Hidden -WakeToRun
$task = New-ScheduledTask -Action $actions -Trigger $trigger -Settings $settings  -Principal $principal
Register-ScheduledTask $name -InputObject $task -TaskPath $taskpath
#>


##SetTask
<#
$name='ErrorAlertMail'
$taskpath="\AD"
$path1="$PSScriptRoot\Scripts\MailNotification\$name.ps1"
$action=New-ScheduledTaskAction -Execute 'Powershell.exe' -Argument $path1 
Set-ScheduledTask $name -Action $action  -TaskPath $taskpath
#>


##Test & TroubleShooting
<#
$taskname="$name"
$taskpath='\ad\'
Get-ScheduledTask -TaskName $taskname -TaskPath $taskpath
Start-ScheduledTask -TaskName $taskname  -TaskPath $taskpath
Get-ScheduledTaskinfo -TaskName $taskname -TaskPath $taskpath
Unregister-ScheduledTask -TaskName $taskname -TaskPath $taskpath -Confirm:$false
#>

#3.AddNewTask

$taskpath="\AD"
$user="NT AUTHORITY\SYSTEM"
$name="Test"
$time="12:00 AM"
New-Item $PSScriptRoot\backups -ItemType Directory -Name $name
$path1="$PSScriptRoot\Scripts\$name\$name.ps1"
$actions = New-ScheduledTaskAction -Execute 'Powershell.exe' -Argument $path1
$trigger = New-ScheduledTaskTrigger -RepetitionInterval 01:00:00 -once -At $time
$principal = New-ScheduledTaskPrincipal -user $user -RunLevel Highest -LogonType ServiceAccount 
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -Compatibility Win8 -DontStopIfGoingOnBatteries -Hidden -WakeToRun
$task = New-ScheduledTask -Action $actions -Trigger $trigger -Settings $settings  -Principal $principal
Register-ScheduledTask $name -InputObject $task -TaskPath $taskpath





##TroubleShooting
<#
$taskname='taskname'
$taskpath='\ad\'
Get-ScheduledTask -TaskName $taskname -TaskPath $taskpath
Start-ScheduledTask -TaskName $taskname  -TaskPath $taskpath
Get-ScheduledTaskinfo -TaskName $taskname -TaskPath $taskpath
Unregister-ScheduledTask -TaskName $taskname -TaskPath $taskpath -Confirm:$false
#>

标签:name,##,trigger,任务,计划,time,New,ScheduledTaskTrigger,Powershell
From: https://blog.51cto.com/xifanliang/9179998

相关文章

  • 【AD】Powershell创建林
    欢迎购买我的课程:https://edu.51cto.com/course/35495.html适合人群:适合对域控和Powershell有一定基础的运维。帮助他们更快部署新林新域的时间,减少人工操作,提升效率。你将会学到:利用Powershell一键创建林、域内的所有DC和卸载所有DC课程简介:通过强大的Powershell,一键创建林、域......
  • 多线程任务管理:深入学习CompletionService的应用
    第1章:引言大家好,我是小黑,咱们都知道,在现代软件开发中,特别是对于Java程序员来说,高效地处理并发任务是一个非常关键的技能。就像在繁忙的餐厅里,多个厨师同时烹饪不同的菜肴一样,程序中的多线程也需要协调地工作。在这个背景下,Java的CompletionService就像是一个管理厨师的调度员,它......
  • 【解决方案】关闭PowerShell更新提示
    ✨PowerShell更新提示从PowerShell7.0开始,PowerShell使用更新通知提醒用户是否存在PowerShell更新。PowerShell每天查询一次联机服务,以确定是否提供较新版本。✨管理通知行为可以通过设置POWERSHELL_UPDATECHECK环境变量来更改更新通知的行为。支持以下值:Off......
  • #星计划# 浅谈鸿蒙的一次开发多端部署
    浅谈鸿蒙的一次开发多端部署背景万物互联时代,应用的设备底座将从几十亿手机扩展到数百亿设备。全新的全场景设备体验,正深入改变消费者的使用习惯,同时应用开发者也面临设备底座从手机单设备到全场景多设备的转变,通过全场景多设备作为全新的底座,为消费者带来万物互联时代更为高效......
  • 【Application Insights】使用Powershell命令向Application Insgihts发送测试数据
    问题描述在昨天的文章中,介绍了“【ApplicationInsights】使用CURL命令向ApplicationInsgihts发送测试数据 ”,今天则继续实验通过PowerShell命令来发送测试数据到ApplicationInsights 问题解答从参考文档中复制出Powershell脚本,然后只需要修改ApplicationInsights的Connect......
  • 软件测试计划
    ......
  • 软件文档-项目计划书.doc
    ......
  • #星计划# 在OpenHarmony上使用网络组件axios与Spring Boot进行前后端交互
    在OpenHarmony上使用网络组件axios与SpringBoot进行前后端交互#jitoa#此博客由金陵科技学院-开放原子开源社李俊杰编写仓库地址:axiosTest·AtomGit_开放原子开源基金会代码托管平台结果演示:在OpenHarmony上使用网络组件axios与SpringBoot进行前后端交互_哔哩哔哩_bilib......
  • 探索跨语言、跨模态、跨任务的大模型驱动应用生态繁荣
    在当今信息爆炸的时代,语言、图像、音频等多种媒体形式在网络中广泛传播。与此同时,人们对于信息的需求也越来越多样化,需要从不同的媒体和任务中提取出有价值的信息。因此,跨语言、跨模态、跨任务的大模型应运而生,成为了人工智能领域的研究热点。这些大模型通过深度学习技术,将不同语言......
  • 鸿蒙原生应用/元服务开发-长时任务
    概述功能介绍应用退至后台后,对于在后台需要长时间运行用户可感知的任务,例如播放音乐、导航等。为防止应用进程被挂起,导致对应功能异常,可以申请长时任务,使应用在后台长时间运行。申请长时任务后,系统会做相应的校验,确保应用在执行相应的长时任务。同时,系统有与长时任务相关联的通知栏......