Come mostrare i log degli eventi contenenti testo specifico da PowerShell


2

Sto cercando di mostrare rapidamente tutti gli eventi dell'ultimo ~ giorno nel registro eventi di Windows che contengono una determinata stringa in Power Shell.

Ho trovato i comandi PowerShell per elencare gli eventi, ma fondamentalmente voglio "GREP" per testo specifico.

Devo usare PowerShell perché l'obiettivo è Windows Server 2016 Hyper-V, ma penso che sarebbe anche molto utile poter cercare rapidamente eventi recenti su qualsiasi macchina con PowerShell.

Per mostrare i registri disponibili, eseguo:

PS C: \ Users \ Administrator> 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

In questo esempio, il mio registro di destinazione si chiama Applicazione

Posso stampare le ultime 24 ore di log sulla console con:

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

Ho provato a filtrare l'output usando Select-Stringma che non corrispondeva mai a nessuna riga.

Risposte:


3

Ecco cosa ho finito per fare. Cerca il valore di diverse proprietà dell'evento per il testo e le mostra sulla 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

Esempio di output:

   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.

Sono nuovo di PowerShell, quindi potrebbe non essere il modo migliore ma funziona. Spero che salverà qualcun altro un po 'di tempo.


1

Sono contento che tu abbia funzionato per te.

Punto di nota. Avresti potuto adottare anche questo approccio, per semplificarlo un po '...

Questo approccio cercherà tutte le proprietà passate per il valore della stringa e restituirà le corrispondenze, senza dover affrontare il caso o specificare la stringa di ricerca per proprietà, 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 
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.