lunedì 18 agosto 2025

Windows: Robocopy

La gestione dei dati è fondamentale, che si tratti di un semplice backup di documenti personali o della migrazione di un'intera infrastruttura aziendale, la capacità di spostare e copiare file in modo efficiente, affidabile e veloce è cruciale. Sebbene l'interfaccia grafica di Esplora file sia più che sufficiente per le attività quotidiane, Windows offre uno strumento a riga di comando che rappresenta la scelta preferita per i professionisti IT e gli utenti avanzati: Robocopy.

Robocopy, abbreviazione di "Robust File Copy", è un'utility a riga di comando integrata in tutti i sistemi operativi Windows moderni.  Il suo scopo principale è quello di copiare file e directory da una posizione all'altra, ma con una serie di funzionalità avanzate che lo distinguono da comandi più semplici come `copy` o `xcopy`. La sua "robustezza" deriva dalla capacità di riprendere le operazioni interrotte, di gestire la copia di permessi e attributi, e di operare in modalità specchio (mirroring) per sincronizzare il contenuto di due cartelle in modo bidirezionale.

I vantaggi nell'utilizzo di Robocopy sono
  • Robustezza: Se la copia viene interrotta a causa di un problema di rete o di un errore, Robocopy può riprendere da dove si era fermato, senza dover ricominciare tutto da capo. L'opzione `/Z` (restartable mode) è il cuore di questa funzionalità.
  • Velocità: Con l'opzione di copia multi-thread, Robocopy può copiare file in parallelo, migliorando notevolmente la velocità di trasferimento, specialmente su collegamenti veloci e con tanti file piccoli.
  • Controllo Granulare: Si ha un controllo granulare su cosa viene copiato, escluso o modificato. É possibile specificare se copiare sottocartelle vuote, escludere file per nome o dimensione, o mantenere attributi e permessi.
  • Automazione: Essendo un'utility a riga di comando, Robocopy si presta perfettamente all'uso in script e file batch per automatizzare le operazioni di backup e sincronizzazione, rendendole ripetibili e programmate.

Per utilizzare Robocopy si consiglia di aprire il Prompt dei comandi con privilegi amministrativi. L'uso dei privilegi amministrativi garantisce che Robocopy possa superare eventuali restrizioni di accesso ai file (a meno che non si utilizzino opzioni specifiche come `/b` per la modalità backup).

Sintassi e Parametri Fondamentali

La sintassi di base di robocopy è semplice ma potente:
robocopy <origine> <destinazione> [<file>[ ...]] [<opzioni>]
  • <origine>: Specifica il percorso della directory da cui vuoi copiare.
  • <destinazione>: Specifica il percorso della directory dove vuoi copiare i file.
  • [<file>[ ...]]: Il nome del file o dei file da copiare. I caratteri jolly (`*` e `?`) sono supportati. Se omesso, Robocopy copierà tutti i file (`*.*`).
  • [<opzioni>]: Le opzioni di comando che definiscono il comportamento di Robocopy.

Per esempio, per copiare il file `report.zip` dalla cartella `c:\reports` alla condivisione di rete `\\backup\reports` in modalità multi-thread e riavviabile, il comando sarà:
robocopy c:\reports "\\backup\reports" report.zip /mt /z


Opzioni di Copia Essenziali


Opzione Descrizione
/s
Copia le sottodirectory, ma esclude quelle vuote.
/e
Copia le sottodirectory, incluse quelle vuote. Questa è l'opzione più comune per la copia completa di una cartella.
/lev:<n>
Copia solo i primi n livelli dell'albero delle directory di origine.
/z
Copia i file in modalità riavviabile. In modalità riavviabile, in caso di interruzione di una copia di file, robocopy può riprendere la posizione in cui è stata interrotta invece di ricopiare l'intero file.
/b
Copia i file in modalità di backup. In modalità di backup robocopy esegue l'override delle impostazioni di autorizzazione per file e cartelle (ACL), che potrebbero altrimenti bloccare l'accesso.
/zb
Copia i file in modalità riavviabile. Se l'accesso ai file viene negato, passa alla modalità di backup.
/j
Copia con I/O senza buffer (scelta consigliata per file di grandi dimensioni).
/efsraw
Copia tutti i file crittografati in modalità RAW EFS.
/j
Copia con I/O senza buffer (scelta consigliata per file di grandi dimensioni).
/copy:<copyflags>
Specifica le proprietà del file da copiare. I valori validi per questa opzione sono:
D - Data
A - Attributes
T - Time stamps
X - Skip alt data streams
S - NTFS access control list (ACL)
O - Owner information
U - Auditing information

