使用WMI查詢Windows事件收集器日誌

使用WMI查詢Windows事件收集器日誌

使用WMI查詢事件日誌非常簡單,使用Win32_NTLogEvent,例如:

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

但是,如果我想查詢包含使用 Windows 事件收集器收集的事件的日誌,它們不會顯示在結果中,即使來自相同日誌中其他來源的事件也會顯示。

我可以使用 cmdlet來Get-Eventlog擷取 WEC 事件,但這並不能解決我的問題。

我想做的是,__InstanceCreationEvent當日誌中插入新事件時,請使用並執行某些操作(將其轉發到 kafka 實例)。看來自腳本專家的範例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

在您的事件訂閱中,如果您將“目標日誌”設為“系統”,並且您未logfileWHERE條件中指定,則轉送的事件將顯示在結果中。這太奇怪了。

相關內容