Powershell Start-job在计划作业中的行为与手动执行时不同

时间:2017-02-28 00:15:24

标签: multithreading powershell scheduled-tasks

我有以下Powershell代码,它是预定作业的一部分:

#Start threaded jobs
$ScriptBlock = {
    $timeout = new-timespan -minutes 5
    $sw = [Diagnostics.Stopwatch]::StartNew()
    while ($sw.elapsed -lt $timeout){
        start-sleep -seconds 5 
        }
    if (($sw.elapsed -ge $timeout) -and $sw.IsRunning){shutdown -r -t 20}
}


"Test before job"| Out-File C:\Log.txt -Append

Start-Job $ScriptBlock -name Timeout

"Test after job"| Out-File C:\Log.txt -Append

### do whatever ###

Stop-Job -name Timeout

当我手动运行时,代码按预期执行。但是,如果我将它作为预定的工作运行,那么Job" Timeout"执行但脚本不会并行继续。因此,作业将等待5分钟并重新启动计算机,而不是并行执行命令。

知道为什么会这样吗?

0 个答案:

没有答案