Como mostrar logs de eventos contendo texto específico do powershell

1

Estou tentando mostrar rapidamente todos os eventos do último dia no log de eventos da janela que contém uma determinada string no power shell.

Encontrei comandos do powershell para listar eventos, mas basicamente quero "GREP" para textos específicos.

Eu preciso usar o powershell porque o destino é o Windows Server 2016 Hyper-V, mas acho que também seria bastante útil poder rapidamente pesquisar eventos recentes em qualquer máquina com o powershell.

Para mostrar os registros disponíveis, eu corro:

PS C: \ Usuários \ Administrador > Get-EventLog -List

  Max(K) Retain OverflowAction        Entries Log
  ------ ------ --------------        ------- ---
  20,480      0 OverwriteAsNeeded       1,113 Application
  20,480      0 OverwriteAsNeeded           0 HardwareEvents
     512      7 OverwriteOlder              0 Internet Explorer
  20,480      0 OverwriteAsNeeded           0 Key Management Service
     512      7 OverwriteOlder          1,539 Microsoft-ServerManagementExperience
  20,480      0 OverwriteAsNeeded      28,667 Security
  20,480      0 OverwriteAsNeeded       4,857 System
  15,360      0 OverwriteAsNeeded       3,654 Windows PowerShell

Neste exemplo, meu Log de destino é chamado Aplicativo

Eu posso imprimir as últimas 24 horas de log no console com:

Get-EventLog -LogName system -after (Get-Date).AddDays(-1)

Eu tentei filtrar a saída usando Select-String mas isso nunca correspondeu a nenhuma linha.

    
por Jon 10.08.2018 / 19:29

2 respostas

2

Aqui está o que acabei fazendo. Ele pesquisa o valor de várias propriedades do evento para o texto e as mostra no console:

$search = "hyper"
Get-EventLog -LogName system -after (Get-Date).AddDays(-1) | Where-Object { $_.Category.ToLower().Contains($search.ToLower()) -or $_.Message.ToLower().Contains($search.ToLower()) -or $_.Source.ToLower().Contains($search.ToLower())} | Format-Table -AutoSize -Wrap

Exemplo de saída:

   Index Time          EntryType   Source                 InstanceID Message
   ----- ----          ---------   ------                 ---------- -------
    4751 Aug 10 09:13  Information Microsoft-Windows...           23 NIC /DEVICE/{FD82EC81-DC0D-4655-B606-0AA9AF08E6CC} (Friendly Name: Microsoft Hyper-V Network Adapter) is now operational.
    4750 Aug 10 09:13  Information Microsoft-Windows...           11 The description for Event ID '11' in Source 'Microsoft-Windows-Hyper-V-Netvsc' cannot be found.  The local computer may not have the necessary registr...
    4749 Aug 10 09:13  Information Microsoft-Windows...           24 NIC /DEVICE/{FD82EC81-DC0D-4655-B606-0AA9AF08E6CC} (Friendly Name: Microsoft Hyper-V Network Adapter) is no longer operational.

Sou novo no powershell, por isso pode não ser o melhor mas funciona. Espero que isso salve outra pessoa algum tempo.

    
por 10.08.2018 / 19:29
1

Que bom que você está trabalhando para você.

Ponto de nota. Você poderia ter adotado essa abordagem também, para simplificar um pouco ...

Essa abordagem pesquisará todas as propriedades passadas para o valor da string e retornará as correspondências, sem ter que lidar com maiúsculas e minúsculas ou especificar a string de pesquisa por propriedade, individualmente.

$Search = 'hyper'
(Get-EventLog -LogName system -after (Get-Date).AddDays(-1) | 
Select-Object -Property Category,Index,TimeGenerated,
EntryType,Source,InstanceID,Message) -match $Search | Format-Table -AutoSize

Category Index TimeGenerated        EntryType Source                             InstanceId Message
-------- ----- -------------        --------- ------                             ---------- -------
(0)      19637 10-Aug-18 17:06:16 Information Microsoft-Windows-Hyper-V-VmSwitch        233 The operation '8' ...
(0)      19636 10-Aug-18 17:06:16 Information Microsoft-Windows-Hyper-V-VmSwitch        234 NIC D6727298-4E...
(0)      19635 10-Aug-18 17:05:39 Information Microsoft-Windows-Hyper-V-VmSwitch        233 The operation ...
(0)      19634 10-Aug-18 17:05:39 Information Microsoft-Windows-Hyper-V-VmSwitch        234 NIC 75A04E6E-1...
(1019)   19621 10-Aug-18 12:33:17 Information Microsoft-Windows-Hyper-V-VmSwitch 
    
por 11.08.2018 / 02:57