
Die Abfrage des Ereignisprotokolls mit WMI ist ganz einfach. Verwenden Sie beispielsweise Win32_NTLogEvent:
Get-WmiObject -query "SELECT *FROM Win32_NTLogEvent WHERE (logfile='Application' and SourceName='Something')
Wenn ich jedoch ein Protokoll abfragen möchte, das mit dem Windows Event Collector erfasste Ereignisse enthält, werden diese nicht in den Ergebnissen angezeigt, obwohl Ereignisse aus anderen Quellen im selben Protokoll angezeigt werden.
Ich kann das Cmdlet Get-Eventlog
zum Abrufen von WEC-Ereignissen verwenden, aber das löst mein Problem nicht.
Ich versuche, das zu verwenden __InstanceCreationEvent
und etwas zu tun (es an eine Kafka-Instanz weiterzuleiten), wenn ein neues Ereignis in das Protokoll eingefügt wird. SieheBeispiel von Scripting GuyUndLogstash Eventlog-Eingabemodulzum Beispiel die Nutzung.
$query = "Select * from __InstanceCreationEvent Where TargetInstance ISA 'Win32_NTLogEvent' And (TargetInstance.LogFile = 'HardwareEvents')"
$Eventwatcher = New-Object management.managementEventWatcher $Query
$Event = $Eventwatcher.waitForNextEvent()
Dies funktioniert einwandfrei für normale Protokolle, jedoch nicht mit weitergeleiteten Ereignissen vom Windows Event Collector.
Irgendwelche Vorschläge?
Antwort1
Wenn Sie in Ihrem Ereignisabonnement das „Zielprotokoll“ auf „System“ setzen UND logfile
in Ihrer WHERE
Bedingung NICHT angeben, werden die weitergeleiteten Ereignisse in den Ergebnissen angezeigt. Das ist völlig seltsam.