Ошибка при выполнении Adprep /rodcprep
команды в Windows Server 2008: Adprep не удалось связаться с реплика для секции DC=DomainDnsZones,DC=Contoso,DC=com
В этой статье устранена проблема, Adprep /rodcprep
из-за которой команда не была выполнена успешно, так как инфраструктура master для одного или нескольких NDCS Active Directory недоступна.
Применяется к: Windows Server 2012 R2
Исходный номер базы знаний: 949257
Симптомы
При выполнении команды в Adprep /rodcprep
Windows Server 2008 появляется следующее сообщение об ошибке:
Adprep не удалось связаться с реплика для секции DC=DomainDnsZones,DC=Contoso,DC=com
Adprep не выполнил операцию для секции DC=DomainDnsZones,DC=Contoso,DC=com Пропуская следующий раздел.
Adprep не удалось связаться с реплика для секции DC=ForestDnsZones,DC=Contoso,DC=com
Adprep обнаружил ошибку LDAP. Код ошибки: 0x0. Код расширенной ошибки сервера: 0x0, сообщение об ошибке сервера: (null).
Adprep не выполнил операцию для секции DC=ForestDnsZones,DC=Contoso,DC=com Пропуская следующий раздел.
Adprep завершается с ошибками. Не все секции обновляются.
Причина
Эта проблема возникает, Adprep /rodcprep
когда команда пытается связаться с инфраструктурой master для каждого раздела приложения в лесу. Команда делает это, чтобы задать разрешения, необходимые для репликации контроллера домена Read-Only (RODC). Команда Adprep /rodcprep
завершается ошибкой, если выполняется одно из следующих условий:
- Секции или секции, на которые ссылается сообщение об ошибке, больше не существуют.
- Инфраструктура master для указанной секции или секций была принудительно понижена или находится в автономном режиме.
Разрешение
Чтобы устранить эту проблему, если секция больше не существует, выполните очистку метаданных для потерянной секции с помощью параметра remove nc средства Dsmgmt. Дополнительные сведения см. на следующем веб-сайте корпорации Майкрософт: .
Если указанная секция существует, укажите владельца роли инфраструктуры, который находится в сети для секции. Это можно сделать, вручную изменив атрибут fSMORoleOwner для объекта, как описано в разделе "Дополнительные сведения".
Дополнительная информация
Следующий пример скрипта изменяет атрибут fSMORoleOwner в объекте инфраструктуры указанного контекста неименования домена (NDNC) на активный или контактный сервер. В этом примере NDNC является контекстом именования NDNC DomainDnsZones,DC=contoso,DC=com. Скрипт использует следующую команду:
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
Чтобы определить инфраструктуру master для секции, запросите атрибут fSMORoleOwner в объекте инфраструктуры в соответствующем корне контекста именования. Например, запросите атрибут fSMORoleOwner в CN=Infrastructure,DC=DomainDnsZones,DC=contoso,DC=com, чтобы определить инфраструктуру master для раздела DC=DomainDnsZones,DC=contoso,DC=com. Аналогичным образом, запросите атрибут fSMORoleOwner в CN=Infrastructure,DC=ForestDnsZones,DC=contoso,DC=com, чтобы определить инфраструктуру master для раздела DC=ForestDnsZones,DC=contoso,DC=com.
Для выполнения этих запросов можно использовать такие средства, как средство LDP, средство редактирования интерфейсов служб Active Directory (ADSI) и средство ldifde. Например, следующий запрос использует средство Idifde:
ldifde -f Infra_DomainDNSZones.ldf -d "CN=Infrastructure,DC=DomainDnsZones,DC=contoso,DC=com" -l fSMORoleOwner
Этот запрос возвращает инфраструктуру master владельца роли для раздела DC=DomainDnsZones,DC=contoso,DC=com в файл Infra_DomainDNSZones.ldf.
Примечание.
Команду можно выполнить Adprep /rodcprep
несколько раз, не навредив лесу. Операции, выполненные ранее при выполнении команды rodcprep, не повторяются.
Если вы попытаетесь выполнить rodcprep
команду в изолированной среде, инфраструктура master для каждого домена и для каждого раздела каталога приложения должна быть доступна в среде, чтобы операция была успешной.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по