Il valore predefinito per l'opzione /COPY è DAT (dati, attributi e timestamp). Il flag X viene ignorato se si utilizza /B o /ZB.
/dcopy:<copyflags>
Specifica cosa copiare nelle directory. I valori validi per questa opzione sono:
D - Data
A - Attributes
T - Time stamps
E - Extended attribute
X - Skip alt data streams
Il valore predefinito per questa opzione è DA (dati e attributi).
/sec
Copia i file con sicurezza (equivalente a /copy:DATS).
/copyall
Copia tutte le informazioni del file (equivalente a /copy:DATSOU).
/nocopy
Non copia le informazioni sui file (utile con /purge).
/secfix
Consente di correggere la sicurezza in tutti i file, anche quelli ignorati.
Quando si utilizza l'opzione di copia /secfix, specificare il tipo di informazioni di sicurezza che si desidera copiare, utilizzando una delle seguenti opzioni di copia aggiuntive:
/copyall
/copy:o
/copy:s
/copy:u
/sec
/timfix
Consente di correggere gli orari in tutti i file, anche quelli ignorati.
/purge
Elimina i file e le directory di destinazione che non esistono più nell'origine. Utilizzando questa opzione con l'opzione /e e una directory di destinazione, è possibile evitare la sovrascrittura delle impostazioni di sicurezza della directory di destinazione.
/mir
Esegue il mirroring di una struttura di directory (equivalente a /e più /purge). Utilizzando questa opzione con l'opzione /e e una directory di destinazione, sovrascrive le impostazioni di sicurezza della directory di destinazione.
/mov
Sposta i file ed elimina i file dall'origine dopo la copia.
/move
Sposta i file e le directory ed elimina i file dall'origine dopo la copia.
/a+:[RASHCNET]
Aggiunge gli attributi specificati ai file copiati. I valori validi per questa opzione sono:
R - Read only
A - Archive
S - System
H - Hidden
C - Compressed
N - Not content indexed
E - Encrypted
T - Temporary
/a-:[RASHCNETO]
Rimuove gli attributi specificati dai file copiati. I valori validi per questa opzione sono:
R - Read only
A - Archive
S - System
H - Hidden
C - Compressed
N - Not content indexed
E - Encrypted
T - Temporary
O - Offline
/create
Crea solo un albero di directory e file di lunghezza zero.
/fat
Crea file di destinazione usando solo nomi di file FAT di lunghezza di 8,3 caratteri.
/256
Disattiva il supporto per i percorsi con più di 256 caratteri.
/mon:<n>
Monitora la fonte e si riavvia quando vengono rilevate più di n modifiche.
/mot:<m>
Monitora la fonte e si riavvia dopo m minuti se vengono rilevate modifiche.
/rh:hhmm-hhmm
Specifica i tempi di esecuzione in cui è possibile avviare nuove copie.
/pf
Controlla i tempi di esecuzione per ogni file (non per passaggio).
/ipg:<m>
Specifica il divario tra pacchetti per liberare la larghezza di banda nelle linee lente.
/sj
Copia le giunzioni (collegamenti flessibili) nel percorso di destinazione anziché le destinazioni di collegamento.
/sl
Non seguire i collegamenti simbolici e creare invece una copia del collegamento.
/mt:<m>
Crea copie multithread con n thread. n deve essere un numero intero compreso tra 1 e 128. Il valore predefinito per n è 8. Per ottenere prestazioni migliori, reindirizzare l'output utilizzando l'opzione /log.
Il parametro /mt non può essere utilizzato con i parametri /ipg e /efsraw.
/nodcopy
Non copia le informazioni della directory (viene eseguita l'operazione predefinita /dcopy:DA).
/nooffload
Copia i file senza usare il meccanismo di offload copia di Windows.
/compress
Richiede la compressione di rete durante il trasferimento di file, se applicabile.
/sparse:<y|n>
Abilita o disabilita la conservazione dello stato sparse dei file durante il processo di copia. Se non viene selezionata alcuna opzione, l'impostazione predefinita è sì (abilitato).
/noclone
Non tenta di bloccare la clonazione come ottimizzazione.


Copiare le opzioni di limitazione dei file

Queste opzioni di limitazione vengono usate per specificare la larghezza di banda di I/O massima che Robocopy consente di usare in byte al secondo.  Se non si specifica il valore in byte al secondo, è possibile utilizzare numeri interi se si specificano k, m o g. La larghezza di banda I/O minima limitata è 524288 byte anche se si specifica un valore inferiore.
Opzione Descrizione
/iomaxsize:<n>[kmg]
La dimensione massima richiesta per ciclo di lettura/scrittura in kilobyte, megabyte o gigabyte.
/iorate:<n>[kmg]
La velocità di I/O richiesta in kilobyte, megabyte o gigabyte al secondo.
/threshold:<n>[kmg]
La soglia della dimensione del file per la limitazione in kilobyte, megabyte o gigabyte


Opzioni di selezione file

Opzione Descrizione
/a
Copia solo i file per i quali è impostato l'attributo Archivio.
/m
Copia solo i file per i quali è impostato l'attributo Archivio e reimposta l'attributo Archivio.
/ia:[RASHCNETO]
Include solo i file per i quali sono impostati gli attributi specificati. I valori validi per questa opzione sono:
R - Read only
A - Archive
S - System
H - Hidden
C - Compressed
N - Not content indexed
E - Encrypted
T - Temporary
O - Offline
/xa:[RASHCNETO]
Esclude solo i file per i quali sono impostati gli attributi specificati. I valori validi per questa opzione sono:
R - Read only
A - Archive
S - System
H - Hidden
C - Compressed
N - Not content indexed
E - Encrypted
T - Temporary
O - Offline
/xf [ ...]
Esclude i file che corrispondono ai nomi o ai percorsi specificati. Sono supportati i caratteri jolly (* e ?).
/Xd [ ...]
Esclude le directory che corrispondono ai nomi e ai percorsi specificati.
/xc
Esclude i file esistenti con lo stesso timestamp, ma dimensioni di file diverse.
/xn
I file di directory di origine più recenti rispetto alla destinazione vengono esclusi dalla copia.
/xo
I file della directory di origine precedente a quella di destinazione vengono esclusi dalla copia.
/xx
Esclude file e directory aggiuntivi presenti nella destinazione, ma non nell'origine. L'esclusione di file aggiuntivi non elimina i file dalla destinazione.
/xl
Esclude file e directory "solitari" presenti nell'origine ma non nella destinazione. L'esclusione di file solitari impedisce l'aggiunta di nuovi file alla destinazione.
/im
Includere i file modificati (tempi di modifica diversi).
/is
Include gli stessi file. Gli stessi file sono identici per nome, dimensioni, orario e tutti gli attributi.
/it
Include file "modificati". I file modificati hanno lo stesso nome, dimensioni e orario, ma attributi diversi.
/max:<n>
Specifica la dimensione massima del file (per escludere i file più grandi di n byte).
/min:<n>
Include file "modificati". I file modificati hanno lo stesso nome, dimensioni e orario, ma attributi diversi.
/maxage:<n>
Specifica l'età massima dei file per escludere i file più vecchi di n giorni o una data basata sull'ultima modifica dei file.
/minage:<n>
Specifica l'età minima dei file per escludere quelli più recenti di n giorni o una data basata sull'ultima modifica dei file.
/maxlad:<n>
Specifica la data massima dell'ultimo accesso (esclude i file inutilizzati da n).
/minlad:<n>
Specifica la data minima dell'ultimo accesso (esclude i file utilizzati dopo n). Se n è inferiore a 1900, n specifica il numero di giorni. Altrimenti, n specifica una data nel formato YYYYMMDD.
/xj
Esclude i punti di giunzione, che vengono normalmente inclusi per impostazione predefinita.
/fft
Presuppone i tempi dei file FAT (precisione di due secondi).
/dst
Compensa le differenze di tempo di un'ora DST.
/xjd
Esclude i punti di giunzione per le directory.
/xjf
Esclude i punti di giunzione per i file.


Opzioni di riprova

Opzione Descrizione
/r:<n>
Specifica il numero di tentativi per le copie non riuscite. Il valore predefinito di n è 1.000.000 (un milione di tentativi).
/w:<n>
Specifica il tempo di attesa tra i tentativi, in secondi. Il valore predefinito di n è 30 (tempo di attesa 30 secondi).
/reg
Salva i valori specificati nelle opzioni /r e /w come impostazioni predefinite nel Registro di sistema.
/tbd
Specifica che il sistema attende che i nomi delle condivisioni vengano definiti (errore di ripetizione del tentativo 67).
/lfsm
Funziona in modalità di spazio libero insufficiente che consente la copia, la pausa e la ripresa
/lfsm:<n>[kmg]
Specifica le dimensioni del pavimento in n kilobyte, megabyte o gigabyte.

Opzioni di registrazione (Log)
L'opzione di logging è cruciale per la verifica e l'automazione.

Opzione Descrizione
/l
Specifica che i file devono essere solamente elencati (e non copiati, eliminati o contrassegnati come timestamp).
/x
Segnala tutti i file aggiuntivi, non solo quelli selezionati.
/v
Produce un output dettagliato e mostra tutti i file ignorati.
/ts
Include i timestamp dei file di origine nell'output.
/fp
Include i nomi completi dei percorsi dei file nell'output.
/bytes
Stampa le dimensioni come byte.
/ns
Specifica che le dimensioni dei file non devono essere registrate.
/nc
Specifica che le classi dei file non devono essere registrate.
/nfl
Specifica che i nomi dei file non devono essere registrati.
/ndl
Specifica che i nomi di directory non devono essere registrati.
/np
Specifica di non visualizzare lo stato di avanzamento dell'operazione di copia (il numero di file o directory copiati finora).
/eta
Mostra il tempo stimato di arrivo (ETA) dei file copiati.
/log:<logfile>
Scrive l'output di stato nel file di log sovrascrivendo il file di log esistente.
/log+:<logfile>
Scrive l'output dello stato nel file di registro (aggiunge l'output al file di registro esistente).
/unilog:<logfile>
Scrive l'output dello stato nel file di registro come testo Unicode (sovrascrive il file di registro esistente).
/unilog+:<logfile>
Scrive l'output dello stato nel file di registro come testo Unicode (aggiunge l'output al file di registro esistente).
/tee
Scrive l'output dello stato nella finestra della console e nel file di registro.
/njh
Specifica che non è presente alcuna intestazione del processo.
/njs
Specifica che non è presente alcun riepilogo del lavoro.
/unicode
Visualizza l'output dello stato come testo Unicode.

