Quando si desidera comprendere cosa distingue un’installazione pulita di Windows 11 da un sistema utilizzato da mesi o anni, uno strumento spesso citato dagli amministratori di sistema è Policy Analyzer. Sviluppato da Microsoft come parte del Security Compliance Toolkit, Policy Analyzer (scaricabile come componente singolo) consente di confrontare configurazioni di criteri di gruppo, baseline di sicurezza e impostazioni amministrative, evidenziando le differenze tra sistemi differenti oppure tra configurazioni applicate nel tempo. Il software è particolarmente utile per verificare modifiche alle policy di sicurezza, configurazioni di Windows Defender, impostazioni del firewall e altri parametri gestiti attraverso Group Policy.
Tuttavia, Policy Analyzer ha un limite ben preciso: osserva esclusivamente ciò che è riconducibile ai criteri di gruppo e alle impostazioni amministrative conosciute dal sistema operativo. Non è stato progettato per fornire una visione completa di tutte le modifiche che un software, un driver, un servizio o una personalizzazione dell’utente possono apportare al Registro di sistema. È proprio da questa considerazione che nasce l’esigenza di adottare un approccio differente.
Perché confrontare il Registro di sistema di due installazioni di Windows 11
Il Registro di sistema rappresenta una sorta di “database centralizzato” responsabile di una buona parte del corretto funzionamento di Windows.
Al suo interno vengono memorizzate informazioni relative al sistema operativo, ai driver installati, ai servizi, alle applicazioni, alle estensioni della shell, alle impostazioni di sicurezza e alle preferenze degli utenti.
Quando si confronta un Windows 11 appena installato con una macchina in produzione da lungo tempo, le differenze più significative non si trovano necessariamente nelle policy di gruppo, ma spesso in aree quali:
- programmi installati;
- servizi e driver aggiuntivi;
- elementi eseguiti automaticamente all’avvio;
- configurazioni di sicurezza;
- attività pianificate;
- estensioni della shell;
- impostazioni personalizzate dell’utente;
- componenti registrati dalle applicazioni.
L’obiettivo diventa quindi acquisire due istantanee del Registro di sistema e confrontarle in modo intelligente.
Perché esportare l’intero Registro di sistema non è una buona idea
La tentazione iniziale consiste nell’esportare completamente il Registro di sistema sui due sistemi (quello con un’installazione pulita di Windows 11 o baseline e quello di una macchina Windows 11 usata in produzione) utilizzando poi strumenti di confronto generici come WinMerge. In teoria il metodo sembra corretto; in pratica produce risultati quasi inutilizzabili.
Un’installazione moderna di Windows contiene centinaia di migliaia di chiavi e milioni di valori: molte di queste informazioni sono aggiornate continuamente dal sistema operativo, anche senza alcun intervento dell’utente.
Tra gli elementi che cambiano costantemente troviamo:
- cache interne;
- cronologie di utilizzo;
- identificatori temporanei;
- metadati relativi ai dispositivi;
- informazioni generate dai servizi di sistema;
- dati utilizzati dal Task Scheduler o Utilità di pianificazione Windows;
- strutture interne dei driver.
Confrontando due esportazioni complete effettuate a pochi minuti di distanza si possono ottenere decine di migliaia di differenze che non hanno alcun valore operativo.
L’approccio adottato da Registry Baseline Comparator
Per superare il problema menzionato al paragrafo precedente, ci è balenata in testa l’idea di uno script PowerShell con interfaccia grafica che implementa una logica completamente diversa rispetto a un semplice confronto testuale. Lo script, battezzato Registry Baseline Comparator (download), non tenta di acquisire tutto il Registro di sistema, ma si concentra sulle aree che risultano realmente utili per descrivere lo stato di una macchina Windows.
Le sezioni monitorate comprendono:
- chiavi
RuneRunOnce; - programmi installati;
- servizi e driver;
- configurazioni
Winlogon; - Image File Execution Options (IFEO);
- policy locali e amministrative;
- impostazioni di Windows Defender;
- regole del firewall;
- attività pianificate;
- shell extension;
- App Paths;
- configurazioni utente rilevanti.
In questo modo sono automaticamente escluse grandi porzioni del Registro di sistema che normalmente generano solo rumore e falsi positivi.
Snapshot di riferimento e snapshot corrente: come usare Registry Baseline Comparator
Registry Baseline Comparator (download) lavora in due fasi distinte: la prima consiste nella creazione dello snapshot di riferimento, che rappresenta il sistema base o baseline. Si può pensare di eseguire lo script, ad esempio, su un sistema Windows 11 (stessa edizione) appena installato.
Per avviare lo script, basta aprire una finestra del terminale con i diritti di amministratore quindi digitare quanto segue:
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\RegistryBaselineComparator.ps1

