Fehlermeldung ADPREP /RODCPREP oder DCDIAG ForestDnsZones und DomainDnsZone

Problem:
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"
“Das einzig sichere System müsste ausgeschaltet, in einem versiegelten und von Stahlbeton ummantelten Raum und von bewaffneten Schutztruppen umstellt sein.”
Gene Spafford (Sicherheitsexperte)