Opzioni processo (Job)

Opzione Descrizione
/job:<jobname>
Specifica che i parametri devono essere derivati dal file di processo denominato. Per eseguire /job:jobname, è prima necessario eseguire il parametro /save:jobname per creare il file di processo.
/save:<jobname>
Specifica che i parametri devono essere salvati nel file di processo denominato. Questa operazione deve essere eseguita prima di eseguire /job:jobname. Tutte le opzioni di copia, ripetizione e registrazione devono essere specificate prima di questo parametro.
/quit
Esce dopo l'elaborazione della riga di comando (per visualizzare i parametri).
/nosd
Indica che non è specificata alcuna directory di origine.
/nodd
Indica che non è specificata alcuna directory di destinazione.
/if
Include i file specificati.


Codici di Uscita (Return Codes)

Al termine di un'operazione, Robocopy restituisce un codice numerico che può essere catturato da script batch per prendere decisioni.
Valore Descrizione
0
Nessun file copiato. Non è stato rilevato alcun errore. Nessun file non corrispondente. I file esistono già nella directory di destinazione, pertanto, l'operazione di copia è stata ignorata.
1
Tutti i file sono stati copiati correttamente.
2
Nella directory di destinazione sono presenti alcuni file aggiuntivi che non sono presenti nella directory di origine. Nessun file copiato.
3
Alcuni file sono stati copiati. Erano presenti file aggiuntivi. Non è stato rilevato alcun errore.
5
Alcuni file sono stati copiati. Alcuni file non corrispondono. Non è stato rilevato alcun errore.
6
Esistono file aggiuntivi e file non corrispondenti. Non sono stati copiati file e non sono stati rilevati errori, il che significa che i file esistono già nella directory di destinazione.
7
I file sono stati copiati, erano presenti una mancata corrispondenza dei file e file aggiuntivi.
8
Diversi file non sono stati copiati.

Qualsiasi valore uguale o maggiore di 8 indica che si è verificato almeno un errore durante l'operazione di copia.

Note

  • L'utilizzo di /PURGE o /MIR nella directory radice del volume in precedenza causava l'applicazione dell'operazione richiesta da parte di robocopy anche ai file all'interno della directory System Volume Information. Questo non è più il caso come se sia specificato, robocopy ignora tutti i file o le directory con tale nome nelle directory di origine e di destinazione di primo livello della sessione di copia.
  • La classificazione dei file modificati si applica solo quando i file system di origine e di destinazione supportano timestamp di modifica, ad esempio NTFS, e i file di origine e di destinazione hanno tempi di modifica diversi, ma per il resto sono gli stessi. Questi file non vengono copiati per impostazione predefinita. Specificare /IM per includerli.
  • Il flag /DCOPY:E richiede che venga tentata la copia estesa degli attributi per le directory. Robocopy continua l'operazione di copia anche se non è stato possibile copiare le EA di una directory. Questo flag non è incluso in /COPYALL.
  • Se si specifica /IoMaxSize o /IoRate, robocopy abilita la limitazione dei file di copia per ridurre il carico del sistema. Entrambi possono essere modificati in valori ottimali e parametri di copia, ma il sistema e robocopy sono autorizzati a modificarli in base ai valori consentiti in funzione delle esigenze.
  • Se si utilizza /Threshold, viene specificata una dimensione minima del file per l'attivazione della limitazione. I file al di sotto delle dimensioni non vengono limitati. I valori per tutti e tre i parametri possono essere seguiti da un carattere di suffisso facoltativo, ad esempio [KMG] (kilobyte, megabyte, gigabyte).
  • L'utilizzo di /LFSM richiede che robocopy funzioni in "modalità spazio libero insufficiente". In questa modalità robocopy si sospende ogni volta che una copia di file causa lo spazio disponibile del volume di destinazione al di sotto di un valore "floor". Questo valore può essere specificato in modo esplicito utilizzando il flag /LFSM:n[KMG].
  • Se si specifica /LFSM senza alcun valore di piano esplicito, il piano viene impostato su 10% delle dimensioni del volume di destinazione. La modalità di spazio libero insufficiente non è compatibile con /MT e /EFSRAW.


