Usando o WMI para consultar logs do Coletor de Eventos do Windows

2

Usar o WMI para consultar o eventlog é bem 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 contenha eventos coletados com o Coletor de Eventos do Windows, eles não serão exibidos nos resultados, mesmo que outros eventos de outras origens no mesmo log.

Eu posso usar o cmdlet Get-Eventlog para recuperar eventos do WEC, mas isso não resolve meu problema.

O que eu estou tentando fazer é usar o __InstanceCreationEvent e fazer algo (encaminhá-lo para uma instância kafka) quando um novo evento é inserido no log. Veja exemplo do Scripting Guy e do Logstash Eventlog módulo de entrada , por 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?

    
por randoms 22.05.2015 / 08:31

1 resposta

0

Em sua Assinatura de Evento, se você definir o "Log de Destino" como "Sistema" E se você NÃO especificar logfile na condição WHERE , os eventos encaminhados serão exibidos nos resultados. Isso é totalmente estranho.

    
por 25.06.2016 / 01:46