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。
关于任务计划程序的修改,小编就演示这么多。