Esempi


Esempio 1 - Copia Base con Log
Questo comando copia tutti i file e le sottodirectory, comprese quelle vuote, da una cartella di origine a una di destinazione. Inoltre, crea un file di log per registrare l'operazione, permettendo di verificarne l'integrità successivamente.
robocopy C:\Users\Admin\Records D:\Backup /E /ZB /LOG:C:\Logs\Backup.log
  • robocopy C:\Users\Admin\Records D:\Backup: Indica l'origine (C:\...) e la destinazione (D:\...).
  • /E: Copia le sottodirectory, comprese quelle vuote.
  • /ZB: Usa la modalità di backup. Se l'utente non ha i permessi completi, prova a usare la modalità di backup per garantire la copia di tutti i file.
  • /LOG:C:\Logs\Backup.log: Crea un file di log chiamato Backup.log nel percorso specificato. Se il file esiste, lo sovrascrive. Usa /LOG+ per aggiungere al file di log esistente.

Esempio 2 - Mirroring (Sincronizzazione)
Questa opzione esegue il "mirroring" di una cartella, rendendo la destinazione una copia esatta dell'origine. I file nella destinazione che non esistono nell'origine vengono eliminati, garantendo una sincronizzazione perfetta.
robocopy C:\Users\Admin\Records D:\Backup /MIR /R:2 /W:5 /LOG:C:\Logs\Backup.log
  • /MIR: Esegue il mirroring. Attenzione: questo parametro elimina i file nella destinazione che non sono presenti nell'origine.
  • /R:2: Imposta 2 tentativi in caso di errori di copia.
  • /W:5: Imposta un'attesa di 5 secondi tra i tentativi.

Esempio 3 - Copia con Multithreading
Questo comando copia file e sottodirectory non vuote, mantenendo i metadati originali (data, attributi, timestamp). L'uso del multithreading accelera notevolmente il processo, specialmente con un gran numero di file piccoli.
robocopy C:\Users\Admin\Records D:\Backup /S /E /COPY:DAT /MT:16 /LOG:C:\Logs\Backup.log
  • /S: Copia le sottodirectory, ma non quelle vuote.
  • /COPY:DAT: Preserva i dati (D), gli attributi (A) e i timestamp (T) dei file.
  • /MT:16: Utilizza 16 thread per la copia. Si possono specificare da 1 a 128 thread.

Esempio 4 -  Spostamento di File (Taglia e Incolla)
A differenza della copia, lo spostamento sposta i file e le cartelle dall'origine alla destinazione. Questa opzione è utile per trasferire dati e liberare spazio nell'origine.
robocopy C:\Users\Admin\Records D:\Backup /S /MAXAGE:7 /MOV /LOG:C:\Logs\Backup.log
  • /MOV: Sposta i file, cancellandoli dall'origine dopo la copia.
  • /MAXAGE:7: Sposta solo i file che sono stati modificati negli ultimi 7 giorni.

Esempio 5 - Sincronizzazione Aggressiva
Questo comando combina l'opzione di eliminazione di file obsoleti (/PURGE) con la visualizzazione di un tempo stimato per ogni file (/ETA). È un'opzione di sincronizzazione più aggressiva del mirroring.
robocopy C:\Users\Admin\Records D:\Backup /ETA /PURGE /LOG:C:\Logs\Backup.log
  • /PURGE: Elimina file e directory dalla destinazione se non esistono più nell'origine. È simile a /MIR ma non copia i permessi di sicurezza dei file.
  • /ETA: Mostra il tempo stimato per il completamento della copia per ogni file.

Esempio 6 - Limitazione della Velocità di I/O
Questo è utile per evitare che il processo di copia sovraccarichi la rete o il disco, rendendolo più gestibile in contesti dove la banda è limitata.
robocopy C:\Records D:\Backup /iorate:1m
  • /iorate:1m: Limita la velocità di I/O a 1 megabyte al secondo. Si possono usare vari suffissi (K per kilobyte, M per megabyte, G per gigabyte).

Esempio 7 - Evitare la Copia di File Esistenti
Questo comando è utile per un aggiornamento selettivo. Robocopy ignora i file che esistono già nella destinazione, indipendentemente dalla loro data di modifica.
robocopy C:\Source C:\Destination /XC /XN /XO
  • /XC: Esclude i file che sono cambiati (stesso nome, contenuto diverso).
  • /XN: Esclude i file nuovi (esistono nella sorgente ma non nella destinazione).
  • /XO: Esclude i file obsoleti (esistono nella destinazione ma non nella sorgente).



sabato 16 agosto 2025

MS Excel: Aggiungere una mappa dinamica ai dati di una tabella

Questo articolo illustra la procedura per creare una mappa interattiva collegata a una tabella in Excel. Supponiamo di avere una tabella con dei dati come quella mostrata in FIG 1.
Tabella Excel
FIG 1 - Tabella Excel

Per convertire il set di dati in una tabella, selezionare una qualsiasi cella al suo interno e premere la combinazione di tasti CTRL+T. Nella finestra di dialogo Crea tabella, verificare che l'opzione Tabella con intestazioni sia spuntata e che l'intervallo di dati sia corretto, quindi fare clic su OK.
Posizione dei dati per la tabella
FIG 2 - Posizione dei dati per la tabella
Per inserire un filtro dati, cliccare su Inserisci filtro dei dati, selezionare il campo Stato (che corrisponde alla prima colonna della tabella) e fare clic su OK.

