Сообщение об ошибке при выполнении команды «Adprep/rodcprep» в Windows Server 2008: «Adprep не удалось связаться реплик для раздела DC = DomainDnsZones, DC = Contoso, DC = com "

Переводы статьи Переводы статьи
Код статьи: 949257 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

Проблема

При запуске Программа 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 Команда пытается связаться с хозяином инфраструктуры для каждого раздела приложений в лесу. Команда выполняет это для установки разрешений, необходимых для репликации контроллера домена только для чтения (RODC). В Программа adprep/rodcprep команда не выполняется, если выполняется одно из следующих условий:
  • Раздел или разделы, на которые имеются ссылки в сообщении об ошибке больше не существует.
  • Хозяин инфраструктуры для указанной секции или секций была принудительно понижена или находится в автономном режиме.

Решение

Чтобы устранить эту проблему, если раздел не существует, выполните очистку метаданных для потерянного раздела с помощью параметра «Удалить контекст именования» средства Dsmgmt. Для получения дополнительных сведений посетите следующий веб-узел корпорации Майкрософт:
http://TechNet.Microsoft.com/en-us/library/cc730970 (WS.10) .aspx
Если указанный раздел существует, укажите владельца инфраструктурной роли, которая находится в оперативном режиме для секции. Это можно сделать путем изменения вручную fSMORoleOwner атрибут объекта, как описано в разделе «Дополнительная информация».

Дополнительная информация

В следующем примере сценарий изменяет fSMORoleOwner атрибут из указанного домена не именования контекста (NDNC) активного или contactable, сервер объекта инфраструктуры. NDNC в этом примере — DomainDnsZones, DC = contoso, DC = com NDNC контекст именования. Сценарий использует следующую команду:
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
Чтобы определить хозяина инфраструктуры для секции, запрос fSMORoleOwner атрибут объекта инфраструктуры в корне именования контекста в вопросе. Например, запрос fSMORoleOwner атрибут CN = инфраструктуры, DC = DomainDnsZones, DC = contoso, DC = com именования корневой контекст для определения хозяина инфраструктуры для DC = DomainDnsZones, DC = contoso, DC = com раздел. Аналогичным образом, запрос fSMORoleOwner атрибут CN = инфраструктуры, DC = ForestDnsZones, DC = contoso, DC = com именования корневой контекст для определения хозяина инфраструктуры для DC = ForestDnsZones, DC = contoso, DC = com раздел.

С помощью таких средств, как средство LDP, средство редактирования интерфейсов служб Active Directory (ADSI) и средства ldifde для выполнения этих запросов. Например следующий запрос использует средство Idifde:
LDIFDE -f Infra_DomainDNSZones.ldf -d "CN инфраструктуры, DC = = DomainDnsZones, DC = contoso, DC = com" fSMORoleOwner -l
Этот запрос возвращает владельца роли хозяина инфраструктуры DC = DomainDnsZones, DC = contoso, DC = com раздел файла Infra_DomainDNSZones.ldf.

Примечание Можно запускать Программа adprep/rodcprep команды несколько раз без ущерба леса. Операции, которые были выполнены в предыдущих выполнений rodcprep команда не повторяются.

При попытке запуска rodcprep команда в изолированной среде, хозяин инфраструктуры для каждого домена и для каждого раздела каталога приложения должны быть доступны в среде для успешного выполнения операции.

Свойства

Код статьи: 949257 - Последний отзыв: 19 июня 2011 г. - Revision: 4.0
Информация в данной статье относится к следующим продуктам.
Ключевые слова: 
kbtshoot kbprb kbmt KB949257 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:949257

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com