远程Powershell WMI查询中的超时

时间:2012-02-29 16:21:34

标签: powershell wmi

我有一台约3,500台PC的企业,我必须使用Microsoft的System Center Configuration Manager(SCCM)进行管理。 SCCM客户端在很大程度上依赖于WMI,有时WMI会因任何原因而中断。我正在开发一个Powershell脚本,可以远程修复这些破坏的客户端上的WMI。

我尝试远程查询WMI的大多数客户端都没有问题,而其他客户端只是挂起我的脚本几分钟甚至无限期。我已经使用了WMISearcher对象类型并使用了ReturnImmediately和Timeout Options属性,但是仍然有一些无限期挂起。

我正在寻找要添加到此脚本的内容,以便由于WMI问题,任何客户端都无法挂起我的脚本。

这是我到目前为止的小脚本。该脚本挂起在“$ oResult = $ oWmi.Get()”行。

$oWmi = [WMISearcher]'';
$oWmi.Options.ReturnImmediately = $true;
$oWmi.Options.Timeout = '0:0:2';
$oWmi.Scope.Path = "\\$PCNAME\root\cimv2";
$oWmi.Query = 'SELECT * FROM Win32_OperatingSystem';
$oResult = $oWmi.Get();
$oResult | Out-Null 

2 个答案:

答案 0 :(得分:0)

可能与您的问题没有直接关系,但您是否知道这一点:http://support.microsoft.com/kb/932303

答案 1 :(得分:0)

您是否考虑将这些查询作为后台作业运行?然后,您可以从主脚本中将计时器放在作业上,如果在时间到期之前尚未完成,则可以删除该作业。