Jak wyświetlić dzienniki zdarzeń zawierające określony tekst z PowerShell

1

Próbuję szybko pokazać wszystkie zdarzenia z ostatniego dnia w dzienniku zdarzeń systemu Windows, które zawierają pewien ciąg w powłoce zasilania.

Znalazłem komendy PowerShell do wyświetlania zdarzeń, ale zasadniczo chcę je „ZREPODOWAĆ” dla konkretnego tekstu.

Muszę użyć PowerShell, ponieważ celem jest Windows Server 2016 Hyper-V, ale myślę, że byłoby również całkiem przydatne szybko przeszukuj ostatnie zdarzenia na dowolnym komputerze z PowerShell.

Aby wyświetlić dostępne dzienniki, uruchamiam:

PS C: Użytkownicy Administrator & gt; 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

W tym przykładzie wywoływany jest mój docelowy dziennik Podanie

Mogę wydrukować ostatnie 24 godziny dziennika do konsoli za pomocą:

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

Próbowałem filtrować dane wyjściowe za pomocą Select-String ale to nigdy nie pasowało do żadnych linii.

Jon
źródło

Odpowiedzi:

2

Oto co skończyłem. Przeszukuje wartość kilku właściwości zdarzenia dla tekstu i wyświetla je na konsoli:

$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

Przykładowy wynik:

   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.

Jestem nowym użytkownikiem PowerShell, więc może nie być Najlepszym sposobem ale to działa. Mam nadzieję, że za jakiś czas ocali kogoś innego.

Jon
źródło
1

Cieszę się, że to dla ciebie działa.

Punkt uwagi. Mógłbyś również przyjąć to podejście, aby nieco uprościć ...

Podejście to przeszuka wszystkie właściwości przekazane dla wartości ciągu i zwróci dopasowania, bez konieczności zajmowania się sprawą lub określania ciągu wyszukiwania dla każdej właściwości, indywidualnie.

$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 
postanote
źródło