Inserisci filtro dei dati
FIG 3 - Inserisci filtro dei dati

Posizionare il filtro dati sopra la tabella e impostare il numero di colonne a 3 tramite l'apposita casella. Ciò assicurerà che il filtro si allinei visivamente con la larghezza della tabella.
Filtro
FIG 4 - Filtro
Dal menu Inserisci selezionare Mappa. Assicurarsi che, nella tabella, sia selezionata l'intestazione Guadagni (per visualizzarla all'interno della mappa).
Mappa
FIG 5 - Mappa

A questo punto selezionando uno degli stati nel filtro dati, la mappa si aggiornerà dinamicamente, visualizzando lo stato selezionato e i relativi dati della colonna Guadagni della tabella.
Filtro Mappa
FIG 6 - Filtro Mappa






martedì 12 agosto 2025

Windows: Installazione personalizzata di Windows con UnattendedWinstall

Nel panorama delle soluzioni per la personalizzazione e l'automazione dell'installazione di Windows, strumenti come Rufus e FlyBy11 hanno semplificato l'aggiramento dei requisiti di Windows 11 o la gestione di installazioni rapide. Tuttavia, per professionisti IT, system integrator e utenti avanzati che necessitano di un controllo granulare e di un'automazione sofisticata, UnattendedWinstall emerge come una risorsa open source di notevole interesse. Disponibile su GitHub all'indirizzo https://github.com/memstechtips/UnattendedWinstall, questo progetto si posiziona come una soluzione robusta per chi desidera plasmare l'ambiente Windows in base a esigenze specifiche, superando le limitazioni degli strumenti più semplici.
UnattendedWinstall
FIG 1 - UnattendedWinstall


Fondamenti e funzionamento

UnattendedWinstall sfrutta le funzionalità ufficialmente supportate da Microsoft per modificare il comportamento dell'installazione di Windows direttamente sul supporto di installazione. Il cuore di questa metodologia risiede nell'utilizzo dei "file di risposta" (unattend.xml), che consentono di automatizzare e personalizzare un'ampia gamma di parametri durante il processo di setup. Questi file possono essere applicati alle immagini ISO ufficiali di Windows, garantendo una compatibilità intrinseca con il sistema operativo. Lo sviluppatore ha confermato il successo dei test su Windows 10 versione 22H2 e Windows 11 versione 24H2, con un impegno a mantenere la compatibilità anche in caso di future modifiche alla procedura di installazione da parte di Microsoft.

Capacità di personalizzazione avanzata

Le capacità di UnattendedWinstall vanno ben oltre la semplice automazione. Questo strumento permette di:
  • Aggirare i requisiti di sistema di Windows 11: Ideale per l'installazione su hardware legacy o non ufficialmente supportato.
  • Saltare la creazione dell'account Microsoft (MSA): Un'opzione cruciale per ambienti aziendali o per utenti che preferiscono account locali.
  • Disabilitare componenti critici: Permette la disattivazione di Windows Defender e del Controllo dell'account utente (UAC) per ambienti controllati o test.
  • Gestione delle funzionalità AI: Consente di disabilitare funzionalità basate sull'intelligenza artificiale come Copilot e Recall, fornendo un maggiore controllo sulla privacy e sulle risorse di sistema.
  • Pulizia delle applicazioni predefinite: Rimuove le applicazioni ritenute superflue, lasciando solo un set minimo essenziale (Microsoft Edge, Blocco note e Calcolatrice) per un sistema più snello.
  • Ottimizzazioni di sistema: Include l'installazione dei soli aggiornamenti di sicurezza, modifiche al Registro di sistema per disattivare la telemetria, la disattivazione di attività pianificate non essenziali e una configurazione dei servizi di sistema mirata al miglioramento delle prestazioni complessive.

Architettura e implementazione

La flessibilità di UnattendedWinstall deriva dalla sua struttura personalizzabile. Le modifiche vengono implementate agendo direttamente sul file autounattend.xml, che deve essere posizionato nella directory principale del supporto di installazione di Windows. Durante il setup, il sistema rileva e applica automaticamente le istruzioni contenute in questo file, garantendo un'installazione coerente e preconfigurata.

UnattendedWinstall non si limita alle nuove installazioni; lo script 
UWScript.ps1 può essere applicato anche su installazioni di Windows già attive. Questa funzionalità è preziosa per correggere modifiche introdotte da aggiornamenti o per ripristinare impostazioni personalizzate che potrebbero essere state sovrascritte. Tuttavia, è fortemente consigliato testare lo strumento in ambienti virtuali prima di implementarlo su hardware fisico per mitigare qualsiasi rischio.

Strumento per professionisti

UnattendedWinstall non è rivolto all'utenza comune. Chi cerca una soluzione rapida per installare Windows 11 su hardware non supportato o per apportare modifiche minori troverà strumenti come Rufus o WinAero Tweaker più accessibili e immediati.

Al contrario, UnattendedWinstall rappresenta una scelta estremamente efficiente per chi installa regolarmente Windows 10 o 11 su un elevato numero di sistemi. La sua capacità di offrire un livello di controllo senza precedenti su installazioni su larga scala, combinata con la sua natura flessibile, automatizzata e facilmente replicabile, lo rende indispensabile per la gestione di parchi macchine estesi. Richiede, tuttavia, una comprensione approfondita della struttura dei file di risposta e una certa dimestichezza con l'ambiente di installazione di Windows. Sebbene il processo di configurazione sia un'operazione una tantum, la sua efficacia dipende dalla precisione con cui viene preparato e adattato alle esigenze specifiche.


Integrazione e utilizzo semplificato con WIMutil

UnattendedWinstall si presenta come una semplice coppia di file (autounattend.xml e UWScript.ps1) da integrare nel supporto di installazione di Windows. Per facilitare questo compito, lo sviluppatore suggerisce l'utilizzo di WIMutil (https://github.com/memstechtips/WIMUtil), un semplice script automatizzato. WIMutil offre una procedura guidata che accompagna l'utente passo dopo passo nella selezione dell'immagine ISO di partenza (o nel download diretto dal sito Microsoft), nell'integrazione dei file aggiuntivi di UnattendedWinstall e nella creazione di una nuova immagine binaria, sfruttando il popolare tool open source Ventoy. Questo approccio semplifica notevolmente il processo di creazione di un supporto di installazione Windows altamente personalizzato e automatizzato.







