2009年07月23日
川俣晶の縁側ソフトウェア技術雑記 total 16007 count

Windows Server 2008のwmic nteventのクエリでType='ERROR'が通らない問題

Written By: 川俣 晶連絡先

 Windows VistaマシンからWindows Server 2008のイベントログを抽出するバッチが上手く動いていませんでした。やっと動くようにできました。

動かなかったケース §

WMIC /node:"ホスト名" NTEVENT WHERE "(LogFile='System' AND Type='ERROR')" GET Message, TimeWritten /format:texttable.xsl|head -30|blatj - -s "akane3 eventlog report" -t メールアドレス

 「利用できるインスタンスがありません。」というエラーが出ます。

動いたケース §

WMIC /node:"ホスト名" NTEVENT WHERE "(LogFile='System' AND EventType='1')" GET Message, TimeWritten /format:texttable.xsl|head -30|blatj - -s "akane3 eventlog report" -t メールアドレス

問題点 §

 Type='ERROR'は通らずEventType='1'は通ります。違いはこれだけです。

 原因は分かりません。

 一応、MSDNで"Win32_NTLogEvent Class"を調べてみましたが、TypeよりEventType使った方がいいよと書いてあるだけで、使えないという記述は(見落としでなければ)見あたりません。

 ちなみにVista+Windows Server 2003ではType='ERROR'で通っていました。