Capire cosa separa un’installazione appena fatta da una macchina che lavora da mesi è un classico rompicapo per chi gestisce sistemi, e quando si parla di confrontare due installazioni di Windows 11 lo strumento che salta sempre fuori è Policy Analyzer. Sviluppato da Microsoft all’interno del Security Compliance Toolkit, questo software si scarica anche come componente singolo e serve a mettere a confronto criteri di gruppo, baseline di sicurezza e impostazioni amministrative. In pratica evidenzia le differenze tra sistemi diversi oppure tra configurazioni che si sono stratificate nel tempo. È particolarmente comodo per verificare modifiche alle policy di sicurezza, alle configurazioni di Windows Defender, alle impostazioni del firewall e a tutto ciò che passa attraverso le Group Policy.
C’è però un limite, e non da poco. Policy Analyzer guarda soltanto a quello che è riconducibile ai criteri di gruppo e alle impostazioni amministrative note al sistema operativo. Non è stato pensato per dare una visione completa di tutto ciò che un software, un driver, un servizio o una personalizzazione dell’utente possono combinare nel Registro di sistema. E proprio da qui nasce l’idea di provare una strada diversa.
Perché guardare dentro al Registro di sistema
Il Registro di sistema funziona come una sorta di database centralizzato e tiene in piedi buona parte del funzionamento di Windows. Dentro ci finiscono informazioni sul sistema operativo, sui driver installati, sui servizi, sulle applicazioni, sulle estensioni della shell, sulle impostazioni di sicurezza e sulle preferenze degli utenti. Quando si mette a confronto un Windows 11 appena installato con una macchina in produzione da tempo, le differenze più interessanti spesso non stanno nelle policy di gruppo. Stanno altrove, in aree come programmi installati, servizi e driver aggiuntivi, elementi che partono in automatico all’avvio, configurazioni di sicurezza, attività pianificate, estensioni della shell, impostazioni personalizzate e componenti registrati dalle applicazioni.
Il punto, allora, diventa acquisire due istantanee del registro e confrontarle con un minimo di intelligenza. La tentazione iniziale è esportare tutto il Registro di sistema sui due sistemi e darlo in pasto a uno strumento generico come WinMerge. Sulla carta sembra filare. Alla prova dei fatti, il risultato è quasi inutilizzabile. Un’installazione moderna di Windows contiene centinaia di migliaia di chiavi e milioni di valori, e tanta di questa roba viene aggiornata di continuo dal sistema operativo, anche senza che nessuno tocchi niente. Cache interne, cronologie di utilizzo, identificatori temporanei, metadati dei dispositivi, dati del Task Scheduler, strutture interne dei driver. Confrontando due esportazioni complete fatte a pochi minuti di distanza si rischia di ritrovarsi con decine di migliaia di differenze che non dicono assolutamente nulla.
Registry Baseline Comparator, l’approccio mirato
Per aggirare questo problema è nata l’idea di uno script PowerShell con interfaccia grafica che ragiona in modo del tutto diverso da un semplice confronto testuale. Lo strumento si chiama Registry Baseline Comparator e non prova a fotografare tutto il registro, ma si concentra solo sulle zone che davvero raccontano lo stato di una macchina. Tiene d’occhio chiavi Run e RunOnce, programmi installati, servizi e driver, configurazioni Winlogon, Image File Execution Options, policy locali e amministrative, impostazioni di Windows Defender, regole del firewall, attività pianificate, shell extension, App Paths e configurazioni utente rilevanti. Così facendo, vengono tagliate fuori in automatico tutte quelle porzioni che generano solo rumore e falsi positivi.
Il funzionamento si divide in due fasi. La prima è la creazione dello snapshot di riferimento, la baseline, che si può ottenere lanciando lo script su un Windows 11 appena installato della stessa edizione. Basta aprire il terminale con i diritti di amministratore e digitare:
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .RegistryBaselineComparator.ps1
Un clic su Crea sistema base e lo script genera un’immagine delle chiavi più importanti, salvandola in un file .tsv per garantire buone prestazioni anche con dataset corposi. Poi si copia Registry Baseline Comparator sul secondo sistema, portandosi dietro la sottocartella RegistryCompare, si rilancia lo script e si clicca su Crea sistema corrente per ottenere il secondo .tsv. In fase di confronto lo strumento non guarda il testo dei valori ma usa hash crittografici per individuare al volo modifiche, aggiunte e rimozioni. Con un clic su Confronta arriva un report HTML che si apre da solo nel browser.
Il report e il sistema di severità
La parte più riuscita è proprio la classificazione. Le modifiche al Registro di sistema vengono divise per categoria: avvio automatico, servizi e driver, sicurezza, policy, firewall, software installato, shell extension, attività pianificate. A ogni categoria è abbinato un livello di severità, e le modifiche più importanti vengono messe in evidenza nel report, così l’analista capisce subito dove guardare. Il documento HTML ha una struttura gerarchica, con schede navigabili e informazioni raggruppate per chiave. Invece di sciorinare centinaia di righe ripetute per la stessa chiave, aggrega tutto e indica valori aggiunti, modificati e rimossi, severità massima rilevata e numero totale di differenze.
Microsoft Policy Analyzer resta ottimo per analizzare configurazioni di sicurezza e criteri di gruppo. Ma quando serve capire davvero come un sistema è cambiato nel tempo, un confronto ragionato del registro offre molte più informazioni. I due metodi non si fanno concorrenza, si completano: Policy Analyzer verifica la conformità delle configurazioni amministrative, mentre l’analisi del registro porta a galla installazioni software, modifiche ai servizi, meccanismi di persistenza e personalizzazioni che agli strumenti tradizionali sfuggono. Mettere insieme i due approcci dà una fotografia dettagliata dello stato reale di una macchina Windows, base solida per auditing, troubleshooting, hardening e analisi forense.