在运行 Windows Server 2008 中的"Adprep /rodcprep"命令时出现错误消息:"Adprep 无法联系一个复制副本的分区的 DC = DomainDnsZones,哥伦比亚特区 = Contoso,DC = com"

文章翻译 文章翻译
文章编号: 949257 - 查看本文应用于的产品
展开全部 | 关闭全部

症状

当您在 Windows Server 2008 上运行Adprep /rodcprep命令时,您会收到以下错误消息:
Adprep 无法联系一个复制副本的分区的 DC = DomainDnsZones,DC = Contoso,DC = com
分区的 DC 上的操作失败,Adprep = DomainDnsZones,哥伦比亚特区 = Contoso,DC = com 跳到下一个分区。

Adprep 无法联系一个复制副本的分区的 DC = ForestDnsZones,DC = Contoso,DC = com
Adprep 遇到 LDAP 错误。错误代码: 0x0。服务器扩展错误代码: 0x0,服务器错误消息: (null)。

分区的 DC 上的操作失败,Adprep = ForestDnsZones,哥伦比亚特区 = Contoso,DC = com 跳到下一个分区。
Adprep 完成但有错误。不是所有分区都将都更新。

原因

Adprep /rodcprep命令尝试与基础结构主机联系的树林中的每个应用程序分区,则会出现此问题。该命令这样做是为了设置为只读域控制器 (RODC) 复制所需的权限。如果满足下列条件之一为真, Adprep /rodcprep命令将失败:
  • 该分区或分区不能再在错误信息中引用的存在。
  • 被引用的分区或分区的结构主机被强制降级或处于脱机状态。

解决方案

要解决此问题,如果分区不再存在,则使用 Dsmgmt 工具的"删除 nc"参数的孤立分区执行元数据清除。有关详细信息,请访问下面的 Microsoft 网站:
http://technet.microsoft.com/en-us/library/cc730970 (WS.10).aspx
如果存在指定的分区,指定分区的联机基础结构角色所有者。您可以这样通过手动修改对象, fSMORoleOwner属性的"更多信息"一节中所述。

更多信息

下面的示例脚本来修改基础架构对象的指定非域命名上下文 (NDNC) 到处于活动状态,或访问,服务器上的fSMORoleOwner属性。在此示例中 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,哥伦比亚特区 = contoso,DC = com命名上下文根目录来确定结构主机DC = DomainDnsZones,哥伦比亚特区 = contoso,DC = com分区。同样,查询fSMORoleOwner属性CN = 基础结构,DC = ForestDnsZones,哥伦比亚特区 = contoso,DC = com命名上下文根目录来确定结构主机DC = ForestDnsZones,哥伦比亚特区 = contoso,DC = com分区。

可以使用 LDP 工具、 活动目录服务接口 (ADSI) 编辑工具,工具和 ldifde 工具之类的工具来执行这些查询。例如,下面的查询使用 Idifde 工具:
ldifde-f Infra_DomainDNSZones.ldf-d"CN = 基础结构,DC = DomainDnsZones,DC = contoso,DC = com"-l fSMORoleOwner
此查询返回的基础结构主机角色所有者DC = DomainDnsZones,DC = contoso,DC = com到 Infra_DomainDNSZones.ldf 文件的分区。

注意您可以不损害前提下林多次运行Adprep /rodcprep命令。早期执行rodcprep命令中已完成的操作不会重复。

如果您尝试在隔离环境中运行rodcprep命令,为每个域,并为每个应用程序目录分区的结构主机必须成功执行操作环境中可用。

属性

文章编号: 949257 - 最后修改: 2012年10月7日 - 修订: 4.0
这篇文章中的信息适用于:
  • Windows Server 2008 for Itanium-Based Systems
  • Windows Server 2008 Datacenter
  • Windows Server 2008 Enterprise
  • Windows Server 2008 Datacenter without Hyper-V
  • Windows Server 2008 Enterprise without Hyper-V
  • Windows Server 2008 Standard without Hyper-V
  • Windows Server 2008 Standard
关键字:?
kbtshoot kbprb kbmt KB949257 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 949257
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

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