我有一台约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
答案 0 :(得分:0)
可能与您的问题没有直接关系,但您是否知道这一点:http://support.microsoft.com/kb/932303?
答案 1 :(得分:0)
您是否考虑将这些查询作为后台作业运行?然后,您可以从主脚本中将计时器放在作业上,如果在时间到期之前尚未完成,则可以删除该作业。