logparser 用に私が書いたツールをチェックアウトできます。SQL に似た作成画面があり、使用できるクエリの例が表示されます。
アプリケーションに LogParser を含める場合は、デプロイ方法に注意してください: logparser binaries distribution、個別に含めたことがわかります。
#1 EventLogReader が Win Server 2003 でサポートされていないため、EventLog クラスにこだわる理由
Visual Log Parserからコードを借りることをお勧めします。
#2 一度に複数のサーバーに対してクエリを実行する必要がある
LogParser は、複数のサーバーと複数のログのクエリに最適です。すべてのログをまとめて表示し、時間ごとに並べ替えたり、発生ごとにグループ化したりすることは非常に便利です。
#3すべてのイベントログをクエリしているわけではなく、日付範囲のイベントログをクエリしています。イベントログが特定の範囲に収まるだけでよい場合、高速化する方法はありますか?
はい、LogParser はフル オン フライで、疾走する列車よりも高速です! DateRange で Evt ログをクエリする方法は次のとおりです。
SELECT Extract_FileName(EventLog) AS EventLog, RecordNumber, TimeGenerated, EventID, EventType, EventTypeName, EventCategoryName, SourceName, ComputerName, Message FROM
\\servername\Application
WHERE TimeWritten > '2011-01-25 12:01:00'
AND TimeWritten < '2012-01-25 12:01:00'
#4 試してみたところ、Log Parser Studio はローカル システムやリモート サーバーではなく、ログ ファイルでのみ動作するようです。
Log Parser Studio は logparser の単なる GUI です。動作するはずです。ドメイン内のすべてのログを取得するには、この生のクエリを (LP Studio で LogParser を直接使用せずに) 試してください。
LogParser "SELECT SourceName,TimeGenerated,TimeWritten,Message INTO filename.csv FROM \\Server\Application where Message Like '%mydomain.com%'" -o:CSV