mercoledì 30 luglio 2025

Windows: Come eliminare il contenuto dei registri eventi di sistema

Esistono centinaia di file di registro eventi utilizzati in Windows da vari componenti del sistema operativo e da software di terze parti. Per impostazione predefinita, Windows memorizza i file di registro con estensione EVTX nella directory %SystemRoot%\System32\Winevt\Logs\.

È possibile cancellare i log dei registri eventi di sistema utilizzando il Visualizzatore Eventi (lo snap-in eventvwr.msc), il prompt dei comandi oppure utilizzando PowerShell. Quando si cancella il contenuto di un registro eventi, nel registro eventi Sistema viene generato un evento, con ID 104 o 1102, che indica la pulizia del log, chi l'ha eseguita e quando. È una traccia utile per l'audit.

Registro Eventi Sistema, ID evento 104, Log Clear
FIG 1 - Registro Eventi Sistema, ID evento 104, Log Clear

In questo articolo verranno mostrati in dettaglio i tre metodi più comuni per eliminare il contenuto dei registri eventi.

Metodo 1 - Visualizzatore Eventi (Event Viewer)

Per chi preferisce un approccio visivo (tramite GUI), la console Event Viewer (eventvwr.msc) è la soluzione più immediata: 
  1. Aprire la console di Visualizzatore eventi (premere la combinazione WIN+R e, nella finestra Esegui, digitare eventvwr.msc seguito Invio).
  2. Nel pannello di sinistra, navigare fino al registro eventi che si desidera ripulire (ad esempio, "Applicazione", "Sistema" o "Sicurezza").
  3. Cliccare con il tasto destro del mouse sul nome del registro eventi e selezionare "Cancella registro".

    Cancella registro
    FIG 2 - Cancella registro

  4. Verrà chiesto se si desidera salvare il contenuto del registro prima di cancellarlo. Questa è un'ottima pratica per la risoluzione dei problemi futuri o per la conformità.

    Richiesta conferma di cancellazione
    FIG 3 - Richiesta conferma di cancellazione

Questo metodo è perfetto per una pulizia rapida di un singolo log ma non è consigliato se si intende eseguire l'operazione su un numero elevato di log.


Metodo 2 - Prompt dei comandi

Per eliminare i log del registro eventi tramite il Prompt dei comandi si può utilizzare il tool wevtutil.exe.

Il primo passo consiste nell'individuare il nome del log che si intende eliminare. Per visualizzare l'elenco dei log disponibili avviare il Prompt dei comandi come amministratore e utilizzare il comando
WevtUtil enum-logs
oppure la versione breve
WevtUtil el
Elenco registri eventi
FIG 4 - Elenco registri eventi


Supponiamo di voler eliminare i log contenuti nel registro Applicazione. Il comando da utilizzare è 
WevtUtil cl Application

Per eseguire un backup prima di cancellare il contenuto del registro
WevtUtil cl Application /bu:Application_Bak.evtx
WevtUtil, Backup e cancellazione log del registro eventi Applicazione
FIG 5 - WevtUtil, Backup e cancellazione log del registro eventi Applicazione


Per pulire tutti i log presenti in tutti i registri eventi in un colpo solo, è possibile utilizzare il comando
for /F "tokens=*" %1 in ('wevtutil.exe el') DO wevtutil.exe cl "%1"

Nel caso in cui volessimo utilizzare il comando all'interno di un file BAT la sintassi è leggermente diversa e il comando diventa
for /F "tokens=*" %%1 in ('wevtutil.exe el') DO wevtutil.exe cl "%%1"


Metodo 3 - PowerShell

Avviare la console PowerShell come amministratore. Per visualizzare l'elenco dei registri eventi
Get-WinEvent -ListLog *

Per ciascun registro eventi vengono visualizzati ulteriori dettagli come la dimensione massima, il numero di eventi contenuto e la modalità di log.
Get-WinEvent, Visualizza elenco registri eventi
FIG 6 - Get-WinEvent, Visualizza elenco registri eventi


Per eliminare il contenuto di un registro eventi si utilizza il cmdlet Clear-EventLog. Ad esempio, per eliminare il contenuto del registro eventi Applicazione:
Clear-EventLog –LogName Application
Clear-EventLog, cancellazione log del registro eventi Applicazione
FIG 7 - Clear-EventLog, cancellazione log del registro eventi Applicazione


Per eliminare il contenuto di più registri eventi basta separarli con una virgola. Ad esempio per eliminare il contenuto del registro Sicurezza e Sistema:
Clear-EventLog –LogName Security,System

Per eliminare il contenuto di tutti i registri eventi:
Get-WinEvent -ListLog * -Force | % { Wevtutil.exe cl $_.Logname }
Oppure
wevtutil el | Foreach-Object {wevtutil cl "$_"}


A volte, è possibile imbattersi in un errore di "accesso negato" con alcuni log. Questo può accadere se il log è in uso o se mancano i permessi necessari. In questi casi, un tentativo manuale tramite Event Viewer potrebbe risolvere il problema.




Nessun commento:

Posta un commento

I messaggi sono soggetti a moderazione da parte dell'amministratore prima della loro pubblicazione.