0

Windows 2008サーバーに一連のパフォーマンスカウンターアラートがあります。アラートが発生すると、イベントビューアーに書き込むように構成しました。

このイベントビューアには、「アプリケーションとサービスのログ/ Microsoft / Windows / Diagnostics-PLA/Operational」と書き込まれます。

このイベントビューアに対して、vbscriptファイルにWMIクエリを記述して、そこでイベントを読み取ろうとしています。

これが私の質問です:

Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colItems = objWMIService.ExecQuery("select * from Win32_NtLogEvent where Logfile = 'Microsoft-Windows-Bits-Client%4Operational'")

問題は、colItems.countをチェックするとゼロが返されることですが、そこにイベントがあることはわかっているので、イベントビューアに移動するとそれらを確認できます。

'アプリケーション'イベントビューアにクエリを実行すると、同じクエリが正常に機能します。

Set colItems = objWMIService.ExecQuery("select * from Win32_NtLogEvent where Logfile = 'Application'")

カウントを正しく返します。

最初のクエリで問題が何であるかについて何か考えはありますか?

4

1 に答える 1

1

WMI は、Windows イベント ログのイベント トレースをサポートしていません。アプリケーション イベント ログ (クエリが機能している) は、Windows イベント テクノロジを使用しない従来のイベント ログです。Win32_NtLogEvent は、従来のイベント ログに記録されたイベントを公開しますが、最近のイベント ログ (Vista で導入) からのイベントは公開しません。ただし、PowerShell コマンドレットGet-WinEventを使用してこれらのログを読み取ることができます。

于 2011-11-17T16:20:09.063 に答える