Powershell超时服务

时间:2011-12-19 20:01:13

标签: powershell service timeout

我正在尝试在Powershell中启动服务。如果服务未在指定的时间限制内启动,则应该终止尝试启动,否则应该像往常一样继续。如何合并超时?

1 个答案:

答案 0 :(得分:6)

使用后台作业实现超时非常简单:

$timeout = [Timespan]"0:0:15"
$start = Get-Date
$j = Start-Job -ScriptBLock { Import-Module MyModule; Invoke-MyCommand}
do {
    if ($j.JobState -ne 'Running') { break} 
    $j | Receive-Job
} while (((Get-Date) - $start) -le $timeout)

此代码块将在15秒后超时,但它应该让您开始。基本上:   - 跟踪时间   - 开始工作   - 等待它不再运行(它可能已经失败,所以不要等待完成)   - 等待时收到结果   - 如果你等了太久就超时

希望这有助于