Usando WMI para consultar logs do Coletor de Eventos do Windows

Usando WMI para consultar logs do Coletor de Eventos do Windows

Usar o WMI para consultar o log de eventos é bastante simples, usando Win32_NTLogEvent, por exemplo:

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

No entanto, se eu quiser consultar um log que contém eventos coletados com o Windows Event Collector, eles não aparecerão nos resultados, mesmo que eventos de outras fontes no mesmo log apareçam.

Posso usar o cmdlet Get-Eventlogpara recuperar eventos WEC, mas isso não resolve meu problema.

O que estou tentando fazer é usar __InstanceCreationEvente fazer alguma coisa (encaminhá-lo para uma instância kafka) quando um novo evento for inserido no log. Verexemplo da Equipe de ScriptseMódulo de entrada Logstash Eventlogpor exemplo, uso.

$query = "Select * from __InstanceCreationEvent Where TargetInstance ISA 'Win32_NTLogEvent' And (TargetInstance.LogFile = 'HardwareEvents')"
$Eventwatcher = New-Object management.managementEventWatcher $Query
$Event = $Eventwatcher.waitForNextEvent()

Isso funciona perfeitamente para logs normais, mas não com eventos encaminhados do Windows Event Collector.

Alguma sugestão?

Responder1

Na sua assinatura de eventos, se você definir o "Log de destino" como "Sistema" E se NÃO especificar logfileem sua WHEREcondição, os eventos encaminhados aparecerão nos resultados. Isso é totalmente estranho.

informação relacionada