Erreur lors de l’exécution de la Adprep /rodcprep
commande dans Windows Server 2008 : Adprep n’a pas pu contacter un réplica pour la partition DC=DomainDnsZones,DC=Contoso,DC=com
Cet article résout un problème lié à l’échec de la Adprep /rodcprep
commande, car l’infrastructure master pour un ou plusieurs NDC Active Directory n’est pas accessible.
S’applique à : Windows Server 2012 R2
Numéro de la base de connaissances d’origine : 949257
Symptômes
Lorsque vous exécutez la Adprep /rodcprep
commande sur Windows Server 2008, le message d’erreur suivant s’affiche :
Adprep n’a pas pu contacter un réplica pour la partition DC=DomainDnsZones,DC=Contoso,DC=com
Adprep n’a pas pu effectuer l’opération sur la partition DC=DomainDnsZones,DC=Contoso,DC=com Ignorer la partition suivante.
Adprep n’a pas pu contacter un réplica pour la partition DC=ForestDnsZones,DC=Contoso,DC=com
Adprep a rencontré une erreur LDAP. Code d’erreur : 0x0. Code d’erreur étendu du serveur : 0x0, Message d’erreur du serveur : (null).
Adprep a échoué l’opération sur la partition DC=ForestDnsZones,DC=Contoso,DC=com Ignorer la partition suivante.
Adprep s’est terminé avec des erreurs. Toutes les partitions ne sont pas mises à jour.
Cause
Ce problème se produit lorsque la Adprep /rodcprep
commande tente de contacter l’infrastructure master pour chaque partition d’application dans la forêt. La commande l’exécute pour définir les autorisations requises pour Read-Only réplication du contrôleur de domaine (RODC). La Adprep /rodcprep
commande échoue si l’une des conditions suivantes est remplie :
- La partition ou les partitions référencées dans le message d’erreur n’existent plus.
- L’infrastructure master pour la ou les partitions référencées a été rétrogradée de force ou est hors connexion.
Résolution
Pour résoudre ce problème si la partition n’existe plus, effectuez un nettoyage des métadonnées pour la partition orpheline à l’aide du paramètre « remove nc » de l’outil Dsmgmt. Pour plus d’informations, visitez le site web de Microsoft suivant :
Si la partition spécifiée existe, spécifiez un propriétaire de rôle d’infrastructure en ligne pour la partition. Vous pouvez le faire en modifiant manuellement l’attribut fSMORoleOwner sur l’objet, comme décrit dans la section « Plus d’informations ».
Plus d’informations
L’exemple de script suivant modifie l’attribut fSMORoleOwner sur l’objet d’infrastructure du NDNC (Non-Domain Naming Context) spécifié en serveur actif ou contactable. Le NDNC dans cet exemple est le contexte d’affectation de noms NDNC DomainDns,DC=contoso,DC=com . Le script utilise la commande suivante :
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
Pour déterminer l’infrastructure master pour une partition, interrogez l’attribut fSMORoleOwner sur l’objet d’infrastructure sous la racine du contexte d’affectation de noms en question. Par exemple, interrogez l’attribut fSMORoleOwner sur la racine du contexte d’affectation de noms CN=Infrastructure,DC=DomainDnsZones,DC=contoso,DC=com pour déterminer la master d’infrastructure pour la partition DC=DomainDnsZones,DC=contoso,DC=com. De même, interrogez l’attribut fSMORoleOwner sur la racine du contexte d’affectation de noms CN=Infrastructure,DC=ForestDnsZones,DC=contoso,DC=com afin de déterminer la master d’infrastructure pour la partition DC=ForestDnsZones,DC=contoso,DC=com.
Vous pouvez utiliser des outils tels que l’outil LDP, l’outil De modification des interfaces de service Active Directory (ADSI) et l’outil ldifde pour effectuer ces requêtes. Par exemple, la requête suivante utilise l’outil Idifde :
ldifde -f Infra_DomainDNSZones.ldf -d « CN=Infrastructure,DC=DomainDnsZones,DC=contoso,DC=com » -l fSMORoleOwner
Cette requête retourne l’infrastructure master propriétaire du rôle pour la partition DC=DomainDnsZones,DC=contoso,DC=com au fichier Infra_DomainDNSZones.ldf.
Remarque
Vous pouvez exécuter la Adprep /rodcprep
commande plusieurs fois sans endommager la forêt. Les opérations effectuées lors d’exécutions antérieures de la commande rodcprep ne sont pas répétées.
Si vous essayez d’exécuter la rodcprep
commande dans un environnement isolé, l’infrastructure master pour chaque domaine et pour chaque partition de répertoire d’application doit être disponible dans l’environnement pour que l’opération réussisse.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour