Tipps

Computerkennwörter, der Secure Channel und die Fehlermeldung „Die Vertrauensstellung zwischen dieser Arbeitsstation und der primären Domäne konnte nicht hergestellt werden”

Wenn ein Domänen-Computer gestartet wird, sucht er im Netzwerk zuerst nach einem Domänen-Controller, indem der den DNS-Server nach den LDAP-Service-Records seiner Domäne fragt. Anschließend versucht er, mit dem Domänencontroller einen Secure Channel, also eine verschlüsselte, sichere Datenverbindung aufzubauen. Dies geschieht über einen RPC Netlogon. RPC ist ein Challenge-Response-Protokoll, bei dem der Client und der Server sich gegenseitig einen zufälligen 64 Bit-Zufallswert, den Client- bzw. Server Challenge, zuschicken, aus denen mit Hilfe des Computerkennworts (wegen gegenseitige Authentifizierung sowohl auf dem Client als auch auf dem Server) ein Session-Key berechnet wird. Das funktioniert, weil sowohl der Client als auch der Domänencontroller über das Computerkennwort des Clients verfügen. Wenn der Domänencontroller und der Client nicht das gleiche Kennwort gespeichert haben, schlägt die Erstellung des Secure Channels allerdings fehl und dem Client wird die Verbindung zum Domänencontroller verweigert. Stattdessen wird eine Fehlermeldung angezeigt, die vermutlich jeder Administrator schon einmal gesehen hat: „The trust relationship between this workstation and the primary domain failed” bzw. "Die Vertrauensstellung zwischen dieser Arbeitsstation und der primären Domäne konnte nicht hergestellt werden".

Wie und wo wird das Computerkennwort verwaltet

Der Client generiert beim Aufnehmen in die Domäne ein komplexes Kennwort, dass er ab Windows 2000 alle 30 Tage automatisch ändert. Da Computerkonten sind von den Kennwortrichtlinien der Domäne ausgenommen sind, können Sie auch nicht gesperrt werden, wenn sie länger offline sind.
Die Kennwortänderung führt der Client zuerst zuerst lokal aus. Danach ändert er sein Kennwort im AD. Schlägt die Aktualisierung im AD fehl, setzt er wieder das alte Kennwort. Das aktuelle Kennwort und sein Vorgänger werden im geschützten Kennwortschlüssel HKLM\SECURITY\Policy\Secrets\$machine.ACC gespeichert. Im AD sind die Kennwörter in den Attributen unicodepwd und lmpwdHistory abgelegt.
Ob und wie oft der Client sein Kennwort ändert, kann in der Systemregistrierung unter HKLM\SYSTEM\CurrentControlSet\Services\NetLogon\Parameters konfiguriert werden. Für die Konfiguration sind drei Schlüssel verantwortlich:

MaximumPasswordAge: Der Eintrag MaximumPasswordAge legt fest, nach welchem Zeitraum der Netlogon-Dienst versucht, das Kennwort zu ändern. Der Standardwert ist 30 (Tage).

ScavengeInterval: Das Scavengeinterval legt fest, wie häufig der Computer prüfen soll, ob das maximale Kennwortalter erreicht ist. Der Standardwert beträgt 900 (Sekunden), also 15 Minuten. Der Eintrag ist nicht in der Registry hinterlegt, kann hier aber geändert werden. Der Typ des Eintrags ist REG_DWORD.

DisablePasswordChange: Sie können die Kennwortänderung des Computers mit diesem Schlüssel auch komplett deaktivieren, indem Sie den Wert auf 1 setzen.

Die aktuelle Konfiguration können Sie mit Regedit oder Powershell abfragen:

Get-Item "HKLM:\SYSTEM\CurrentControlSet\Services\NetLogon\Parameters"

Alternativ kann das maximale Alter und die Änderungsdeaktivierung auch über Gruppenrichtlinien gesetzt werden. Sie finden die Einstellungen unter Computerkonfiguration > Richtlinien > Windows-Einstellungen > Sicherheitsoptionen. Die Richtlinien heißen:

Domänenmitglied: Maximalalter von Computerkennwörtern
Domänenmitglied: Änderungen von Computerkennwörtern deaktivieren

Wenn der Secure Channel nicht erzeugt werden kann

