Una serie di esempi in PowerShell 1.1 su come interrogare il registro eventi di windows.

Vediamo come ottenere, nella giornata corrente, l'ora in cui viene scritto il messaggio "Microsoft (R) Windows (R) 6.00. 6001 Service Pack 1 Multiproc..." (EventId 6009) che corrisponde all'avvio della macchina.
PowerShell
Get-EventLog System -newest 2000 | where {$_.TimeWritten.Date.Equals([DateTime]::Today.Date) -and $_.EventID -eq 6009} | Select TimeWritten
In pratica predo gli ultimi 2000 elementi scritti nel system log, li filtro per data di oggi e codice evento 6009 ed infine mi faccio restituire solo la data (TimeWritten).

Questo esempio, invece, permette di leggere gli ultimi errori scritti
PowerShell
get-EventLog System -newest 1000 | where {$_.entryType -match "Error"}
in alternativa alla stringa "Error" si può usare la costante e leggere anche gli eventi dell'application log
PowerShell
get-EventLog Application -newest 1000 | where {$_.entryType -eq [System.Diagnostics.EventLogEntryType]::Error}

In ultimo, per ottenere un elenco di tutti gli EventLogs
PowerShell
get-Eventlog -list
da un risultato simile al seguente
Max(K) Retain OverflowAction        Entries Name
  ------ ------ --------------        ------- ----
  10.240      0 OverwriteAsNeeded         251 Antivirus
  20.480      0 OverwriteAsNeeded      38.717 Applicazione
  15.168      0 OverwriteAsNeeded           0 Replica DFS
  20.480      0 OverwriteAsNeeded           0 Eventi hardware
     512      7 OverwriteOlder              0 Internet Explorer
  20.480      0 OverwriteAsNeeded           0 Key Management Service
   8.192      0 OverwriteAsNeeded       4.651 Media Center
  20.480      0 OverwriteAsNeeded      38.967 Protezione
  20.480      0 OverwriteAsNeeded      54.421 Sistema
  16.384      0 OverwriteAsNeeded      38.717 Virtual Server
  15.360      0 OverwriteAsNeeded         529 Windows PowerShell
Potrebbe interessarti anche: