Uno dei problemi più comuni che affliggono gli amministratori di sistema di Windows è quando i computer di Active Directory sembrano disconnettersi dal dominio. L’infame errore “la relazione di trust tra questa workstation e il dominio principale è fallita” è troppo comune.
In questa guida, imparerai tutti i trucchi che ho scoperto in oltre 20 anni di gestione di Active Directory e come automatizzarli con PowerShell.
Errore “La relazione di trust tra questa workstation e il dominio principale è fallita”Messaggio di errore
Quando un dominio AD non si fida più di un computer, è probabile che sia perché la password del computer locale non corrisponde alla password memorizzata in Active Directory.

Le due password devono essere sincronizzate affinché AD si fidi di un computer. Se non sono sincronizzate, riceverai l’infame messaggio di errore “la relazione di trust tra questa workstation e il dominio principale è fallita“.
Purtroppo, non è mai stata trovata una singola soluzione che funzioni al 100% del tempo. Ecco perché ho scritto questa guida.
Questa guida è intesa come un unico punto di riferimento per ogni singolo modo di risolvere definitivamente questo problema e automatizzare il processo con PowerShell.
Password degli account computer di Active Directory
Quando un nuovo computer viene aggiunto a Active Directory, viene creato un account computer con una password. Tale password è valida per 30 giorni, per impostazione predefinita. Dopo 30 giorni, cambia automaticamente. Se cambia e la password del client no, si riceverà il messaggio di errore “la relazione di trust tra questa postazione e il dominio principale è fallita”.
Visualizzazione delle policy esistenti
È possibile visualizzare la policy a livello di dominio aprendo la Console di Gestione delle Policy di Gruppo (GPMC). All’interno del GPMC, fare clic sulla Policy predefinita del dominio, e navigare su Configurazione computer –> Impostazioni di Windows –> Impostazioni di sicurezza > Policy locali > Opzioni di sicurezza.
Una volta in Opzioni di sicurezza, cercare la policy chiamata Domain member: Maximum machine account password age.

Su un computer associato a AD, aprire regedit e navigare nella chiave del registro HKLM\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters e trovare il valore MaximumPasswordAge come mostrato di seguito.

