
使用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
在您的事件訂閱中,如果您將“目標日誌”設為“系統”,並且您未logfile
在WHERE
條件中指定,則轉送的事件將顯示在結果中。這太奇怪了。