【问题标题】:Checking Scheduled Tasks for completion with Powershell使用 Powershell 检查计划任务是否完成
【发布时间】:2015-10-07 15:56:24
【问题描述】:

我在 Windows Server 2012 的任务计划程序中有几个计划任务。我通过 PowerShell 运行这些任务

$Tasks = Get-ScheduledTask -TaskPath "\PathHere\"
Foreach($task in $Tasks)
{
    Start-ScheduledTask | Where {$_.TaskName -notlike 'someExample'}
}

我正在寻找一种方法来检查任务何时完成。我想我可以在$Tasks 中检查任务的状态,但是当编写示例代码来复制问题时......

$task = Get-ScheduledTask someTask -TaskPath "\PathHere\"
Write-Host "State: $($task.State)"
Start-ScheduledTask $task.TaskName -TaskPath "\PathHere\"
Write-Host "State: $($task.State)"

我预计这段代码会产生Ready,然后是Running,但它最终打印出ReadyReady

我还注意到,当任务正在进行时,任务计划程序中的状态并没有改变,就像右键单击并选择运行时一样。详情请见this thread

我正在寻找任何方法来检查任务是否在 PowerShell 中完成。

我在 PowerShell 中四处寻找某种形式的回调,但找不到任何东西。

【问题讨论】:

    标签: powershell scheduled-tasks powershell-4.0


    【解决方案1】:

    CIM 对象不会自动更新自身。您必须手动刷新它们:

    $task=$task|Get-CimInstance
    

    现在您可以重新检查State 属性的值。

    【讨论】:

      猜你喜欢
      • 2014-02-21
      • 2011-12-22
      • 2021-07-23
      • 1970-01-01
      • 2018-04-18
      • 2013-07-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多