Tente algo assim:
$sb = [scriptblock]::create("Get-Service -computername db-name -Name $sName")
$job = Start-Job -ScriptBlock $sb | Wait-Job -Timeout 10
if($job -eq $null) {
#timed out
}
else {
$service = Receive-Job $job
}
Isso enviará Get-Service
como um trabalho e aguardará a conclusão do trabalho. Ao definir um tempo limite no trabalho, se ele falhar, o retorno será nulo. Faça o tratamento de erros que você precisa se o valor for nulo, ou receba o job e elimine o resultado na variável $service
se ele for concluído. Isso retornará um objeto Deserialized.System.ServiceProcess.ServiceController
. Ajuste -Timeout
em Wait-Job
para atender às suas necessidades.