2012-02-29 12 views
1

私はMicrosoftのSystem Center Configuration Manager(SCCM)で管理しなければならない約3,500台のPCのエンタープライズを持っています。 SCCMクライアントはWMIに大きく依存し、何らかの理由でWMIが中断することがあります。これらの壊れたクライアントでWMIをリモートで修復するPowershellスクリプトを開発しています。リモート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

私はその修正プログラムについて知りませんでした。私はそれをチェックするつもりです。 –

0

これらのクエリをバックグラウンドジョブとして実行すると考えましたか?その後、メインスクリプトからタイマーを入力するだけで、時間が経過するまでに完了していない場合は、ジョブを削除できます。

+0

私は持っているし、私はまだそれを行う予定です。しかし、実装が簡単なソリューションがあることを期待していました。 –

関連する問題