【问题标题】:Modify Scheduled Task修改计划任务
【发布时间】: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


【解决方案1】:

我从未找到解决此问题的有效解决方案,但我找到了解决方法。

我没有更改计划任务本身的操作,而是创建了一个新的 powershell 脚本,它运行我新部署的应用程序。 我让任务调度程序运行我新创建的脚本,然后在我的正常部署脚本中更改了该脚本的内容。

【讨论】:

    猜你喜欢
    • 2017-01-10
    • 2020-12-07
    • 2016-11-19
    • 1970-01-01
    • 2010-10-21
    • 2012-01-25
    • 1970-01-01
    • 1970-01-01
    • 2011-05-22
    相关资源
    最近更新 更多