DOBON.NET DOBON.NETプログラミング掲示板過去ログ

ManagementObjectSearcherに長いクエリを渡すと関数の評価がタイムアウトする。

  • 題名: ManagementObjectSearcherに長いクエリを渡すと関数の評価がタイムアウトする。
  • 著者: あんず
  • 日時: 2009/01/23 18:08:08
  • ID: 23852
  • この記事の返信元:
    • (なし)
  • この記事への返信:
    • (なし)
  • ツリーを表示
環境/言語:[WindowsXP/C#]
分類:[.NET]

お世話になっております。
C#でWQLを用いて、クライアントの情報を取得しています。
以下のように実装したのですが、クエリが長いものになるとManagementObjectSearcher.Get() の時点で関数の評価がタイムアウトしてしまいます。
Where句以降を個々に指定した場合はうまくいくのですが。。。

※なお、TimeGeneratedに現在時間に近い(例えば5分前など)値を設定した場合も同じエラーになります。
どうかアドバイスをお願いいたします。


//取得
ObjectQuery query = new ObjectQuery("Select Logfile,SourceName,EventCode from Win32_NTLogEvent Where (EventType = 1 or EventType = 2) and (TimeGenerated > '2009/01/23 17:50:12') and (( Message like '%パッケージ%' ) or ( Message like '%ドライバ%' ))");

ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
ManagementObjectCollection queryCollection = searcher.Get();
foreach (ManagementObject mo in queryCollection)
{
Console.WriteLine("ログ名:" + mo["Logfile"]);
Console.WriteLine("エラーの題名:" + mo["SourceName"]);
Console.WriteLine("エラーのID:" + mo["EventCode"]);
}

DOBON.NET | プログラミング道 | プログラミング掲示板