WMI を使用して Windows イベント コレクター ログを照会する

WMI を使用して Windows イベント コレクター ログを照会する

WMI を使用してイベント ログを照会するのは、Win32_NTLogEvent を使用すると非常に簡単です。次に例を示します。

Get-WmiObject -query "SELECT *FROM Win32_NTLogEvent WHERE (logfile='Application' and SourceName='Something')

ただし、Windows イベント コレクターで収集されたイベントを含むログをクエリする場合、同じログ内の他のソースからのイベントは結果に表示されますが、それらのイベントは結果に表示されません。

コマンドレットを使用してGet-EventlogWEC イベントを取得することはできますが、それでは問題は解決しません。

私がやろうとしているのは、__InstanceCreationEventログに新しいイベントが挿入されたときに、を使用して何かを実行する(Kafkaインスタンスに転送する)ことです。Scripting Guy の例そしてLogstash イベントログ入力モジュールたとえば使用方法。

$query = "Select * from __InstanceCreationEvent Where TargetInstance ISA 'Win32_NTLogEvent' And (TargetInstance.LogFile = 'HardwareEvents')"
$Eventwatcher = New-Object management.managementEventWatcher $Query
$Event = $Eventwatcher.waitForNextEvent()

これは通常のログでは完全に機能しますが、Windows イベント コレクターから転送されたイベントでは機能しません。

助言がありますか?

答え1

logfileイベント サブスクリプションで、「宛先ログ」を「システム」に設定し、条件を指定しない場合はWHERE、転送されたイベントが結果に表示されます。これはまったく奇妙です。

関連情報