Al lavoro un collega mi ha chiesto aiuto per verificare perché su molti computer della sua sede non si riusciva ad attivare Bitlocker e quindi non si potevano criptare i dischi fissi come richiesto da policy aziendale. Così ho chiesto all'AI Grok se si poteva creare uno script PowerShell che andasse a controllare i vari aspetti del sistema operativo necessari al funzionamento di Bitlocker, come il TPM e il Secure Boot e ne mostrasse lo stato.

Con il comando manage-bde -status c: è possibile verificare la crittografia del disco C:, tra le informazioni visualizzate si vede lo stato della conversione, la percentuale del disco crittografata e l'algoritmo usato per farlo. Invece il comando manage-bde -protectors -get c: mostra altre informazioni come la chiave di sblocco di Bitlocker da usare quando il computer dovesse chiederla al suo avvio per qualche problema.

Questo computer è un esempio di criptazione eseguita (VolumeStatus - FullyEncrypted) ma che non è riuscita ad attivarsi e non ha neanche generato le chiavi di decriptazione.

Per finire un computer dove non poteva funzionare la criptazione perché aveva il TPM disabilitato.

Nel report Html sono presenti anche informazioni sul disco fisso e le partizioni presenti, non indispensabili ma è sempre utili averle, e sullo stato dei servizi BDESVC (Servizio di crittografia unità BitLocker) e TPM (Servizi di base TPM).

Perché ho voluto lo script?
Dato che i computer erano numerosi, voleva dire entrare nel loro BIOS per vedere se il Secure Boot era attivo, controllare lo stato del TPM, lanciare i comandi per vedere lo stato della criptazione.
Così è tutto riunito in uno script, utilizzabile da remoto, e in pochi minuti si è visto che tutti i computer avevano il TPM o il Secure Boot disattivati.
Dopo aver riattivato queste due impostazioni il Bitlocker ha funzionato e i dischi si sono criptati.
Una volta avviato lo script non mostra particolari informazioni a video, se non quella di aver salvato il report nella cartella C:\swdtemp (se non esiste la cartella la crea in automatico).
Se volete cambiare la cartella di destinazione o il nome del file di report li trovate nelle prime righe dello script.
$ReportFolder = "C:\swdtemp"$ReportFile = Join-Path $ReportFolder "BitLocker_Report_$ComputerName`_$Timestamp.html"
