Fehlermeldung ADPREP /RODCPREP oder DCDIAG ForestDnsZones und DomainDnsZone
Problem:
Beim Durchführen des ADPREP-Befehls kommt es zu folgender Fehlermeldung:
der Fehler kann aber auch beim ausführen des Befehls DCDIAG auffallen, der sich wie folgt äußert:
Lösung:
Beim Verschieben und Neuerstellen der FSMO-Rollen auf einem anderen Server werden die Anwendungspartitionen ForestDnsZones und DomainDnsZone nicht angepaßt. Dadurch wird der neue Infrastructuremaster nicht in diese Partitionen übernommen und es kommt zu den Fehlermeldungen.
Da Microsoft weder einen Hinweis noch einen Protokoll-Eintrag zur Verfügung stellt, muß man hier manuell auf die Änderung durchführen, bzw. ein von Microsoft veröffentlichtes Skript verwenden.
Hier das Skript, dass bei mir zum erfolgreichen Umzug des "RoleOwners" für beide Partitionen geführt hat:
gestartet wird das ganze dann wie folgt (Anpassung des Domänennames ist nötig - hier als Beispiel: contoso.com):
Quellen für weitere Informationen bzw. manuellen Umzug der Rolle:
smtp25.blogspot.com: Replicating Directory Changes in Filtered Set access rights for the naming context
dikmenoglu.de: DCDIAG: NCSecDesc Fehler
dikmenoglu.de: Die Infrastrukturmaster der Anwendungsverzeichnispartitionen
Microsoft KB949257: Error message when you run the "Adprep /rodcprep" command in Windows Server 2008: "Adprep could not contact a replica for partition DC=DomainDnsZones,DC=Contoso,DC=com"
Beim Durchführen des ADPREP-Befehls kommt es zu folgender Fehlermeldung:
Adprep konnte kein Replikat für Partition DC=ForestDnsZones,DC=Root-Domäne erreichen.
ADPREP hat einen LDAP-Fehler festgestellt.
Fehlercode: 0x0. Erweiterter Server-Fehlercode: 0x0, Server-Fehlermeldung:(null).
und
Adprep konnte kein Replikat für Partition DC=DomainDnsZones,DC=Domäne,DC=de erreichen.
ADPREP hat einen LDAP-Fehler festgestellt.
Fehlercode: 0x0. Erweiterter Server-Fehlercode: 0x0, Server-Fehlermeldung:(null).
der Fehler kann aber auch beim ausführen des Befehls DCDIAG auffallen, der sich wie folgt äußert:
Starting test: NCSecDesc
Fehler: NT-AUTORITÄT\DOMÄNENCONTROLLER DER ORGANISATION besitzt
keine Replicating Directory Changes In Filtered Set
Zugriffsrechte für den Namenskontext:
DC=DomainDnsZones,DC=Domäne,DC=TLD
Fehler: NT-AUTORITÄT\DOMÄNENCONTROLLER DER ORGANISATION besitzt
keine Replicating Directory Changes In Filtered Set
Zugriffsrechte für den Namenskontext:
DC=ForestDnsZones,DC=Domäne,DC=TLD
.................. DCON01 hat den Test NCSecDesc nicht bestanden.
Lösung:
Beim Verschieben und Neuerstellen der FSMO-Rollen auf einem anderen Server werden die Anwendungspartitionen ForestDnsZones und DomainDnsZone nicht angepaßt. Dadurch wird der neue Infrastructuremaster nicht in diese Partitionen übernommen und es kommt zu den Fehlermeldungen.
Da Microsoft weder einen Hinweis noch einen Protokoll-Eintrag zur Verfügung stellt, muß man hier manuell auf die Änderung durchführen, bzw. ein von Microsoft veröffentlichtes Skript verwenden.
Hier das Skript, dass bei mir zum erfolgreichen Umzug des "RoleOwners" für beide Partitionen geführt hat:
-------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
gestartet wird das ganze dann wie folgt (Anpassung des Domänennames ist nötig - hier als Beispiel: contoso.com):
cscript fixfsmo.vbs DC=DomainDnsZones,DC=contoso,DC=com
Quellen für weitere Informationen bzw. manuellen Umzug der Rolle:
smtp25.blogspot.com: Replicating Directory Changes in Filtered Set access rights for the naming context
dikmenoglu.de: DCDIAG: NCSecDesc Fehler
dikmenoglu.de: Die Infrastrukturmaster der Anwendungsverzeichnispartitionen
Microsoft KB949257: Error message when you run the "Adprep /rodcprep" command in Windows Server 2008: "Adprep could not contact a replica for partition DC=DomainDnsZones,DC=Contoso,DC=com"