PowerShell脚本实现添加、修改任务计划的例子
PowerShell可以读取或修改计划任务所有信息。不过请注意,小编是在Windows7,Windows2008上测试的,貌似Windows2003好像有一些区别的。
下面来举个例子,小编要演示的是修改\Microsoft\Windows\RAC\RACTask这个任务的RACTimeTrigger触发器,设置它为Enable状态。大致的思路是首先创建对象,连接到任务计划程序。然后找到任务的目录和任务本身。再下来通过任务的定义获取任务的触发器,找到RACTimeTrigger触发器之后,设置它的Enable属性为$true。最后将对象更新到任务计划程序中。下面看具体步骤:
#首先连接到任务计划程序 $service=New-Object-ComObjectSchedule.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。