Estrapolare informazioni dal registro degli eventi con PowerShell

PowerShell eventi
PowerShell eventi

Gli amministratori di sistema, utilizzano in maniera massiccia i log di sistema, e gli script PowerShell, per le loro attività. In questo tips, ti mostrerò come estrapolare informazioni dal registro degli eventi di Windows, utilizzando PowerShell, tale script, può risultare utile quando si ha la necessità di esportare ed automatizzare l’analisi degli eventi, ad esempio potresti voler estrapolare ogni notte determinati eventi, ed inviarli via email, oppure semplicemente archiviarli in un file di testo.

Il comando di cui ci serviremo, per l’estrazione degli eventi è Get-EventLog, esso ti permette di ottenere gli eventi sia dai computer locali sia da quelli remoti. Per impostazione predefinita, Get-EventLog ottiene i log dal computer locale, ma puoi ottenere i log dai computer remoti, utilizzando il parametro ComputerName.

Ogni evento memorizzato nel registro, viene identificato da un ID, ad esempio gli eventi con l’id 41 indicano se il sistema è stato riavviato senza eseguire correttamente la procedura di arresto, l’ID 6008, indica che il sistema è stato arrestato in maniera inaspettata, puoi trovare una lista di alcuni eventi al link ufficiale Microsoft.

Ma ritorniamo al nostro script, supponiamo di voler estrapolare le ultime 100 voci del registro degli eventi, che indichino gli arresti del sistema, molto semplicemente il comando da impartire è:

PS C:\> Get-EventLog System -Newest 100 | `

        Where EventId -in 41,1074,1076,6005,6006,6008,6009,6013 | `

        Format-Table TimeGenerated,EventId,UserName,Message -AutoSize -wrap

Con questo comando chiediamo al sistema di estrarre le ultime 100 voci del registro, relative agli ID 41,1074,1076,6005,6006,6008,6009,6013 e di fornirci il risultato in maniera tabellare. L’output che otterremo è qualcosa di simile all’immagine seguente:

Output Get-EventLog

Puoi reindirizzare l’output su un file di testo, aggiungendo al comando precedente “ > filelog.txt “, dove il segno maggiore indica al sistema di reindirizzare l’output verso il file filelog.txt (puoi personalizzare il nome del file a tuo piacimento).

Conclusioni

Abbiamo visto in questa pillola, come semplice estrapolare informazioni dal registro degli eventi con PowerShell, combinando questo comando, con altri sarai in grado di monitorare gli aspetti più importati del tuo sistema.