Errore durante l'esecuzione del Adprep /rodcprep
comando in Windows Server 2008: Adprep non è riuscito a contattare una replica per la partizione DC=DomainDnsZones,DC=Contoso,DC=com
Questo articolo risolve un problema per cui il Adprep /rodcprep
comando non è stato completato correttamente perché il master dell'infrastruttura per uno o più NDNC di Active Directory non è raggiungibile.
Si applica a: Windows Server 2012 R2
Numero KB originale: 949257
Sintomi
Quando si esegue il Adprep /rodcprep
comando in Windows Server 2008, viene visualizzato il messaggio di errore seguente:
Adprep non è riuscito a contattare una replica per la partizione DC=DomainDnsZones,DC=Contoso,DC=com
Adprep non è riuscito a eseguire l'operazione sulla partizione DC=DomainDnsZones,DC=Contoso,DC=com Ignorando la partizione successiva.
Adprep non è riuscito a contattare una replica per la partizione DC=ForestDnsZones,DC=Contoso,DC=com
Adprep ha rilevato un errore LDAP. Codice di errore: 0x0. Codice di errore esteso del server: 0x0, messaggio di errore del server: (null).
Adprep non è riuscito a eseguire l'operazione sulla partizione DC=ForestDnsZones,DC=Contoso,DC=com Ignorando la partizione successiva.
Adprep completato con errori. Non tutte le partizioni vengono aggiornate.
Causa
Questo problema si verifica quando il Adprep /rodcprep
comando tenta di contattare il master dell'infrastruttura per ogni partizione dell'applicazione nella foresta. Il comando consente di impostare le autorizzazioni necessarie per la replica del controller di dominio di Read-Only. Il Adprep /rodcprep
comando ha esito negativo se si verifica una delle condizioni seguenti:
- La partizione o le partizioni a cui si fa riferimento nel messaggio di errore non esistono più.
- Il master dell'infrastruttura per la partizione o le partizioni a cui si fa riferimento è stato abbassato in modo forzato o è offline.
Risoluzione
Per risolvere questo problema se la partizione non esiste più, eseguire una pulizia dei metadati per la partizione orfana usando il parametro "remove nc" dello strumento Dsmgmt. Per maggiori informazioni, visitare il seguente sito Web Microsoft:
Se la partizione specificata esiste, specificare un proprietario del ruolo dell'infrastruttura online per la partizione. È possibile eseguire questa operazione modificando manualmente l'attributo fSMORoleOwner nell'oggetto , come descritto nella sezione "Altre informazioni".
Ulteriori informazioni
L'esempio di script seguente modifica l'attributo fSMORoleOwner nell'oggetto infrastruttura del contesto di denominazione non di dominio (NDNC) specificato in un server attivo o contattabile. Il NDNC in questo esempio è il contesto di denominazione DomainDnsZones,DC=contoso,DC=com NDNC . Lo script usa il comando seguente:
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
Per determinare il master dell'infrastruttura per una partizione, eseguire una query sull'attributo fSMORoleOwner sull'oggetto infrastruttura nella radice del contesto di denominazione in questione. Ad esempio, eseguire una query sull'attributo fSMORoleOwner nella radice del contesto di denominazione CN=Infrastructure,DC=DomainDnsZones,DC=contoso,DC=com per determinare il master dell'infrastruttura per la partizione DC=DomainDnsZones,DC=contoso,DC=com . Analogamente, eseguire una query sull'attributo fSMORoleOwner nella radice del contesto di denominazione CN=Infrastructure,DC=ForestDnsZones,DC=contoso,DC=com per determinare il master dell'infrastruttura per la partizione DC=ForestDnsZones,DC=contoso,DC=com .
Per eseguire queste query, è possibile usare strumenti come lo strumento LDP, lo strumento di modifica ADSI (Active Directory Service Interfaces) e lo strumento ldifde. Ad esempio, la query seguente usa lo strumento Idifde:
ldifde -f Infra_DomainDNSZones.ldf -d "CN=Infrastructure,DC=DomainDnsZones,DC=contoso,DC=com" -l fSMORoleOwner
Questa query restituisce il proprietario del ruolo master dell'infrastruttura per la partizione DC=DomainDnsZones,DC=contoso,DC=com nel file Infra_DomainDNSZones.ldf.
Nota
È possibile eseguire il Adprep /rodcprep
comando più volte senza danneggiare la foresta. Le operazioni completate nelle esecuzioni precedenti del comando rodcprep non vengono ripetute.
Se si tenta di eseguire il rodcprep
comando in un ambiente isolato, il master dell'infrastruttura per ogni dominio e per ogni partizione di directory dell'applicazione deve essere disponibile all'interno dell'ambiente affinché l'operazione abbia esito positivo.
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per