Un problema che negli ultimi tempi mi capita sempre più spesso di incontrare sui PC aziendali con Windows 11 a dominio è quello di Microsoft 365 che, all’accesso o durante l’attivazione di Office, restituisce l’errore “Il modulo TPM (Trusted Platform Module) del computer non ha funzionato correttamente“.
Nonostante il messaggio punti il dito contro il chip TPM, nella maggior parte dei casi l’hardware non c’entra nulla: a essersi corrotta è l’identità Office/Azure AD salvata nel profilo dell’utente, che va quindi messa da parte per permettere a Windows e ad Office di ricrearla da zero.
La procedura manuale
La procedura, ben descritta in questo articolo, prevede di rinominare con il suffisso -old alcuni elementi del profilo utente:
- la chiave di registro HKCU\Software\Microsoft\Office\16.0\Common\Identity\Identities
- la cartella %LOCALAPPDATA%\Packages\Microsoft.AAD.BrokerPlugin_cw5n1h2txyewy
- le cartelle CRLs, CTLs, Keys e AppContainerUserCertRead in %APPDATA%\Microsoft\SystemCertificates\My
- le cartelle CRLs e CTLs in %APPDATA%\Microsoft\SystemCertificates\Request (spesso non presenti)
Nulla di difficile, ma finché l’utente è connesso questi elementi sono bloccati: si è costretti a disconnettersi, accedere con un altro amministratore, rinominare a mano cartella per cartella e, per il registro, caricare l’hive dell’utente da regedit. Per ridurre il tutto a pochi minuti ho creato uno script PowerShell che automatizza l’intera procedura.
Lo script Fix-OfficeTPM
Lo script si scarica da qui: Fix-OfficeTPM.zip; all’interno troviamo il file .ps1 ed un README con tutti i dettagli.
Lo script non cancella nulla, rinomina soltanto: se un elemento -old esiste già (per esempio ad una seconda esecuzione) aggiunge data e ora al nome, così ogni modifica resta reversibile. Ogni esecuzione genera inoltre un log in C:\ProgramData\Fix-OfficeTPM_AAAAMMGG-HHMMSS.log.
Come utilizzarlo
- Disconnettiamo l’utente da riparare
Disconnetti, non “Cambia utente”; chiudiamo anche eventuali sessioni RDP, altrimenti il profilo risulta caricato e lo script si ferma. - Accediamo con un altro account amministratore
Se non esiste, creiamone uno temporaneo da un prompt dei comandi con privilegi amministrativi (su Windows in italiano il gruppo può chiamarsi “Amministratori”):
net user tmpadmin * /add
net localgroup Administrators tmpadmin /add
- Effettuiamo una prova a secco
Copiamo lo script in C:\Temp, apriamo PowerShell come amministratore e digitiamo:
Set-ExecutionPolicy -Scope Process Bypass -Force
& "C:\Temp\Fix-OfficeTPM.ps1" -UserName [nome-utente] -WhatIf
- Eseguiamo lo script
Se l’output è quello atteso, lanciamo lo stesso comando senza -WhatIf:
& "C:\Temp\Fix-OfficeTPM.ps1" -UserName [nome-utente] -Restart
Analizzando i comandi, vediamo i seguenti parametri:
-Scope Process Bypass -> consente l’esecuzione dello script solo nella finestra PowerShell corrente
-UserName -> l’utente da riparare; accetta mario.rossi, DOMINIO\mario.rossi, AzureAD\MarioRossi oppure il nome della cartella in C:\Users
-WhatIf -> mostra cosa verrebbe fatto senza modificare nulla
-Restart -> riavvia il PC al termine (facoltativo)
Dopo il riavvio accediamo con l’utente, apriamo Outlook o Word e rifacciamo l’accesso all’account Microsoft 365: può capitare che l’avviso TPM si ripresenti un’ultima volta, dopodiché l’attivazione andrà a buon fine. Se era stato creato, eliminiamo l’account temporaneo con net user tmpadmin /delete.
Per annullare le modifiche basta invece togliere il suffisso -old agli elementi rinominati, come spiegato nel README.
Se il problema persiste
Se tale procedura non dovesse avere esito positivo, questi sono i passi successivi che consiglio:
- Diagnosi
Lanciamo dsregcmd /status dall’utente interessato, Get-Tpm e tpmtool getdeviceinformation da amministratore, annotando il codice d’errore mostrato da Office (80090016, 80090030 o 80090034). - ProtectionPolicy
Sui PC in dominio creiamo in HKLM\SOFTWARE\Microsoft\Cryptography\Protect\Providers\df9d8cd0-1501-11d1-8c7a-00c04fc297eb il valore DWORD ProtectionPolicy = 1 e riavviamo; la modifica si annulla eliminando il valore. - Account aziendale
Rimuoviamo l’account da Impostazioni > Account > Accedi all’azienda o all’istituto di istruzione e ricolleghiamolo. - BIOS e TPM
Aggiorniamo BIOS e firmware del TPM; come ultima risorsa azzeriamo il TPM, ricordandoci prima di sospendere BitLocker e salvare la chiave di ripristino (il PIN di Windows Hello andrà reimpostato).


Lascia un commento