martedì 5 agosto 2025

Windows 11: Esportare il layout del menu Start

L'introduzione di Windows 11 ha portato un'interfaccia utente rinnovata, incluso un menu Start centralizzato e preconfigurato. Sebbene l'impostazione predefinita possa essere adatta per gran parte degli utenti, ci sono contesti, come quello aziendale, in cui è necessario procedere ad alcune personalizzazione al fine di offrire un'esperienza utente coerente e controllata, con accesso rapido alle applicazioni aziendali essenziali, anziché a software non correlati al lavoro.
 
Contrariamente alla credenza comune che la personalizzazione avanzata del menu Start sia una prerogativa esclusiva di Windows 11 Enterprise, è possibile implementare una configurazione standardizzata anche nelle versioni Home e Pro. Questo articolo illustra come creare e distribuire un layout del menu Start personalizzato per tutti gli utenti, sia nuovi che esistenti, garantendo uniformità e ottimizzando l'ambiente di lavoro.
Menu Start
FIG 1 - Menu Start


Il layout del menu Start di Windows 11 viene salvato in un file con estensione .bin, situato nella cartella dei dati locali dell'utente ( %localappdata%). Questo file agisce come un modello che può essere replicato su più profili utente, offrendo un punto di partenza uniforme. È fondamentale sottolineare che questa operazione non impedisce agli utenti di personalizzare ulteriormente il proprio menu Start in seguito, ma assicura che al primo accesso trovino le applicazioni aziendali desiderate già a portata di mano.

È importante notare che la denominazione del file .bin è cambiata con gli aggiornamenti del sistema operativo:
  • start.bin
    Utilizzato nelle versioni iniziali di Windows 11 (21H2 e precedenti).
  • start2.bin
    Utilizzato a partire da Windows 11 versione 22H2.

Prima di procedere con l'esportazione, è necessario preparare il layout del menu Start su un computer "modello". Aprire il menu Start e rimuovere tutte le app indesiderate. Successivamente, aggiungere le applicazioni aziendali necessarie. Per una migliore organizzazione, è possibile creare gruppi di applicazioni (cartelle) semplicemente trascinando e rilasciando le icone l'una sull'altra.

Una volta completata la personalizzazione, il file .bin corrispondente deve essere esportato dal profilo utente. Per individuare il file, navigare al seguente percorso:
%localappdata%\Packages\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy\LocalState

Una volta esportato il file .bin sarà possibile distribuirlo su più computer e profili utente.
Start2.bin
FIG 2 - Start2.bin








lunedì 4 agosto 2025

Windows: Risoluzione dell'errore "Impossibile trovare l'assembly a cui fa riferimento" (0x80073701)

Durante l'aggiunta/rimozione di ruoli/funzionalità su Windows Server o sui client Windows 10/11 è possibile imbattersi in un errore specifico: 

La richiesta di aggiungere o rimuovere funzionalita' sul server specificato non e' riuscita. Impossibile installare uno o piu' ruoli, servizi ruolo o funzionalita'.
Impossibile trovare l'assembly a cui fa riferimento. Errore : 0x80073701

Questo messaggio indica che i file sorgente necessari per il componente richiesto sono mancanti o corrotti all'interno dell'immagine di Windows, rendendo impossibile l'operazione.


Controlli preliminari e riavvio del sistema

Prima di procedere con la risoluzione, è fondamentale verificare se ci siano aggiornamenti in attesa di riavvio. La mancata finalizzazione di un aggiornamento può bloccare altre operazioni di sistema.
Aprire un prompt dei comandi con privilegi elevati e digitare:
dism /online /get-packages /format:table | Select-String "Installazione in sospeso"
o nella versione inglese del sistema operativo
dism /online /get-packages /format:table | Select-String "Pending"
Installazione in sospeso
FIG 1 - Installazione in sospeso

Se vengono rilevati pacchetti con lo stato "Installazione in sospeso" (Pending Reboot), riavviare il computer. In alcuni rari casi, un pacchetto potrebbe rimanere in questo stato anche dopo diversi riavvii. In questa eventualità, provare a rinominare il file C:\Windows\Winsxs\Pending.xml in Pending.xml.old e riavviare nuovamente il sistema.
Pending.xml
FIG 2 - Pending.xml



Ripristino dell'integrità dell'immagine di sistema

Una volta verificato che non ci siano riavvii pendenti, il passo successivo è utilizzare lo strumento DISM (Deployment Imaging and Servicing Management) per verificare e riparare l'immagine di Windows.

