Uso de WMI para consultar los registros del recopilador de eventos de Windows

Uso de WMI para consultar los registros del recopilador de eventos de Windows

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-Eventlogpara recuperar eventos WEC, pero eso no resuelve mi problema.

Lo que estoy tratando de hacer es usar __InstanceCreationEventy 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 logfileen su WHEREcondición, los eventos reenviados aparecerán en los resultados. Esto es totalmente extraño.

información relacionada