Mentre si è lì, è possibile disabilitare la modifica della password del computer locale impostando il valore DisablePasswordChange su 1.
Quando cambia l’account del computer, sia il computer locale che l’account del computer AD dovrebbero cambiare le loro password contemporaneamente. AD conosce quella corrente e quella precedente nel caso diventino non sincronizzate per un breve periodo.
Il processo di cambio della password dell’account computer
Quando le cose funzionano normalmente, utilizzando il servizio Windows Netlogon, il computer avvia automaticamente una modifica della password. Questo avviene durante un riavvio del computer o quando l’oggetto del computer deve autenticarsi in AD.
Utilizzando il servizio Windows Netlogon, il computer locale avvia una sequenza di modifica della password. Il computer inizia prima una modifica della password su un controller di dominio. Se ciò ha successo, tenta quindi di modificare la password locale per corrispondere alla chiave di registro HKLM\SECURITY\Policy\Secrets<hostname>.ACC.
Normalmente questo processo funziona bene anche se il computer viene spento o è offline per più di 30 giorni perché il computer locale avvia una modifica della password.
Tuttavia, si verifica un problema quando:
- il computer modifica l’account del computer AD ma non riesce a cambiare la password locale
- il computer viene reimpostato senza eseguire Sysprep
- il sistema operativo viene reinstallato e tenta di autenticarsi con l’account del computer AD vecchio e abilitato
- …e altro ancora?
Se accade uno dei casi sopra elencati, verrà visualizzato il messaggio di errore “la relazione di trust tra questa workstation e il dominio principale è stata interrotta”.
Verifica del problema
Una volta che si conosce l’esistenza del problema, come si può replicarlo o almeno avere un metodo per determinare quali computer hanno il problema? Si potrebbe provare ad accedere interattivamente a ciascun computer, ma ciò non è scalabile e non voglio alzarmi dalla mia scrivania!
Costruiamo uno script che possiamo eseguire sia in locale che in remoto per determinare quali computer nel dominio hanno questo problema e per eliminare definitivamente il messaggio di errore “La relazione di fiducia tra questa postazione di lavoro e il dominio principale è fallita”.
Prima di tutto, poiché si suppone che l’autenticazione di dominio non funzioni, è necessario conoscere un account utente locale nel gruppo degli amministratori. Spero tu conosca la password dell’amministratore locale!
nltest (Strumento a riga di comando)
nltest è uno strumento a riga di comando di vecchia scuola che testerà una relazione di fiducia per un computer. Questo strumento viene installato quando si installa RSAT o è disponibile direttamente su un controller di dominio.
Puoi verificare una relazione di fiducia su un computer quando sei connesso al computer eseguendo:
ATTENZIONE: Questo metodo non è consigliato perché nltest funziona solo nel contesto utente in cui è stato avviato. Se il computer ha una relazione di fiducia interrotta e si è connessi come utente locale, cercherà di connettersi al dominio utilizzando le credenziali dell’utente locale. Questo comporta un errore di accesso negato.
netdom (Strumento a riga di comando)
netdom è un altro strumento da riga di comando che puoi utilizzare per verificare una relazione di trust. Questo strumento è anche installato quando installi RSAT o è disponibile direttamente su un domain controller.
Puoi verificare una relazione di trust utilizzando netdom verify
fornendo:
- il nome del computer da verificare
- FQDN del dominio
- username per autenticare la richiesta
- la password dell’account utente
Di seguito è riportato un esempio:
Fornendo il valore *
al parametro PasswordO
, netdom chiederà la password.
Test-ComputerSecureChannel (PowerShell)
Uno dei modi migliori per risolvere il problema “la relazione di trust tra questa postazione e il dominio principale è fallita” è utilizzare il cmdlet Test-ComputerSecureChannel
. Questo cmdlet PowerShell è incluso in Windows 10 ed è più facile da usare.
Il cmdlet Test-ComputerSecureChannel
funziona localmente su un computer Windows 10. Quando si accede al computer in modo interattivo, aprire una console PowerShell ed eseguire Test-ComputerSecureChannel
senza parametri. Restituirà True o False a seconda che la fiducia sia valida.
È anche possibile specificare un controller di dominio particolare per confermare che le password siano sincronizzate utilizzando il parametro Server
.
Questo cmdlet è semplice da usare e ha un’opzione Repair
, ma risparmieremo una dimostrazione di ciò per la sezione di riparazione.
Se si conosce la password dell’amministratore locale di quei computer che si desidera controllare e il PowerShell Remoting è abilitato su di essi, è anche possibile utilizzare il cmdlet Invoke-Command
. Utilizzando il cmdlet Invoke-Command
, è possibile eseguire remotamente Test-ComputerSecureChannel
su uno o più computer contemporaneamente.
Controllare le relazioni di fiducia in massa
Ora che sai come controllare remotamente una relazione di fiducia, ecco un frammento di codice che puoi utilizzare per controllare tutti i computer del tuo AD! In questo script, prima verifico che il computer sia online. In caso contrario, restituirà Offline. Se sì, eseguirà Test-ComputerSecureChannel
su ciascun computer e restituirà True o False.
Conoscere e capire il problema è il primo passo, ma come si risolve? Ora sai che devi ottenere che l’account del computer memorizzato sul computer locale sia lo stesso dell’account del computer memorizzato in AD.
Ci sono molte diverse “soluzioni” disponibili per il problema “la relazione di fiducia tra questa postazione di lavoro e il dominio primario è fallita”. Queste soluzioni possono essere eseguite tramite l’interfaccia grafica, tramite PowerShell o tramite strumenti da riga di comando vecchia scuola.
- Reimposta la password dell’account del computer in AD
- Reimposta la password dell’account del computer locale
- Scollega e ricollega il computer Windows
- Rimuovi completamente l’account del computer e ricollega il computer Windows
Sono molte opzioni! In questa guida, ci concentreremo su come risolvere questo problema con PowerShell e gli strumenti da riga di comando (per completezza). Se non stai già usando PowerShell, dovresti farlo!
Risoluzione del Problema: Reimpostazione delle Password del Computer
netdom (Strumento da Riga di Comando)
A trust can be repaired and the “the trust relationship between this workstation and the primary domain failed” error message can be eliminated by using the old-school netdom command-line tool. If you’re logged into the computer locally as an administrative user, you can run netdom resetpwd to initiate the password reset sequence as shown below.
In questo esempio:
- DC è il nome del controller di dominio
- abertram è il nome dell’account utente di Active Directory con i diritti per reimpostare l’account del computer
- * è un segnaposto per la password dell’account utente che richiederà l’inserimento della password.
Reset-ComputerMachinePassword (PowerShell)
Uno dei modi migliori per risolvere un problema di relazione di fiducia è utilizzare il cmdlet Reset-ComputerMachinePassword
. Questo cmdlet viene eseguito sul computer locale e avvierà una sequenza di reimpostazione della password. La sua sintassi non potrebbe essere più semplice.
Se desideri specificare un DC particolare da reimpostare, puoi farlo utilizzando il parametro Server
insieme a un’opzione di credenziali (di default verranno utilizzate le credenziali dell’utente locale).
L’esempio di seguito richiederà un nome utente e una password AD e cercherà di reimpostare la password sul computer locale e sul controller di dominio DC.
Questo può anche essere eseguito in remoto utilizzando Invoke-Command
se PowerShell Remoting è disponibile sul computer. Qui, sto ottenendo il nome utente e la password per l’account amministratore locale sul computer. Sto anche ottenendo le credenziali che hanno i diritti per reimpostare la password dell’account AD di questo computer. Passo quindi $domainCredential
nella sessione remota usando il costrutto $using
.
Nota che questo funziona anche se l’account del computer è stato rimosso da Active Directory. Creare un account del computer con lo stesso nome e
Reset-ComputerMachinePassword
garantirà che la password sia sincronizzata.
Reimpostare le password dell’account del computer locale in blocco
Vuoi occuparti dell’errore “il rapporto di fiducia tra questa postazione e il dominio principale è fallito” su molti computer contemporaneamente? Nessun problema. Utilizzando un pratico ciclo foreach, possiamo eseguire Reset-ComputerMachinePassword
anche in blocco.
Test-ComputerSecureChannel -Repair (PowerShell)
Un altro modo per avviare il processo di cambio password è eseguire il comando Test-ComputerSecureChannel
, ma questa volta utilizzando l’opzione Repair
. Da quanto posso vedere, questo processo è identico all’utilizzo di Reset-ComputerMachinePassword
. Sulla console del computer, utilizza il parametro Repair
e il parametro Credential
.
Assicurati di utilizzare sempre il parametro Credential
qui. Se non lo fai, simile all’utilizzo dell’utilità nltest, cercherà di utilizzare l’account locale e non funzionerà.
Ripara le relazioni di fiducia in blocco
Inserisci questo comando nell’utile ciclo foreach che stiamo utilizzando e il gioco è fatto!
Risolvere il problema: Rientrare nel dominio
Se il ripristino delle password dell’account del computer non funziona per te, c’è sempre l’opzione nucleare. Puoi ricollegare un computer al dominio Active Directory. Anche se non è sempre necessario, ci sono stati momenti in cui ho dovuto usare questo approccio.
Nota che ho sentito dire che un distacco non è necessario. Potresti riuscire ad evitarlo forzando semplicemente un nuovo collegamento. La tua esperienza potrebbe variare.
Puoi farlo:
- accedi al computer tramite un account amministrativo locale
- vai su Proprietà di sistema
- clicca su Cambia
- impostalo su un workgroup
- riavvia
- ripristinalo al dominio
Nota come menziono che potresti. Non farlo. È una perdita di tempo quando puoi automatizzarlo con PowerShell.
Ci sono due modi che ho trovato per utilizzare PowerShell per disassociare un dominio e utilizzare PowerShell per associare un dominio.
Utilizzando CIM
Puoi associare un dominio con PowerShell (e disassociarlo) utilizzando la classe CIM Win32_ComputerSystem. Questa classe ha due metodi che ti consentono di disassociare e associare un computer a un dominio chiamati UnJoinDomainOrWorkgroup()
e JoinDomainOrWorkGroup
.
Dato che si tratta di CIM, puoi eseguirlo tanto facilmente in remoto quanto localmente. Poiché presumo che preferiresti eseguirlo in remoto comodamente dalla tua scrivania, ecco un frammento di codice che fa proprio questo.
“L’errore di ‘la relazione di trust tra questa postazione e il dominio principale è fallita’” sparirà!
Notare il parametro FUnjoinOptions
sopra. Ho scelto di specificare 4 qui. Questo esegue il comportamento predefinito quando si disassocia manualmente un computer. Questa opzione disabilita il conto computer in Active Directory (se riesce a trovarne uno). Se preferisci evitare questo comportamento, puoi utilizzare l’opzione 0 qui.
Una volta che il computer è disassociato, puoi quindi riassociarlo al dominio utilizzando il metodo JoinDomainOrWorkGroup()
.
Fai attenzione al parametro FJoinOptions
sopra. Ho scelto di specificare 3 qui. Questo esegue il comportamento predefinito quando si unisce un computer manualmente. Questa opzione crea un account computer AD. Puoi trovare alcune altre opzioni come l’aggiunta a un’OU specifica tramite la documentazione di JoinDomainOrWorkgroup.
SUGGERIMENTO: Puoi anche disunire e riunire molti computer contemporaneamente tramite questo metodo specificando computer multipli tramite il parametro
ComputerName
suGet-CimInstance
.
Utilizzo dei cmdlet Remove-Computer e Add-Computer
Puoi anche utilizzare i cmdlet PowerShell incorporati per disunire e unire un computer a un dominio con PowerShell. Puoi utilizzare i cmdlet Remove-Computer
e Add-Computer
.
Per scollegare un computer con PowerShell, accedi alla console del computer e utilizza il cmdlet Remove-Computer
. Fornisci le credenziali di dominio con i permessi per scollegare il computer. Puoi anche specificare il parametro Restart
per forzare un riavvio dopo lo scollegamento e Force
per non richiedere conferma.
Una volta riavviato il computer, puoi quindi utilizzare il cmdlet Add-Computer
per collegare il computer al dominio con PowerShell. Puoi utilizzare il cmdlet Add-Computer
in remoto fornendo il parametro ComputerName
. Utilizzerai anche le credenziali dell’utente locale per stabilire la connessione e le credenziali di dominio per autenticarti nel dominio.
Quando torna su, speriamo che non riceverai più il messaggio di errore “la relazione di fiducia tra questa postazione di lavoro e il dominio principale è fallita”.
Scollegamento e ricollegamento automatico al dominio
Visto che ho dovuto fare questo processo troppe volte, ho creato uno script PowerShell che fa tutto per te. Se fornisci il nome del computer, farà:
- Scollega il computer
- Riavvia e attende il ripristino
- Ricollega il computer
- Riavvia e attende il ripristino
Puoi provare questo script tramite GitHub.
Riepilogo
Ora dovresti avere una comprensione completa del problema e diverse soluzioni per il famigerato messaggio di errore “Il rapporto di fiducia tra questa postazione e il dominio principale è fallito“. Spero che questa guida ti abbia fornito alcuni spunti e ti abbia permesso di trovare alcune soluzioni al problema dei computer che escono dal dominio!
Lettura Ulteriore
Assicurati di dare un’occhiata ad altri post correlati!