Eseguire un controllo dell'integrità dell'immagine di sistema con il seguente comando:
DISM /Online /Cleanup-Image /CheckHealth
Se il comando restituisce il messaggio "The component store is repairable" (l'archivio dei componenti è riparabile), procedere con la riparazione.

Per riparare l'immagine, utilizzare il comando RestoreHealth. Questo comando scaricherà i file necessari da Windows Update per ripristinare i componenti danneggiati.
DISM /Online /Cleanup-Image /RestoreHealth

Dopo aver riparato l'archivio dei componenti, eseguire una scansione dei file di sistema per assicurarsi che non ci siano file danneggiati. Lo strumento SFC (System File Checker) utilizzerà l'archivio dei componenti appena riparato come fonte per i file originali.
sfc /scannow
sfc /scannnow
FIG 3 - sfc /scannnow



Analisi del log CBS e intervento manuale

Se le funzionalità di Windows continuano a non installarsi, è necessario esaminare il log di Servicing Stack per identificare la causa specifica dell'errore. Il file di log si trova in %windir%\Logs\CBS\CBS.log.
Cercare nel file di log un errore che indichi file di sistema mancanti relativi a un aggiornamento precedentemente installato. L'errore si presenterà in un formato simile a questo:

CBS Failed to pin deployment while resolving Update: Package_for_KB5012170~31bf3856ad364e35~amd64~~20348.880.1.1 from file: (null) [HRESULT = 0x80073701 – ERROR_SXS_ASSEMBLY_MISSING]

In questo esempio, l'errore è associato all'aggiornamento KB5012170.
Log CBS
FIG 4 - Log CBS



Download e installazione manuale dell'aggiornamento

Il modo più semplice per risolvere questo problema è scaricare manualmente l'aggiornamento specifico dal Catalogo di Microsoft Update e installarlo. Se l'installazione tramite il file .msu non dovesse funzionare, si può estrarre il pacchetto e aggiungerlo all'immagine di Windows:

Per estrarre il pacchetto MSU utilizzare il comando:
expand -f:* windows10.0-kb5012170-x64 c:\temp

Aggiungere  il pacchetto all'immagine di sistema di Windows in esecuzione :
DISM.exe /Online /Add-Package /PackagePath:c:\Temp\Windows10.0-KB5012170-x64.cab


Ignorare i pacchetti danneggiati (Procedura avanzata)

ATTENZIONE: Questo metodo non è supportato ufficialmente da Microsoft e può compromettere l'integrità del sistema. Eseguire un backup completo dell'immagine di Windows o creare un punto di ripristino prima di procedere.

Se l'aggiornamento non è disponibile per il download o non è applicabile, è possibile istruire Windows a ignorare il pacchetto danneggiato modificando il registro di sistema.

  • Aprire l'Editor del Registro di sistema (regedit).
  • Navigare alla chiave
    HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing
  • Impostare il proprio account come proprietario della chiave Component Based Servicing (l'owner predefinito è TrustedInstaller) e imopstare i permessi di controllo completo.
  • Individuare la sottochiave del pacchetto da ignorare (ad es. Package_for_KB5012170).
  • Modificare il valore del parametro CurrentState in 0 (Not present). Il valore precedente potrebbe essere 112 (Installed).
  • Ripristinare i permessi originali sulla chiave di registro, lasciando all'amministratore solo l'accesso in sola lettura.
  • Riavviare il computer e verificare se le funzionalità di Windows possono essere installate.

Per identificare tutti i pacchetti con l'errore ASSEMBLY_MISSING, puoi filtrare il log CBS con il seguente comando PowerShell:
Select-String -Path "c:\windows\logs\cbs\cbs.log" -Pattern "Failed to pin"


Aggiornamento in-place (ultima risorsa)

Se tutte le soluzioni precedenti non hanno successo, l'opzione finale è un aggiornamento in-place del sistema operativo. Questo processo reinstallerà Windows mantenendo i file personali, le impostazioni e le applicazioni.
Scaricare l'immagine ISO più recente della propria versione di Windows.
Montare il file ISO e avviare il programma setup.exe.
Selezionare l'opzione "Mantieni file personali e app" quando richiesto per l'aggiornamento.
Questo metodo può risolvere problemi di integrità complessi che non possono essere corretti con i normali strumenti di riparazione, offrendo una soluzione completa. 






venerdì 1 agosto 2025

Windows 11: Abilitare la visualizzazione delle estensioni dei file

La scelta di Microsoft di nascondere le estensioni dei file per impostazione predefinita è stata probabilmente dettata dalla volontà di semplificare l'interfaccia per l'utente medio, che potrebbe non comprendere appieno il significato di tali suffissi. Tuttavia, dal punto di vista della sicurezza informatica e dell'efficienza nella gestione dei dati, la visualizzazione delle estensioni è di cruciale importanza.

Sicurezza e Riconoscimento delle Minacce: 
L'estensione di un file determina il programma predefinito che Windows utilizzerà per aprirlo. Questa informazione è vitale per identificare potenziali minacce. Immaginate di scaricare un documento PDF da un sito web. Ci si aspetterebbe un'estensione .pdf. Se invece il file scaricato dovesse presentare un'estensione come .exe (eseguibile), .bat (script batch) o .scr (salvaschermo), si tratterebbe di un campanello d'allarme immediato. La visualizzazione dell'estensione permette di riconoscere istantaneamente che si tratta di un tipo di file potenzialmente pericoloso, evitando l'esecuzione accidentale di malware, ransomware o virus. In un mondo sempre più esposto ad attacchi di phishing e social engineering, questa piccola accortezza può fare la differenza tra un sistema sicuro e un'infezione.

Efficienza e Chiarezza nella Gestione dei File:
Oltre alla sicurezza, le estensioni migliorano significativamente l'organizzazione e la ricerca dei file. Non è raro avere versioni multiple dello stesso documento in formati diversi (ad esempio, un documento Word e la sua versione PDF). Sebbene le icone dei file possano dare un'indicazione del tipo, l'estensione fornisce una conferma immediata e inequivocabile. Questo è particolarmente utile in cartelle con numerosi file o quando le icone predefinite sono simili tra loro per diversi tipi di file.


Metodo 1 - Abilitare la visualizzazione delle estensioni dei file tramite GUI

La procedura per abilitare la visualizzazione delle estensioni dei file in Windows 11 è stata semplificata e integrata nel nuovo design di Esplora file, rendendola accessibile anche agli utenti meno esperti.

  1. Aprire Esplora file. Questo può essere fatto rapidamente premendo la combinazione di tasti WIN+E o cliccando sull'icona dedicata nella barra delle applicazioni.
  2. Nella barra dei menu superiore di Esplora file, individuare e cliccare sulla voce "Visualizza". Dal menu a discesa che appare, posizionare il cursore su "Mostra" e selezionare l'opzione "Estensioni nomi file".
Estensioni nomi file
FIG 1 - Estensioni nomi file

Una volta selezionata questa opzione, le estensioni di tutti i file verranno immediatamente visualizzate, fornendo un'informazione visiva aggiuntiva per ogni elemento presente nel sistema.

In alternativa, per gli utenti abituati alle versioni precedenti di Windows, è ancora possibile accedere alle "Opzioni cartella" tradizionali. All'interno di Esplora file, cliccare sull'icona con i tre puntini situata accanto al menu "Visualizza". 
Esplora file, Opzioni
FIG 2 - Esplora file, Opzioni

Dal menu che si apre, selezionare "Opzioni" per accedere alla finestra delle Opzioni cartella, dove è possibile deselezionare l'opzione "Nascondi le estensioni per i tipi di file conosciuti" nella scheda "Visualizzazione".
Nascondi le estensioni per i tipi di file conosciuti
FIG 3 - Nascondi le estensioni per i tipi di file conosciuti



Metodo 2 - Abilitare la visualizzazione delle estensioni dei file tramite registro di sistema

Per ambienti aziendali o per amministratori di sistema che necessitano di configurare più macchine contemporaneamente, l'abilitazione delle estensioni dei file può essere gestita in modo centralizzato tramite il Registro di Sistema di Windows. Questo approccio consente di implementare la configurazione in modo efficiente, ad esempio tramite script PowerShell o Criteri di gruppo (Group Policy).

La chiave di registro da modificare si trova al seguente percorso:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced

All'interno di questa chiave, è necessario localizzare il valore DWORD (32 bit) denominato HideFileExt. Per abilitare la visualizzazione delle estensioni dei file, il valore di HideFileExt deve essere impostato su 0 (zero). Per nasconderle nuovamente, il valore va impostato ad 1.

Questa tecnica è particolarmente preziosa in contesti aziendali dove la standardizzazione delle impostazioni di sicurezza è fondamentale e dove la gestione manuale di ogni singola macchina sarebbe impraticabile.

Editor del Registro di sistema, HideFileExt
FIG 4 - Editor del Registro di sistema, HideFileExt





giovedì 31 luglio 2025

Windows : Risolvere l'Errore 0xc1900208 di Windows Update

Gli aggiornamenti di Windows sono cruciali per la sicurezza e la stabilità dei sistemi, ma possono spesso essere interrotti da errori inaspettati. Tra questi, l'errore 0xc1900208 è un problema ricorrente che ha afflitto gli utenti sia con gli aggiornamenti di Windows 10 che, più recentemente, con l'aggiornamento 24H2 di Windows 11. Questo errore, che si manifesta con l'impossibilità di procedere con l'installazione dell'aggiornamento, indica la presenza di software o driver incompatibili sul sistema.

Causa dell'Errore 0xc1900208

L'errore 0xc1900208 è una segnalazione diretta da parte di Windows Update che una o più componenti hardware o software installate sul sistema sono in conflitto con il processo di aggiornamento. Il sistema operativo esegue una scansione preliminare per verificare la compatibilità e, se rileva elementi "bloccanti" con una compatibilità "Hard" (ovvero, un blocco critico), interrompe l'aggiornamento per prevenire potenziali instabilità o malfunzionamenti.


Identificazione del Software o Driver Incompatibile

Il processo di risoluzione inizia con l'identificazione precisa del componente che sta causando il blocco. Fortunatamente, Windows Update fornisce un log dettagliato della scansione di compatibilità, eliminando la necessità di una ricerca manuale.

Accedere al File C:\$WINDOWS.~BT\Sources\Panther\ScanResult.xml.

Analizzare il contenuto del File XML ricercando le voci che indicano un blocco relativo a software o a driver:
- Software bloccante
Per verificare se l'errore è causato da un software non compatibile, ricercare le righe contenenti 
CompatibilityInfo BlockingType="Hard"
Il campo Title nella stessa riga indicherà il nome del programma responsabile del blocco. 
Ad esempio, in FIG 1, risulta che il software che sta impedendo l'aggiornamento è ExplorerPatcher.
Applicazione Bloccante
FIG 1 - Applicazione Bloccante


- Driver bloccante
Scorrere il file fino alla sezione Driver Packages quindi identificare i driver che presentano l'attributo 
BlockMigration="True"
In FIG2, i driver bloccanti sono oem113.inf e oem143.inf. 
Driver Bloccanti
FIG 2 - Driver Bloccanti

Gestione del Software Bloccante

Una volta identificato un programma bloccante, la soluzione più diretta è la sua disinstallazione o l'aggiornamento a una versione compatibile (se disponibile).

Gestione dei Driver Bloccanti

La gestione dei driver richiede maggiore cautela, poiché la rimozione di un driver errato può compromettere l'avvio del sistema

I file .inf (come oem113.inf) sono descrittori del driver. Per identificare il driver effettivo, seguire questi passaggi:
  • Aprire la cartella c:\windows\INF.
  • Cercare il file oemXXX.inf identificato nel ScanResult.xml.
  • Aprire il file .inf con un editor di testo (ad esempio, Blocco Note).
  • Cercare all'interno del file il nome del driver o dell'applicazione associata.

Una volta individuato il nome del driver è possibile tentare di aggiornarlo, disabilitarlo o rimuoverlo:
Aggiornamento: La prima e più sicura opzione è tentare di aggiornare il driver alla sua versione più recente. Questo può essere fatto tramite Windows Update, il sito web del produttore del dispositivo o l'utilizzo di strumenti di gestione dei driver. 

Disabilitazione (Temporanea): In alcuni casi, se l'aggiornamento non è possibile o se il driver non è critico per l'operatività di base, si potrebbe considerare di disabilitarlo temporaneamente tramite Gestione Dispositivi. Tuttavia, questa è una soluzione temporanea e non risolve la radice del problema di compatibilità.

Rimozione (con Cautela): La rimozione del driver è l'ultima risorsa e deve essere eseguita con estrema cautela. Prima di procedere, è imperativo creare un punto di ripristino del sistema o un backup completo. Se il driver è essenziale per un componente hardware, la sua rimozione potrebbe rendere il dispositivo inutilizzabile o impedire l'avvio del sistema. È consigliabile procedere con la rimozione solo se si è certi che il driver non sia critico o se si dispone di un driver sostitutivo pronto per l'installazione. La rimozione è possibile tramite Gestione Dispositivi o dal prompt dei comandi come amministratore eseguendo il comando
pnputil /delete-driver oemXXX.inf /uninstall /force


Tentativo di Aggiornamento di Windows

Dopo aver rimosso o aggiornato il software e/o i driver bloccanti, è possibile riprovare l'aggiornamento di Windows. In Windows 11 accedere alle Impostazioni (WIN+I), selezionare Windows Update quindi cliccare sul pulsante Riprova o Verifica disponibilità aggiornamenti.

Windows Update
FIG 3 - Windows Update





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.