Es gibt verschiedene Gründe, warum ein Kennwort nicht mehr stimmt oder der Secure Channel nicht erzeugt werden kann. Hier sind einige:

  • Der Computer ist eine VM und wurde aus einem alten Snapshot wiederhergestellt.
  • Wenn der Computer nach dem Erstellen des Snapshots sein Kennwort geändert hat, haben der Computer und die Domäne unterschiedliche Computerkennwörter hinterlegt.
  • Das Computerkonto wurde im AD manuell zurückgesetzt (Kontextmenü des Computers -> Reset)
  • Wenn das Computerkonto zurückgesetzt wird, wird ein neues Kennwort vergeben. Die Kennwörter des Computers und der Domäne stimmen nicht mehr überein
  • Die Uhrzeit des Clients und des Domänencontrollers differiere zu stark
  • Für die Erstellung des Secure-Channels wird auch die Uhrzeit als Timestamp verwendet. Differieren die Zeiten zu stark, schlägt die Authentifizierung fehl
  • Doppelte Computernamen
  • Wenn zwei Computer den gleichen Namen verwenden, wird das Kennwort des Computerkontos beim joinen der zweiten Maschine neu gesetzt und die erste verliert die Verbindung zur Domäne.
  • Doppelte SIDs
  • Wenn ein Computer nach dem Domain-Join geklont wird, ohne das Image vorher per sysprep zurückzusetzen, verwenden beide Maschinen die gleiche SID und das gleiche Computerkonto (und auch den gleichen Namen). Wenn einer der beiden Maschinen das Kennwort ändert, kann die andere Maschine keinen Secure Channel mehr erstellen.
  • Wenn ein Computer über 60 Tage lang keine Verbindung zum DC herstellen konnte
  • Wenn ein Computer läuft, aber keine Verbindung zur Domäne herstellen kann, versucht er nach dem Standardintervall von 30 Tagen sein Kennwort zu ändern. Nach weiteren 30 Tagen ändert er sein Kennwort ein zweites mal. Das Kennwort, das er als Historie speichert, wird durch das Kennwort überschrieben, dass beim ersten Wechsel nach 30 Tagen vergeben wurde. Damit ist dem Client das Domänenkennwort nicht mehr bekannt. Wichtig, dieses Verhalten tritt nicht auf, wenn der Client die ganze Zeit ausgeschaltet war – beim Einschalten verbindet er sich mit seinem Kennwort, ändert es in der Domäne und alles ist gut.

 

Zurücksetzen des Computerkennworts

Zum Zurücksetzen stehen Ihnen mehrere Optionen offen.

Computer aus der Domäne entfernen und wieder hinzufügen: Der vielleicht einfachste Weg - entfernen Sie den Computer aus der Domäne (auf dem Computer, nicht im AD!) und fügen Sie ihn wieder hinzu. Das Computerkonto wird neu verbunden, es bleiben also alle Berechtigungen erhalten.

Powershell: Powershell stellt Ihnen sogar zwei Cmdlets zur Verfügung, um das Computerkennwort zurückzusetzen. Hierfür muss der Computer nicht aus der Domäne entfernt werden! Verbinden Sie sich hierfür per RDP mit dem Client und verwenden Sie ein lokales Administratorkonto für die Anmeldung. Anschließend können Sie das Kennwort mit Reset-ComputerMachinePassword oder Test-Computersecurechannel zurücksetzen.

Reset-ComputerMachinePassword -Credential "Ihr Administrator-Konto"

oder alternativ

Test-ComputerSecureChannel -Repair -Credential "Ihr Adminsitrator-Konto"

Wenn Sie sich per Powershell-Remoting verbunden haben, müssen Sie die Anmeldeinformationen per Powershell erstellen, statt sie abzufragen.

$SecPwd = ConvertTo-SecureString -String "Password" -AsPlainText -Force
$cred = New-Object PsCredential("admin",$SecPwd)
Reset-ComputerMachinePassword -Credential $cred

Kommandozeile: Sie können auch den Kommandozeilenbefehl netdom.exe verwenden:

netdom resetpwd /server:DC_NAME /userd:USERNAME / password:PASSWORD

 

Weiterführende Links

MSDN: Secure Channel Establishment and Maintenance Methods

Netlogon Remote Protocol Dokumentation, pdf

Wikipedia: Challenge–response authentication

Wikipedia: Challenge–response authentication

Ask the Directory Services Team: Machine Account Password Process

Machine Account (AD Computer Object) Password Updates



