1

イベント ログに簡単に書き込み、その内容を読み取ることもできます。ただし、イベント ビューアのサブセット、主に特定の時間枠内で作成したソースのみをクエリできるようにしたいと考えています。

私が見る限り、マシン名とソースでフィルタリングすることは可能ですが (何らかの理由で、常にアプリケーション ログからすべてを返すようにする必要があります)、日付と時刻ではフィルタリングできません。

LINQで簡単にできました。ただし、アプリケーション ログ全体を調べるため、しばらく時間がかかります。時間が経つにつれて、イベント ビューアーのイベントの数がどんどん大きくなっていくのではないかと思います。

プロセスを高速化するために、通常のパラメーターよりも多くのパラメーターを使用してイベント ビューアーにクエリを実行する方法はありますか?

ありがとう

4

1 に答える 1

0

WMIを使用していくつかのテストを行いましたが、結果のサブセットが少ない場合は、十分に優れたソリューションであることがわかりました。

Dim oMag As New Management.ManagementObjectSearcher("SELECT User, Type,TimeGenerated,Message FROM Win32_NTLogEvent WHERE LogFile = 'Application' AND SourceName = 'Journalisation' AND TimeGenerated >= '20121031180000.000000-000' AND TimeGenerated <= '20121031181500.000000-000'")
Dim oMagColl As Management.ManagementObjectCollection = oMag.Get

For Each oMagObj As Management.ManagementObject In oMagColl
    Msgbox(oMagObj("User") & vbTab & oMagObj("Type") & vbTab & oMagObj("TimeGenerated") & vbTab & oMagObj("Message"))    
Next

日時形式がおかしいと思うだけです。また、何の理由もなく、全体が時間がかかっているように感じることもあります。

いずれにせよ、これは良い解決策だと思います。

于 2012-10-31T18:41:02.510 に答える