Fehler beim Ausführen des Adprep /rodcprep
Befehls in Windows Server 2008: Adprep konnte kein Replikat für die Partition DC=DomainDnsZones,DC=Contoso,DC=com kontaktieren
In diesem Artikel wird ein Problem behoben, bei dem der Adprep /rodcprep
Befehl nicht erfolgreich abgeschlossen wurde, da die Infrastruktur master für einen oder mehrere Active Directory-NDNCs nicht erreichbar ist.
Gilt für: Windows Server 2012 R2
Ursprüngliche KB-Nummer: 949257
Symptome
Wenn Sie den Adprep /rodcprep
Befehl unter Windows Server 2008 ausführen, wird die folgende Fehlermeldung angezeigt:
Adprep konnte kein Replikat für die Partition DC=DomainDnsZones,DC=Contoso,DC=com kontaktieren.
Adprep hat den Vorgang auf partition DC=DomainDnsZones,DC=Contoso,DC=com Überspringen zur nächsten Partition fehlgeschlagen.
Adprep konnte kein Replikat für die Partition DC=ForestDnsZones,DC=Contoso,DC=com kontaktieren.
Bei Adprep ist ein LDAP-Fehler aufgetreten. Fehlercode: 0x0. Erweiterter Serverfehlercode: 0x0, Serverfehlermeldung: (NULL).
Adprep hat den Vorgang auf partition DC=ForestDnsZones,DC=Contoso,DC=com Überspringen zur nächsten Partition fehlgeschlagen.
Adprep wurde mit Fehlern abgeschlossen. Nicht alle Partitionen werden aktualisiert.
Ursache
Dieses Problem tritt auf, wenn der Adprep /rodcprep
Befehl versucht, die Infrastruktur master für jede Anwendungspartition in der Gesamtstruktur zu kontaktieren. Der Befehl legt die Berechtigungen fest, die für Read-Only Domänencontrollerreplikation (RODC) erforderlich sind. Der Adprep /rodcprep
Befehl schlägt fehl, wenn eine der folgenden Bedingungen zutrifft:
- Die Partition oder die Partitionen, auf die in der Fehlermeldung verwiesen wird, sind nicht mehr vorhanden.
- Die Infrastruktur master für die Partitionen, auf die verwiesen wird, wurde erzwungen oder ist offline.
Lösung
Um dieses Problem zu beheben, wenn die Partition nicht mehr vorhanden ist, führen Sie eine Metadatenbereinigung für die verwaiste Partition durch, indem Sie den Parameter "remove nc" des Dsmgmt-Tools verwenden. Weitere Informationen hierzu finden Sie auf folgender Website von Microsoft:
Wenn die angegebene Partition vorhanden ist, geben Sie einen Besitzer der Infrastrukturrolle an, der für die Partition online ist. Sie können dies tun, indem Sie das fSMORoleOwner-Attribut für das Objekt manuell ändern, wie im Abschnitt "Weitere Informationen" beschrieben.
Weitere Informationen
Im folgenden Skriptbeispiel wird das fSMORoleOwner-Attribut für das Infrastrukturobjekt des angegebenen Non-Domain Naming Context (NDNC) in einen aktiven oder kontaktierbaren Server geändert. Der NDNC in diesem Beispiel ist der DomainDnsZones,DC=contoso,DC=com NDNC-Benennungskontext . Das Skript verwendet den folgenden Befehl:
cscript fixfsmo.vbs DC=DomainDnsZones,DC=contoso,DC=com
'-------fixfsmo.vbs------------------
const ADS_NAME_INITTYPE_GC = 3
const ADS_NAME_TYPE_1779 = 1
const ADS_NAME_TYPE_CANONICAL = 2
set inArgs = WScript.Arguments
if (inArgs.Count = 1) then
' Assume the command line argument is the NDNC (in DN form) to use.
NdncDN = inArgs(0)
Else
Wscript.StdOut.Write "usage: cscript fixfsmo.vbs NdncDN"
End if
if (NdncDN <> "") then
' Convert the DN form of the NDNC into DNS dotted form.
Set objTranslator = CreateObject("NameTranslate")
objTranslator.Init ADS_NAME_INITTYPE_GC, ""
objTranslator.Set ADS_NAME_TYPE_1779, NdncDN
strDomainDNS = objTranslator.Get(ADS_NAME_TYPE_CANONICAL)
strDomainDNS = Left(strDomainDNS, len(strDomainDNS)-1)
Wscript.Echo "DNS name: " & strDomainDNS
' Find a domain controller that hosts this NDNC and that is online.
set objRootDSE = GetObject("LDAP://" & strDomainDNS & "/RootDSE")
strDnsHostName = objRootDSE.Get("dnsHostName")
strDsServiceName = objRootDSE.Get("dsServiceName")
Wscript.Echo "Using DC " & strDnsHostName
' Get the current infrastructure fsmo.
strInfraDN = "CN=Infrastructure," & NdncDN
set objInfra = GetObject("LDAP://" & strInfraDN)
Wscript.Echo "infra fsmo is " & objInfra.fsmoroleowner
' If the current fsmo holder is deleted, set the fsmo holder to this domain controller.
if (InStr(objInfra.fsmoroleowner, "\0ADEL:") > 0) then
' Set the fsmo holder to this domain controller.
objInfra.Put "fSMORoleOwner", strDsServiceName
objInfra.SetInfo
' Read the fsmo holder back.
set objInfra = GetObject("LDAP://" & strInfraDN)
Wscript.Echo "infra fsmo changed to:" & objInfra.fsmoroleowner
End if
End if
Um die Infrastruktur master für eine Partition zu bestimmen, fragen Sie das fSMORoleOwner-Attribut für das Infrastrukturobjekt unter dem betreffenden Namenskontextstamm ab. Fragen Sie beispielsweise das fSMORoleOwner-Attribut für die CN=Infrastructure,DC=DomainDnsZones,DC=contoso,DC=com naming context root ab, um die Infrastruktur master für die Partition DC=DomainDnsZones,DC=contoso,DC=com zu bestimmen. Auf ähnliche Weise fragen Sie das fSMORoleOwner-Attribut für die Partition "CN=Infrastructure,DC=ForestDnsZones,DC=contoso,DC=com naming context root" ab, um die Infrastruktur master für die Partition DC=ForestDnsZones,DC=contoso,DC=com zu bestimmen.
Sie können Tools wie das LDP-Tool, das AdsI-Bearbeitungstool (Active Directory Service Interfaces) und das ldifde-Tool verwenden, um diese Abfragen durchzuführen. Die folgende Abfrage verwendet z. B. das Idifde-Tool:
ldifde -f Infra_DomainDNSZones.ldf -d "CN=Infrastructure,DC=DomainDnsZones,DC=contoso,DC=com" -l fSMORoleOwner
Diese Abfrage gibt die Infrastruktur master Rollenbesitzer für die Partition DC=DomainDnsZones,DC=contoso,DC=com in die Datei Infra_DomainDNSZones.ldf zurück.
Hinweis
Sie können den Adprep /rodcprep
Befehl mehrmals ausführen, ohne die Gesamtstruktur zu beeinträchtigen. Vorgänge, die in früheren Ausführungen des rodcprep-Befehls abgeschlossen wurden, werden nicht wiederholt.
Wenn Sie versuchen, den rodcprep
Befehl in einer isolierten Umgebung auszuführen, muss die Infrastruktur master für jede Domäne und für jede Anwendungsverzeichnispartition innerhalb der Umgebung verfügbar sein, damit der Vorgang erfolgreich ausgeführt werden kann.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für