PowerShell添加修改任务计划


关键词

PowerShell添加修改任务计划

摘要

使用PowerShell添加修改任务计划

PowerShell可以读取或修改计划任务所有信息。不过请注意,洪哥是在Windows7,Windows 2008上测试的,貌似Windows2003好像有一些区别的。

下面来举个例子,洪哥要演示的是修改\Microsoft\Windows\RAC\RACTask这个任务的RACTimeTrigger触发器,设置它为Enable状态。大致的思路是首先创建对象,连接到任务计划程序。然后找到任务的目录和任务本身。再下来通过任务的定义获取任务的触发器,找到RACTimeTrigger触发器之后,设置它的Enable属性为$true。最后将对象更新到任务计划程序中。下面看具体步骤:

使用PowerShell添加修改任务计划

PowerShell可以读取或修改计划任务所有信息。不过请注意,洪哥是在Windows7,Windows 2008上测试的,貌似Windows2003好像有一些区别的。

下面来举个例子,洪哥要演示的是修改\Microsoft\Windows\RAC\RACTask这个任务的RACTimeTrigger触发器,设置它为Enable状态。大致的思路是首先创建对象,连接到任务计划程序。然后找到任务的目录和任务本身。再下来通过任务的定义获取任务的触发器,找到RACTimeTrigger触发器之后,设置它的Enable属性为$true。最后将对象更新到任务计划程序中。下面看具体步骤:

# 首先连接到任务计划程序
$service = New-Object -ComObject Schedule.Service
$service.Connect($env:COMPUTERNAME)

# 选择指定目录下的某个任务,洪哥这里测试使用\Microsoft\Windows\RAC\RACTask这个任务:
$folder = $service.GetFolder('\Microsoft\Windows\RAC')
$task = $folder.GetTask('RACTask')

# 获取任务的“定义”,通过定义获取任务的“触发器”,再从触发器中选择ID为“RACTimeTrigger”的触发器,最后把它设置为Enable(启用)的状态。
$definition = $task.Definition
$definition.triggers |
 Where-Object { $_.ID -eq 'RACTimeTrigger' } |
 ForEach-Object { $_.Enabled = $true }
#注意,这里的更新只是更新了PowerShell缓存的对象的属性,并未真正更新到Schedule.Service(任务计划程序)
 
# 将更新写回到任务计划程序
$folder.RegisterTaskDefinition($task.Name, $definition, 4, $null, $null, $null)
#注意:上面参数中的4表示Update。而RegisterTaskDefinition() 函数的返回值是$task这个任务的Definition。

关于任务计划程序的修改,洪哥就演示这么多。

 

要饭二维码

洪哥写文章很苦逼,如果本文对您略有帮助,可以扫描下方二维码支持洪哥!金额随意,先行谢过!大家的支持是我前进的动力!

文章的版权

本文属于“洪哥笔记”原创文章,转载请注明来源地址:PowerShell添加修改任务计划:http://www.splaybow.com/post/powershell-mod-schedule-task.html

如果您在服务器运维、网络管理、网站或系统开发过程有需要提供收费服务,请加QQ:8771947!十年运维经验,帮您省钱、让您放心!
亲,如果有需要,先存起来,方便以后再看啊!加入收藏夹的话,按Ctrl+D

« PowerShell获取Windows用户信息列表 PowerShell将错误编号转换为帮助信息 »