mdlet @Timeout Get-WMIObject
Executo um script que executa muitas consultas WMI - mas o cmdlet trava se o servidor não responder. Existe alguma maneira de fazer com que esse tempo limite (ou qualquer outro cmndlet) seja encerrado e saia se X segundos se passaram ?
Edita
Graças a uma dica do mjolinor, a solução é executar isso como -asjob e definir um tempo limite em um loop while. Mas isso já é executado em um trabalho (iniciado com Start-Job). Então, como sei que estou controlando o trabalho correto?
Este é o meu código de dentro do meu trabalho já iniciado:
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: Meus trabalhos iniciados com Start-Jobs já foram atendidos ..