Usando o Powershell, acione uma ação se o evento de Log de Eventos mais recente tiver mais de uma hora

4

Temos um servidor executando nosso software de backup e o software possui seu próprio log de eventos. Eu posso recuperar a entrada de log de eventos mais recente com este comando:

Get-EventLog EventLogName -ComputerName server.example.com -newest 1

Isso me dá resultados assim:

Index Time          EntryType   Source                InstanceID Message
----- ----          ---------   ------                ---------- -------
64292 Aug 13 15:51  Information BackupSoftware             29593 Transfer of 1096 KB...

O que eu gostaria de fazer é acionar uma ação (por exemplo, iniciar um segundo script) se o carimbo de data / hora do evento mais recente tiver mais de uma hora.

Qualquer ajuda seria apreciada.

    
por JeffHarbert 13.08.2013 / 22:04

1 resposta

5
$Event = Get-EventLog Application | ? { $_.Source -EQ 'BackupSoftware' } | Sort Time | Select -Last 1
If($Event.Time -LT (Get-Date).AddHours(-1)) 
{ 
     Do-Stuff 
}

Isso localizará o evento mais recente no log do aplicativo com uma fonte de "BackupSoftware".

$Event = Get-EventLog BackupSoftware | Sort Time | Select -Last 1
If($Event.Time -LT (Get-Date).AddHours(-1)) 
{ 
     Do-Stuff 
}

Isso localizará o evento mais recente em um log personalizado chamado BackupSoftware, independentemente da origem ou do EventId.

Em ambos os casos, o script será Do-Stuff se o evento tiver mais de uma hora.

    
por 13.08.2013 / 22:12