Я запускаю скрипт, который выполняет много WMI-запросов - но командлет зависает, если сервер не отвечает ..
Можно ли каким-то образом сделать этот (или любой другой командлет) тайм-аут и выйти, если прошло X секунд?
Редактировать
Благодаря подсказке от 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, уже решена ..