Wenn ein Domänen-Computer gestartet wird, sucht er im Netzwerk zuerst nach einem Domänen-Controller, indem der den DNS-Server nach den LDAP-Service-Records seiner Domäne fragt. Anschließend versucht er, mit dem Domänencontroller einen Secure Channel, also eine verschlüsselte, sichere Datenverbindung aufzubauen. Dies geschieht über einen RPC Netlogon. Dies ist ein sogenanntes Challenge-Response-Protokoll, bei dem der Client und der Server sich gegenseitig einen zufälligen 64 Bit-Zufallswert, den Client- bzw. Server Challenge, zuschicken, aus denen mit Hilfe des Computerkennworts (wegen gegenseitige Authentifizierung sowohl auf dem Client als auch auf dem Server) ein Session-Key berechnet wird. Das funktioniert, weil sowohl der Client als auch der Domänencontroller über das Computerkennwort des Clients verfügen. Wenn der Domänencontroller und der Client nicht das gleiche Kennwort gespeichert haben, schlägt die Erstellung des Secure Channels allerdings fehl und dem Client wird die Verbindung zum Domänencontroller verweigert. Stattdessen wird eine Fehlermeldung angezeigt, die vermutlich jeder Administrator schon einmal gesehen hat: „The trust relationship between this workstation and the primary domain failed” bzw. "Die Vertrauensstellung zwischen dieser Arbeitsstation und der primären Domäne konnte nicht hergestellt werden".

Wie und wo wird das Computerkennwort verwaltet

Der Client generiert beim Aufnehmen in die Domäne ein komplexes Kennwort, dass er ab Windows 2000 alle 30 Tage automatisch ändert. Da Computerkonten von den Kennwortrichtlinien der Domäne ausgenommen sind,  hat es keine Auswirkungen, wenn der Client das Kennwort nicht ändert, z.B. weil er länger als 30 Tage ausgeschaltet war.

Der Client ändert sein Kennwort zuerst lokal. Danach ändert er sein Kennwort im AD. Schlägt die Aktualisierung im AD fehl, setzt er wieder das alte Kennwort. Das aktuelle Kennwort und sein Vorgänger werden im geschützten Kennwortschlüssel HKLM\SECURITY\Policy\Secrets\$machine.ACC gespeichert. Im AD sind die Kennwörter in den Attributen unicodepwd und lmpwdHistory abgelegt.

Ob und wie oft der Client sein Kennwort ändert, kann in der Systemregistrierung unter HKLM\SYSTEM\CurrentControlSet\Services\NetLogon\Parameters konfiguriert werden. Für die Konfiguration sind drei Schlüssel verantwortlich:

MaximumPasswordAge
Der Eintrag MaximumPasswordAge legt fest, nach welchem Zeitraum der Netlogon-Dienst versucht, das Kennwort zu ändern. Der Standardwert ist 30 (Tage).

ScavengeInterval
Das Scavengeinterval legt fest, wie häufig der Computer prüfen soll, ob das maximale Kennwortalter erreicht ist. Der Standardwert beträgt 900 (Sekunden), also 15 Minuten. Der Eintrag ist nicht in der Registry hinterlegt, kann hier aber geändert werden. Der Typ des Eintrags ist REG_DWORD.

DisablePasswordChange
Sie können die Kennwortänderung des Computers mit diesem Schlüssel auch komplett deaktivieren, indem Sie den Wert auf 1 setzen.

Die aktuelle Konfiguration können Sie mit Regedit oder Powershell abfragen:

Get-Item "HKLM:\SYSTEM\CurrentControlSet\Services\NetLogon\Parameters"

Alternativ kann das maximale Alter und die Änderungsdeaktivierung auch über Gruppenrichtlinien gesetzt werden. Sie finden die Einstellungen unter Computerkonfiguration > Richtlinien > Windows-Einstellungen > Sicherheitsoptionen. Die Richtlinien heißen:

Domänenmitglied: Maximalalter von Computerkennwörtern

Domänenmitglied: Änderungen von Computerkennwörtern deaktivieren

 

Wenn der Secure Channel nicht erzeugt werden kann.

Es gibt verschiedene Gründe, warum ein Kennwort nicht mehr stimmt oder der Secure Channel nicht erzeugt werden kann. Hier sind einige:

Der Computer ist eine VM und wurde aus einem alten Snapshot wiederhergestellt.

Wenn der Computer nach dem Erstellen des Snapshots sein Kennwort geändert hat, haben der Computer und die Domäne unterschiedliche Computerkennwörter hinterlegt.

