【发布时间】:2018-01-25 14:23:22
【问题描述】:
您好,我正在尝试在我们的任务调度程序中修改我们的一个计划任务的操作,但由于某种原因,它不会改变任何事情。
这是我的代码:
function CreateOrUpdateTaskRunner(){
$taskScheduler = New-Object -ComObject Schedule.Service
$taskScheduler.Connect("localhost")
$taskFolder = $taskScheduler.GetFolder('\')
$task = $taskFolder.GetTask('Rebuild TotalSalesCache Next')
foreach($action in $task.Definition.Actions){
$action.Path = "C:\Users\Administrator\Desktop\TotalSalesCache Builder\RunnerConsole2.exe"
$taskFolder.RegisterTask([string]$task.Name, $task.Definition.XmlText, 4, "REMOVED", "REMOVED", 1, $null)
}
}
执行代码时,不会抛出异常,但任务本身不会更新。在foreach 循环之后打印出任务也不会显示更新的操作。还有其他方法可以更改任务的操作吗?
【问题讨论】:
-
您是否在以管理员身份运行的 PS 控制台下测试过您的功能?如果需要测试,在常规控制台中,运行 `Start-Process powershell -Verb RunAs'
-
我目前在 ISE 中运行它,作为管理员没有运气:(
-
如果您使用的是 Windows 8/Server 2012 或更高版本,则可以通过 Set-ScheduledTask 修改任务的另一种方法。微软链接:docs.microsoft.com/en-us/powershell/module/scheduledtasks/…
-
害怕我的服务器正在运行 2008 R2 :-(
-
对于旧操作系统的这种方法怎么样,它将任务的内容作为 xml 并替换它? superuser.com/questions/763639/…
标签: windows powershell task powershell-4.0