2014-06-18 36 views
1

我有一些片状的服务器,导致我的PowerShell脚本挂起。有没有人知道我可以在某种类型的超时或同等方式下编写脚本的方式?GWMI查询挂起PowerShell脚本

导致我在脚本和PowerShell控制台中出现问题的查询是: gwmi win32_computersystem -ComputerName $ server |选择处理器的数量,域名,制造商,型号,物理内存总数

查询只是挂起。这绝对是服务器上的一个问题,但我需要在X时间内没有得到响应时继续执行脚本。

任何建议,将不胜感激。

回答

2

您可以将查询作为工作启动,然后使用Wait-Job等待作业完成或达到超时。超时值以秒为单位。举例:

$job = gwmi win32_computersystem -ComputerName $server -AsJob | Wait-Job -Timeout 30 
if ($job.State -ne 'Completed') { 
    Write-Host "'$server' timed out after 30 seconds." 
    return 
} 
$results = $job | Receive-Job | select numberofprocessors,domain,manufacturer,model,totalphysicalmemory