
Usar WMI para consultar el registro de eventos es bastante simple, usando Win32_NTLogEvent, por ejemplo:
Get-WmiObject -query "SELECT *FROM Win32_NTLogEvent WHERE (logfile='Application' and SourceName='Something')
Sin embargo, si quiero consultar un registro que contiene eventos recopilados con Windows Event Collector, no aparecen en los resultados, aunque sí aparecen eventos de otras fuentes en el mismo registro.
Puedo usar el cmdlet Get-Eventlog
para recuperar eventos WEC, pero eso no resuelve mi problema.
Lo que estoy tratando de hacer es usar __InstanceCreationEvent
y hacer algo (reenviarlo a una instancia de Kafka) cuando se inserta un nuevo evento en el registro. Verejemplo de Scripting GuyyMódulo de entrada Logstash Eventlogpor ejemplo el uso.
$query = "Select * from __InstanceCreationEvent Where TargetInstance ISA 'Win32_NTLogEvent' And (TargetInstance.LogFile = 'HardwareEvents')"
$Eventwatcher = New-Object management.managementEventWatcher $Query
$Event = $Eventwatcher.waitForNextEvent()
Esto funciona perfectamente para registros normales, pero no con eventos reenviados desde Windows Event Collector.
¿Alguna sugerencia?
Respuesta1
En su suscripción a eventos, si configura el "Registro de destino" en "Sistema" Y si NO lo especifica logfile
en su WHERE
condición, los eventos reenviados aparecerán en los resultados. Esto es totalmente extraño.