【发布时间】:2014-10-16 01:32:06
【问题描述】:
我运行了一个执行许多 WMI 查询的脚本 - 但如果服务器没有应答,则 cmdlet 会挂起。 如果 X 秒过去了,有什么方法可以让这个(或任何其他 cmdlet)超时并退出?
编辑
感谢 mjolinor 的提示,解决方案是将其作为 -asjob 运行并在 while 循环中设置超时。但这已经从作业中运行(从 Start-Job 开始)。那么我怎么知道我在控制正确的工作呢?
这是我已经开始的工作中的代码:
Get-WmiObject Win32_Service -ComputerName $server -AsJob
$Complete = Get-date
While (Get-Job -State Running){
If ($(New-TimeSpan $Complete $(Get-Date)).totalseconds -ge 5) {
echo "five seconds has passed, removing"
Get-Job | Remove-Job -Force
}
echo "still running"
Start-Sleep -Seconds 3
}
PS:我从 Start-Jobs 开始的工作已经处理好了..
【问题讨论】:
标签: powershell wmi