Problembehandlung bei AD-Replikationsfehler 8589: Der DS kann keinen Dienstprinzipalnamen (SPN) ableiten.
In diesem Artikel werden Symptome, Ursachen und Lösungsschritte für Fälle beschrieben, in denen AD-Vorgänge mit Win32-Fehler 8589 fehlschlagen.
Hinweis
Private Benutzer: Dieser Artikel richtet sich nur an technische Supportmitarbeiter und IT-Experten. Wenn Sie Hilfe bei einem Problem suchen, wenden Sie sich bitte an die Microsoft Community.
Gilt für: Windows Server 2019, Windows Server 2016, Windows Server 2012 R2
Ursprüngliche KB-Nummer: 2703028
Problembeschreibung
Fehler 8589: "Der DS kann keinen Dienstprinzipalnamen (SPN) ableiten, mit dem der Zielserver gegenseitig authentifiziert werden soll, da das entsprechende Serverobjekt in der lokalen DS-Datenbank kein serverReference-Attribut aufweist.
Symbolischer Fehler: ERROR_DS_CANT_DERIVE_SPN_WITHOUT_SERVER_REF
Bei der Problembehandlung bei der Active Directory-Replikation wird einer der folgenden Fehler/Warnungen angezeigt.
DCDIAG berichtet, dass der Active Directory-Replikationstest mit dem Fehlerstatus (8589) fehlgeschlagen ist: Der DS kann keinen Dienstprinzipalnamen (SERVICE Principal Name, SPN) ableiten, der den Zielserver gegenseitig authentifiziert, da das entsprechende Serverobjekt in der lokalen DS-Datenbank kein serverReference-Attribut aufweist.
Beispielfehlertext von DCDIAG ist unten dargestellt:
Testserver: <Standort-DC-Name><>
Starttest: Replikationen
* Replikationsprüfung
[Replikationsprüfung,< DC-Name>] Ein neuer Replikationsversuch ist fehlgeschlagen:
Von <Quell-DC> zu <Ziel-DC>
Namenskontext: DC=<DN-Pfad>
Die Replikation hat einen Fehler generiert (8589):
Der DS kann keinen Dienstprinzipalnamen (Service Principal Name, SPN) ableiten, mit dem der Zielserver gegenseitig authentifiziert werden soll, da das entsprechende Serverobjekt in der lokalen DS-Datenbank kein serverReference-Attribut aufweist.
Der Fehler ist zum <Zeitpunkt des Datums><> aufgetreten.
Der letzte Erfolg erfolgte bei (nie)| <datum>.
DCDiag.exe zeigt die folgende Warnung an:
Ein Warnereignis ist aufgetreten. EventID: 0x80000785
Generierte Uhrzeit: <DateTime>
Ereigniszeichenfolge: Fehler beim Versuch, eine Replikationsverknüpfung für die folgende beschreibbare Verzeichnispartition herzustellen.
Verzeichnispartition:
DC=ForestDnsZones,DC=contoso,DC=com
Quelldomänencontroller:
CN=NTDS Settings,CN=DCSRV01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=contosoDC=com
Quelldomänencontrolleradresse:<Source DC NTDS Settings Obejct GUID>._msdcs.contoso.com
Standortübergreifender Transport (falls vorhanden):
Dieser Domänencontroller kann nicht mit dem Quelldomänencontroller repliziert werden, bis dieses Problem behoben ist.Benutzeraktion
Überprüfen Sie, ob auf den Quelldomänencontroller zugegriffen werden kann oder eine Netzwerkverbindung verfügbar ist.Zusätzliche Daten
Fehlerwert:
8589Der DS kann keinen Dienstprinzipalnamen (Service Principal Name, SPN) ableiten, mit dem der Zielserver gegenseitig authentifiziert werden soll, da das entsprechende Serverobjekt in der lokalen DS-Datenbank kein serverReference-Attribut aufweist.
REPADMIN.EXE meldet, dass der letzte Replikationsversuch mit dem Status 8589 fehlgeschlagen ist.
REPADMIN
Befehle, die häufig den 8589-Status zitieren, umfassen unter anderem Folgendes:REPADMIN /SHOWREPL
REPADMIN /SHOWREPS
REPADMIN /REPLSUM
REPADMIN /SYNCALL
Repadmin /showrepl gibt den folgenden Fehler zurück:
Quelle: <Websitename>\<DC-Name>
<n> AUFEINANDER FOLGENDE FEHLER seit <Datum & und Uhrzeit>
Letzter Fehler: 8589 (0x218d):
Der DS kann keinen Dienstprinzipalnamen (Service Principal Name, SPN) ableiten, mit dem der Zielserver gegenseitig authentifiziert werden soll, da das entsprechende Serverobjekt in der lokalen DS-Datenbank kein serverReference-Attribut aufweist.
Ereignisse im Verzeichnisdienste-Ereignisprotokoll, die den Fehlerstatus 8589 zitieren
Zu den Ereignissen, die häufig den Status 8589 zitieren, gehören:
Ereignisquelle und Ereignis-ID Nachrichtenzeichenfolge NTDS-Replikation/ActiveDirectory_DomainService 1411 Active Directory konnte keinen Dienstprinzipalnamen (MUTUAL Authentication Service Principal Name, SPN) für den folgenden Domänencontroller erstellen. NTDS-Replikation 2023 Der lokale Domänencontroller konnte Änderungen an dem folgenden Remotedomänencontroller für die folgende Verzeichnispartition nicht replizieren. NTDS KCC 1925 Fehler beim Versuch, eine Replikationsverknüpfung für die folgende beschreibbare Verzeichnispartition herzustellen.
Ursache
Das Ereignis tritt am häufigsten auf einem Dc auf, nachdem ein Replikationspartner erzwungen herabgestuft und erneut ausgelöst wurde, bevor die End-to-End-Replikation abgeschlossen werden kann. Dies kann auch passieren, wenn Sie einen Domänencontroller umbenennen und das serverReference-Attribut nicht aktualisiert wird. Das serverReference-Attribut in dieser Instanz ist das Serverobjekt, das im Active Directory Sites and Services MMC (adsiedit.msc) angezeigt werden kann. Das Serverobjekt ist das übergeordnete Objekt des NTDS-Einstellungsobjekts des Domänencontrollers.
Lösung
Stellen Sie sicher, dass das serverReference-Attribut nicht fehlt oder auf einen falschen Wert festgelegt ist, und aktualisieren Sie es auf den richtigen Wert.
Suchen Sie den Domänencontroller, auf den in der Ereignis-ID 1411 verwiesen wird. Es gibt ein paar Optionen, die wir verwenden können, um dies zu finden. Die Einfache ist die Verwendung von Ping (Option A). Wenn ping fehlschlägt, verwenden Sie PowerShell (Option B). Wenn PowerShell keine Option ist, können Sie ldp.exe (Option C) verwenden. (Hinweis: Wenn Ihre DCs 2003 sind und Sie PowerShell nicht darauf installieren können, können Sie PowerShell von einem In einer Windows 7-Domäne beigetretenen Client oder einem Windows 2008- oder Windows 2008 R2-Server verwenden.)
Option A
Verwenden Sie NSLookup oder Ping, um den DC zu finden, der im <Quell-DC-NTDS-Einstellungs-Obejct-GUID aufgeführt ist>._msdcs.contoso.comBeispiel:
Ping 3dab7f9b-92e7-4391-b8db-71df532c1493._msdcs.contoso.com
Pinging DCSRV02.contoso.com [IP] with 32 bytes of data : Reply from [IP]: bytes=32 time<1ms TTL=128 Reply from [IP]: bytes=32 time<1ms TTL=128 Reply from [IP]: bytes=32 time<1ms TTL=128 Reply from [IP]: bytes=32 time<1ms TTL=128
Option B
Verwenden Sie PowerShell, um den DC zu suchen, auf den verwiesen wird. Es gibt zwei PowerShell-Methoden, die Sie verwenden können. Öffnen Sie dazu das "Active Directory-Modul für Windows PowerShell".Methode 1: Führen Sie die folgenden beiden PowerShell-Cmdlets aus. Ersetzen Sie im ersten Cmdlet den Partitionsnamen
CN=Configuration,DC=contoso,DC=com
durch den DN Ihrer Konfigurationspartition. Ersetzen Sie den ServernamenDCSRV01.contoso.com
durch den Namen Ihres Domänencontrollers. Ersetzen Sie im zweiten Cmdlet die GUID 3dab7f9b-92e7-4391-b8db-71df532c1493 durch die GUID in Ihrer Ereignis-ID 1411.$list = Get-ADObject -Filter 'ObjectClass -eq "ntdsdsa"' -SearchBase '*CN=Configuration,DC=contoso,Dc=com*' -Server *DCSRV01.contoso.com* -includedeletedobjects -Properties * foreach ($dc in $list) {if ($dc.ObjectGUID -match "*3dab7f9b-92e7-4391-b8db-71df532c1493*") {Echo $dc.DistinguishedName }}
Methode 2: Eine weitere PowerShell-Option besteht darin, Folgendes auszuführen und dann die Ausgabetextdatei zu durchsuchen. Ersetzen Sie den
DCSRV01.contoso.com
Dc in Ihrer Umgebung durch einen DC.Get-ADObject -Filter 'ObjectClass -eq "ntdsdsa"' -SearchBase 'CN=Configuration,DC=contoso,Dc=com' -Server DCSRV01.contoso.com -includedeletedobjects > C:\NTDSDSA.txt
Suchen Sie dann NTDSA.txt nach der GUID, auf die in Ereignis-ID 141 verwiesen wird.
Option C
Verwenden von Ldp.exe
- Klicken Sie auf "Start" und dann auf "Ausführen".
- Geben Sie LDP.exe ein, und drücken Sie dann die EINGABETASTE.
- Klicken Sie im Menü "Verbindungen" auf "Binden", und klicken Sie auf "OK".
- Klicken Sie im Menü Ansicht auf Struktur.
- Klicken Sie in BaseDN auf den Dropdownlistenpfeil, klicken Sie auf den distinguishedn Namen der Konfigurationspartition, und klicken Sie auf OK.
- Klicken Sie im Menü "Optionen" auf "Steuerelemente".
- Erweitern Sie im Dialogfeld "Steuerelemente" das Menü "Vordefinierte Laden", klicken Sie auf "Gelöschte Objekte zurückgeben", und klicken Sie auf "OK".
Hinweis
Das 1.2.840.113556.1.4.417-Steuerelement wird in der Liste der aktiven Steuerelemente angezeigt.
- Klicken Sie im Menü "Durchsuchen" auf "Suchen".
- Geben Sie im Feld "Basis-DN" Folgendes ein:
CN=Sites, CN=Configuration,DC=contoso,DC=com
(Ersetzen Sie contoso und com durch den entsprechenden Domänennamen.) - Geben Sie im Feld "Filter" (objectClass=ntdsdsa)
- Wählen Sie im Feld "Bereich" die Option "Unterstruktur" aus.
- Geben Sie im Feld "Attribute" ein * (Sternchen) ein.
- Klicken Sie auf "Ausführen".
- Suchen Sie auf der rechten Seite nach der GUID im objectGUID-Attribut, um den Server zu finden, auf den verwiesen wird.
Option D
- Rufen Sie
repadmin /showrepl
die Ausgabe vom Ziel-DC ab, der den Status 8589 meldet. - Identifizieren Sie mithilfe der
repadmin /showrepl
Ausgabe aus dem vorherigen Schritt den Replikationsstatus 8589 innerhalb der Ausgabe, und dokumentieren Sie den Datums- und Zeitstempel nach der Meldung "Letzter Versuch". - Suchen Sie unter Verwendung von Datum und Zeitstempel aus dem vorherigen Schritt die entsprechende Ereignis-ID 1411 im Verzeichnisdienste-Ereignisprotokoll auf dem Ziel-DC. Beachten Sie, dass sich die in der
repadmin /showrepl
Ausgabe aufgelistete DSA-Objekt-GUID von der in der Ereignis-ID 1411 gemeldeten unterscheidet.( siehe Beispielszenario unten) - Suchen Sie dann den Domänencontroller, der in der Ereignis-ID 1411 aufgeführt ist, indem Sie entweder die Registerkarte "Allgemeine NTDS-Einstellungseigenschaften" überprüfen oder die GUID in der Ereignis-ID pingen.
- Binden Sie mit ADSIEDIT oder Active Directory-Benutzer und -Computer an den Quell-DC, öffnen Sie den Attribut-Editor, und kopieren Sie den Wert in "serverReference". Fügen Sie den Wert dieses Attributs in die Ziel-DCs-Kopie des Objekts ein. (Schritt 2)
Nachdem Sie den Server gefunden haben, auf den mithilfe einer der oben genannten Methoden verwiesen wird, gehen Sie folgendermaßen vor:
- Klicken Sie auf "Start" und dann auf "Ausführen".
- Geben Sie ADSIEDIT.msc ein, und drücken Sie die EINGABETASTE.
- Klicken Sie mit der rechten Maustaste auf "ADSI Bearbeiten", und wählen Sie " Verbinden mit... "
- Wählen Sie unter " Verbindungspunkt " unter " Einen bekannten Namenskontext auswählen: " wählen Sie " Konfiguration " aus, und klicken Sie auf "OK".
- Erweitern Sie im linken Bereich "Konfiguration"
- Nächste Erweiterung " CN=Configuration,DC=contoso,DC=com "
- Nächste Erweiterung " CN=Sites "
- Erweitern Sie unter "CN=Sites" den Standort , in dem sich der Server befindet. Beispiel: Default-First-Site-Name
- Erweitern Sie unter diesem Standort CN=Server. Beispiel: Wenn sich DCSRV02 in der Site "Default-First-Site-Name" in Contoso.com befindet, sollten Sie sich in: CN=DCSRV02, CN=Servers, CN=Default-First-Site-Name, CN=Sites, CN=Configuration, DC=contoso, DC=com
- Klicken Sie mit der rechten Maustaste auf den Domänencontroller (gefunden mit Option A, B oder C), und wählen Sie "Eigenschaften" aus.
- Scrollen Sie auf der Registerkarte "Attribut-Editor" nach unten zum serverReference-Attribut.
- Der serverReference-Wert sollte mit CN=DCSRV02,OU=Domain Controllers,DC=Contoso,DC=com vergleichbar sein, wenn er fehlt oder falsch ist, ändern Sie ihn in den richtigen Wert.
- SCHLIEßEN VON ADSIEDIT.msc
Weitere Informationen
Beispielszenario
Rufen Sie die Ausgabe "repadmin /showrepl" vom Ziel-DC ab, der den Status 8589 meldet.
Identifizieren Sie mithilfe der repadmin/showrepl-Ausgabe aus dem vorherigen Schritt den Replikationsstatus 8589 innerhalb der Ausgabe, und dokumentieren Sie den Datums- und Zeitstempel nach der Meldung "Letzter Versuch".
Repadmin /showrepl
Ausgabe:Liverpool\LIVCONTOSODCDSA-Optionen: IS_GC
Websiteoptionen: (keine)
DSA-Objekt-GUID: <GUID>DSA invocationID: <InvocationID>
==== EINGEHENDE NACHBARN =========================================
DC=Contoso,DC=com
Charlotte\CONTOSOROOTDC1 über RPC
DSA-Objekt-GUID: <GUID>
Der letzte Versuch @ <DateTime> war erfolgreich.
CN=Configuration,DC=Contoso,DC=com
Houston\5THWARDCORPDC über RPC
DSA-Objekt-GUID: <GUID>
Letzter Versuch @ <DateTime> fehlgeschlagen, Ergebnis 8589 (0x218d):
Der DS kann keinen Dienstprinzipalnamen (Service Principal Name, SPN) ableiten, mit dem der Zielserver gegenseitig authentifiziert werden soll, da das entsprechende Serverobjekt in der lokalen DS-Datenbank kein serverReference-Attribut aufweist.
1700 aufeinanderfolgende Fehler.
Letzter Erfolg @ (nie).
Suchen Sie unter Verwendung von Datum und Zeitstempel aus dem vorherigen Schritt die entsprechende Ereignis-ID 1411 im Verzeichnisdienste-Ereignisprotokoll auf dem Ziel-DC. Beachten Sie, dass sich die in der Ausgabe "repadmin /showrepl" aufgeführte DSA-Objekt-GUID von der in der Ereignis-ID 1411 gemeldeten unterscheidet.
Verzeichnisdienste-Ereignisprotokoll:
Protokollname: Verzeichnisdienst
Quelle: Microsoft-Windows-ActiveDirectory_DomainService
Datum: <DateTime>
Ereignis-ID: 1411
Aufgabenkategorie: DS RPC-Client
Ebene: Fehler
Schlüsselwörter: Klassisch
Benutzer: ANONYME ANMELDUNG
Computer: LIVCONTOSODC.Contoso.com
Beschreibung:
Active Directory Domain Services konnte für den folgenden Verzeichnisdienst keinen Prinzipalnamen (Mutual Authentication Service Principal Name, SPN) erstellen.Verzeichnisdienst: <GUID>._msdcs.Contoso.com
Der Anruf wurde abgelehnt. Möglicherweise ist die Kommunikation mit diesem Verzeichnisdienst betroffen.
Zusätzliche Daten
Fehlerwert:
8589 Der DS kann keinen Dienstprinzipalnamen (Service Principal Name, SPN) ableiten, mit dem der Zielserver gegenseitig authentifiziert werden soll, da das entsprechende Serverobjekt in der lokalen DS-Datenbank kein serverReference-Attribut aufweist.
Klicken Sie auf "Abbrechen", und zeigen Sie dann die Eigenschaften für das Serverobjekt an (in diesem Beispiel 5thWardCorpDC), wählen Sie die Registerkarte "Attribut-Editor" (Server 2008 und höher) aus, oder verwenden Sie ADSIEDIT, um das Objekt auf Server 2003 zu bearbeiten.
Beachten Sie, dass das serverReference-Attribut in der folgenden Abbildung nicht festgelegt ist.
Binden Sie mit ADSIEDIT oder Active Directory-Benutzer und -Computer an den Quell-DC, öffnen Sie den Attribut-Editor, und kopieren Sie den Wert in "serverReference". Fügen Sie den Wert dieses Attributs in die Ziel-DCs-Kopie des Objekts ein.
Nachdem das serverReference-Attribut für den Domänencontroller ordnungsgemäß festgelegt wurde, wird wie folgt angezeigt: