2012-02-29 49 views
1

我有一台需要使用Microsoft System Center Configuration Manager(SCCM)管理的3,500台PC的企业。 SCCM客户端很大程度上依赖于WMI,有时WMI会因为任何原因而中断。我正在开发一个Powershell脚本,用于远程修复这些破损的客户端上的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

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

+0

我不知道该修补程序。我要检查一下。 – 2012-03-01 14:08:07

0

您是否考虑过将这些查询作为后台作业运行?然后,您可以在主脚本中添加计时器,如果该计时器到期时还没有完成,则可以删除该作业。

+0

我有,我仍然打算这样做。但是,我希望有一个更容易实施的解决方案。 – 2012-03-01 14:07:47