Utilizzare PowerShell per esportare eventi da Windows Server 2008 e successivi

In alcuni casi si ha la necessità di esportare determinati eventi da un server, ad esempio perché devono essere archiviati in percorsi crittografati (normativa sulla privacy), per mancanza di spazio per l’archiviazione sul server o per permettere una gestione avanzata. Per fare questo esistono numerose soluzioni: dall’utilizzo di software di terze parti che eseguono l’operazione in maniera del tutto automatica all’implementazione di script che vanno a scrivere in database.
In questo articolo verrà proposta una soluzione semplice per raggiungere l’obiettivo solo con gli strumenti di Windows Server e senza l’utilizzo di database.

Per prima cosa è necessario predisporre un percorso per l’archiviazione dei file del registro eventi (.EVTX). Se necessario crittografare l’intera cartella, ad esempio tramite EFS. Se si utilizza una condivisione remota considerare che entrambi i computer dovranno disporre di un certificato valido per eseguire la scrittura e la lettura nella cartella crittografata.

A questo punto è possibile procedere alla creazione dello script (.PS1) e pianificare l’esecuzione dello stesso nell’intervallo di tempo specificato tramite l’ “Utilità di pianificazione” di Windows (taskschd.msc).

Prestare attenzione anche all’Execution Policy di PowerShell. Gli script non firmati di default non possono essere eseguiti, quindi potrebbe essere necessario prima configurare l’Execution Policy su “Unrestricted”.

Microsoft TechNet – Using the Set-ExecutionPolicy Cmdlet
Come linguaggio di Scripting è stato utilizzato PowerShell, ma è implementabile anche in VBScript riutilizzando il comando di “wevutil”.

# Percorso o cartella condivisa dove memorizzare i file
$mainpath='\\backupunit\backup_eventi'
# Strutturazione dei nomi file, nel mio caso ho optato per Accounts_giorno_mese
$outputfile=$mainpath+'\Accounts_'+(Get-Date).Month+'_'+(Get-Date).Day+'.evtx'
# Nel mio caso lo script di PowerShell esegue anche l'eliminazione automatica dei file più vecchi di 185 giorni presenti nella cartella
get-childitem $mainpath | where {$_.lastwritetime -lt (get-date).adddays(-185) -and -not $_.psiscontainer -and $_.extension -eq ".evtx"} |% {remove-item $_.fullname -force -verbose}
# Esegue l'esportazione del registro eventi in base al risultato di una query WQL
wevtutil epl Security /q:"*[System[Provider[@Name='Microsoft-Windows-Security-Auditing'] and ((EventID=4624) or (EventID=4634))] and EventData[(Data[@Name='TargetUserName']!='UtenteDaEscludere']]" $outputfile
# Se il file EVTX viene trovato (quindi il salvataggio è stato eseguito correttamente) viene quindi svuotato l'intero registro appena esportato
if(Test-Path $outputfile) {
wevtutil cl Security
}

Per utilizzare l’esportazione dei record dal registro è stato utilizzata l’utilità “WevtUtil”, la descrizione completa del comando è reperibile qui:

Microsoft TechNet – Wevtutil

La query WQL utilizzata nell’esempio esegue un filtro nel registro “Sicurezza”: include solo gli eventi aventi uno degli ID specificati e che non provengono da un determinato nome utente (ad esempio l’account amministrativo).

In alternativa per creare una query WQL personale è possibile utilizzare direttamente il “Visualizzatore eventi” di Windows (eventvwr.msc).

1) Spostarsi sul registro eventi da utilizzare per esportare i dati e creare un nuovo filtro personalizzato.

filtroregistro

2) Configurare le opzioni desiderate nella scheda “Filtro” quindi, senza chiudere la finestra, spostarsi sulla scheda “XML”. La query WQL da utilizzare è specificata nel tag “<select>”.

Selezionando la spunta “Modifica query manualmente” è possibile anche modificare una query manualmente e vedere gli eventi risultanti dopo aver confermato. Se il risultato è corretto è possibile aprire nuovamente il filtro ed esportare quindi la query WQL.

wqlregistro

Tutti gli eventi esportati in una singola esecuzione dello script vengono archiviati sotto forma di un unico file EVTX. Per visualizzarli è possibile utilizzare il “Visualizzatore eventi” di un qualsiasi computer dotato di Windows Vista o successivi (di norma l’estensione del file è associata automaticamente al visualizzatore).

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Informativa
Il sito utilizza i cookie per visualizzare annunci pubblicitari non personalizzati, analizzare il traffico e migliorare l'esperienza utente.
Chiudendo questo banner, scorrendo questa pagina, cliccando su un link o proseguendo la navigazione in altra maniera, si acconsente all’uso di tutti i cookie (anche di terze parti) e si accettano integralmente le condizioni di utilizzo.
Per maggiori informazioni o per negare il consenso a tutti o ad alcuni cookie, consultare questa pagina

Questo sito utilizza i cookie per fornire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o cliccando su "Accetta" permetti il loro utilizzo.

Chiudi