Das Computerkonto wurde im AD manuell zurückgesetzt (Kontextmenü des Computers -> Reset)

Wenn das Computerkonto zurückgesetzt wird, wird ein neues Kennwort vergeben. Die Kennwörter des Computers und der Domäne stimmen nicht mehr überein

Die Uhrzeit des Clients und des Domänencontrollers differiere zu stark

Für die Erstellung des Secure-Channels wird auch die Uhrzeit als Timestamp verwendet. Differieren die Zeiten zu stark, schlägt die Authentifizierung fehl

Doppelte Computernamen

Wenn zwei Computer den gleichen Namen verwenden, wird das Kennwort des Computerkontos beim joinen der zweiten Maschine neu gesetzt und die erste verliert die Verbindung zur Domäne.

Doppelte SIDs

Wenn ein Computer nach dem Domain-Join geklont wird, ohne das Image vorher per sysprep zurückzusetzen, verwenden beide Maschinen die gleiche SID und das gleiche Computerkonto (und auch den gleichen Namen). Wenn einer der beiden Maschinen das Kennwort ändert, kann die andere Maschine keinen Secure Channel mehr erstellen.

Wenn ein Computer über 60 Tage lang keine Verbindung zum DC herstellen konnte

Wenn ein Computer läuft, aber keine Verbindung zur Domäne herstellen kann, versucht er nach dem Standardintervall von 30 Tagen sein Kennwort zu ändern. Nach weiteren 30 Tagen ändert er sein Kennwort ein zweites mal. Das Kennwort, das er als Historie speichert, wird durch das Kennwort überschrieben, dass beim ersten Wechsel nach 30 Tagen vergeben wurde. Damit ist dem Client das Domänenkennwort nicht mehr bekannt. Wichtig, dieses Verhalten tritt nicht auf, wenn der Client die ganze Zeit ausgeschaltet war – beim Einschalten verbindet er sich mit seinem Kennwort, ändert es in der Domäne und alles ist gut.

Zurücksetzen des Computerkennworts

Zum Zurücksetzen stehen Ihnen mehrere Optionen offen.

Computer aus der Domäne entfernen und wieder hinzufügen

Der vielleicht einfachste Weg - entfernen Sie den Computer aus der Domäne (auf dem Computer, nicht im AD!) und fügen Sie ihn wieder hinzu. Das Computerkonto wird neu verbunden, es bleiben also alle Berechtigungen erhalten.

Powershell

Powershell stellt Ihnen sogar zwei Cmdlets zur Verfügung, um das Computerkennwort zurückzusetzen. Hierfür muss der Computer nicht aus der Domäne entfernt werden! Verbinden Sie sich hierfür per RDP oder Powershell Remoting mit dem Client und verwenden Sie ein lokales Administratorkonto für die Anmeldung. Danach

Test-ComputerSecureChannel -Repair -Credential (Get-Credential) -Verbose

netdom resetpwd /server:DC_NAME /userd:USERNAME / password:PASSWORD

https://msdn.microsoft.com/en-us/library/cc237238.aspx

https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-NRPC/[MS-NRPC].pdf

https://en.wikipedia.org/wiki/Challenge%E2%80%93response_authentication

https://blogs.technet.microsoft.com/askds/2009/02/15/machine-account-password-process-2/

https://adsecurity.org/?p=280


 712,    06  Jan  2019 ,   Tipp
Holger Voges

  E-Mail Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!

Holger Voges ist Inhaber der Firma Netz-Weise IT-Training und seit 1999 als Trainer und Consultant tätig. Als Allrounder in den Bereichen Windows Server, Active Directory, SQL Server, Hyper-V und Windows PowerShell, hat er in der Vergangenheit zahlreiche Einsätze als Consultant in namenhaften Firmen absolviert und so neben der Theorie auch umfangreiche praktische Erfahrungen gesammelt.

 

Netz-Weise

Das Haupt-Tätigkeitsfeld von Netz-Weise sind Schulungen für Profis. Bei uns bekommen Sie das Programm für den fortgeschrittenen Praktiker, der die Tiefen des Systems ausloten möchte genauso wie Standard-Schulungen.

So erreichen Sie uns:

Netz-Weise
IT-Training und Beratung
Freundallee 13a
30173 Hannover
 
Tel: (0511) 165 925-0
Fax: (0511) 165 925-99
email: info(at)netz-weise.de
 

Newsletter bestellen

Das Wichtigste kompakt ins E-Mailfach!