Con un clic su Crea sistema base, lo script genera una sorta di “immagine” del contenuto del registro di sistema (limitatamente alle chiavi più importanti) e la salva in un file .tsv: grazie a questa scelta si possono ottenere prestazioni elevate anche con dataset molto estesi.
Successivamente, si può copiare Registry Baseline Comparator sul secondo sistema Windows 11, accertandosi di portare con sé la sottocartella RegistryCompare.
Eseguendo di nuovo lo script con il comando indicato in precedenza, si può questa volta cliccare il pulsante Crea sistema corrente. in modo da generare un secondo file .tsv con lo snapshot del registro.
Durante la fase di confronto lo script non confronta semplicemente il testo dei valori ma utilizza hash crittografici per individuare rapidamente modifiche, aggiunte e rimozioni.
Con un clic su Confronta, l’applicazione ricerca le differenze tra le due configurazioni del registro di sistema quindi mostrano un resoconto completo sotto forma di file HTML (automaticamente aperto con il browser predefinito).

Report finale e classificazione delle differenze
Uno degli aspetti più interessanti del progetto è il sistema di classificazione. Le modifiche rilevate a livello di Registro di sistema, sono infatti suddivise in categorie:
- avvio automatico;
- servizi e driver;
- sicurezza;
- policy;
- firewall;
- software installato;
- shell extension;
- attività pianificate.
A ogni categoria è associato un livello di severità. Le modifiche considerate più importanti sono evidenziate visivamente all’interno del report finale, permettendo all’analista di individuare immediatamente gli elementi che meritano approfondimenti.
Il report HTML generato dallo script adotta una struttura gerarchica: le differenze sono organizzate per categoria e presentate attraverso schede navigabili. All’interno di ogni categoria le informazioni sono inoltre raggruppate per chiave di registro: invece di mostrare centinaia di righe ripetute per la stessa chiave, il report aggrega tutte le modifiche correlate, indicando valori aggiunti, modificati e rimossi; severità massima rilevata; numero totale di differenze associate alla chiave.
Un'”alternativa complementare” a Policy Analyzer
Microsoft Policy Analyzer rimane uno strumento eccellente per analizzare configurazioni di sicurezza e criteri di gruppo.
Quando però l’obiettivo è comprendere in modo approfondito come un sistema Windows sia cambiato nel tempo, un confronto intelligente del Registro di sistema può fornire una quantità di informazioni nettamente superiore.
Le due metodologie non sono in competizione tra loro ma complementari: Policy Analyzer consente di verificare la conformità delle configurazioni amministrative, mentre l’analisi strutturata del Registro permette di individuare installazioni software, modifiche ai servizi, meccanismi di persistenza, personalizzazioni del sistema e molte altre variazioni che normalmente sfuggono agli strumenti tradizionali.
L’unione dei due approcci offre una visione estremamente dettagliata dello stato reale di un sistema Windows e rappresenta una base solida per attività di auditing, troubleshooting, hardening e analisi forense.