当您运行 ADPREP/FORESTPREP,或安装新操作系统版本的域控制器的"有同一链接标识符的属性已经存在"的错误

针对 Windows Server 2003 的支持已于 2015 年 7 月 14 日终止。

Microsoft 已于 2015 年 7 月 14 日终止了对于 Windows Server 2003 的支持。该更改已影响到您的软件更新和安全选项。 了解这一措施对于您的含义以及如何继续保持受保护状态。

重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。

点击这里察看该文章的英文版: 969307
症状
ADPREP /forestprep 成功命令来扩展该林架构基于 Windows Server 2003 的计算机上运行时,该命令将失败,并收到下面的错误消息:

连接到"<host name="" of="" schema="" master="">"
以使用 SSPI 当前用户登录
从"C:\WINDOWS\system32\sch44.ldf"文件导入目录
正在加载项...
在 43 行添加错误: 不会执行
服务器端的错误是"架构更新失败: 已存在具有相同的 linkidentifier 属性。"
7 个项目修改成功。
在程序中发生错误
错误: 导入失败,C:\WINDOWS\system32\sch44.ldf 的文件。在 ldif.err.44 中保存文件时出错。</host>

此外,如果您打开的 Ldif.err.44 错误文件,您会看到类似于下面的错误消息:

项 DN: CN =ms-DS-桥头--使用服务器,CN = 架构,CN = 配置中,DC =<forest root="" domain="">添加错误行 43: 不会执行服务器端的错误是"架构更新失败: 有同一链接标识符的属性已经存在。"在程序中出现错误</forest>

注意
上的其他属性也会发生此错误。例如,架构更改为camDBSignonRef对象分配一个 linkID 2046 时发生错误。Microsoft 特性ms-PKI-DPAPIMasterKeys已在 Windows Server 2008 架构中的更新此 linkID。
原因
ADPREP /forestprep 成功命令尝试使用已分配给架构分区中的现有对象 linkID 到架构分区中添加新的对象时,将发生此错误。

重要:尽管这是一个严重问题,其中的架构扩展失败,此时林是中断的状态而不会在需要被重新设置为以前的状态。不过,我们建议您按照在该问题上快速。然后,如果您有运行林恢复,不会丢失许多更改为退林。
解决方案
这一节中描述的修复过程至少需要在架构主机上的 Windows Server 2003。该过程还可以应用到其他属性。

不要更改架构分区中已有对象的链接 Id,因为该行为会导致 活动目录(AD) 复制失败与架构不匹配。

重要:我们强烈建议您联系 Microsoft 客户支持服务,以帮助解决这一问题。尽管林很可能不在无法挽回的状态在这种情况下,如果继续依靠您自己,修复您可能无意使另一个误认为和破坏太多您需要执行林恢复的目录林。因此,您应确保在继续操作之前,在目录林中每个域中具有有效的系统状态备份,从两个或多个域控制器。

若要解决此问题,请执行以下步骤:
  1. 标识正在添加冲突 linkID。若要执行此操作,请检查 Ldif.err 中的架构定义文件。<Number></Number>文件。在这种情况下,您会发现该特性 CN = ms-DS-桥头--使用服务器,CN = 架构,CN = 配置中,DC =<forest name=""></forest>sch44.ldf 是被分配一个 linkID 的 2160年。
  2. 标识当前拥有冲突 linkID 的目标架构分区中的对象。您可以搜索以查看哪些现有对象分配 Sch<xx>中的对象与冲突 linkID 的目标架构主机上的架构.ldf 文件。若要执行此操作,请使用 REPADMIN,LDIFDE,LDP。Exe 文件,或者等效的工具。以下是一些例子。

    对于 REPADMIN 搜索:
    </xx>
    repadmin /showattr fsmo_schema: ncobj:schema: /filter:"(linkid=2160)" /subtree


    用于 LDIFDE 搜索:
    LDIFDE /f <filename> /d "CN=Schema,CN=Configuration,DC=<forest root domain>" /r (linkid=2160) 


    LDP 搜索:
    BaseDN: CN=Schema,CN=Configuration,DC=<forest name>Scope : SubtreeFilter: (linkid=2160)
  3. 查找受影响的属性,例如ms-DS-桥头的服务器-使用ms-PKI-DPAPIMasterKeys中包含的架构文件。架构文件位于 \support\adprep。搜索文件的属性存在冲突。例如,使用下面的命令:
    Findstr ms-DS-桥头的服务器-使用 d:\support\adprep\sch*.ldf
  4. 在文本编辑器中,打开您所查找的文件。
  5. 将新链接 Id 分配给 Sch<xx>中的正向链接对象.ldf 文件与现有架构分区中的对象的 linkid 发生冲突。这可以通过分配分配的已知对象标识符 (也称为 OID) 来实现 SCH<xx>中的所有正向链路特性的 linkID 字段到"1.2.840.113556.1.2.50"的 linkid 发生冲突与现有的对象,目标目录林中.ldf。"1.2.840.113556.1.2.50"的对象标识符将目标架构中的唯一自动生成链接 Id。

    要解决此问题,例如 linkID 2160 的 Sch44.ldf 中定义的CN = ms-DS-桥头--使用服务器,请按照下列步骤操作:</xx></xx>
    1. 打开 Sch44.ldf 文件。请参阅下面的文本为CN = ms-DS-桥头--使用服务器,CN = 架构,CN = 配置中,DC =<forest name=""></forest>
      dn: CN=ms-DS-BridgeHead-Servers-Used,CN=Schema,CN=Configuration,DC=Xchangetype: ntdsSchemaAddadminDescription: List of bridge head servers used by KCC in the previous run.adminDisplayName: ms-DS-BridgeHead-Servers-UsedattributeID: 1.2.840.113556.1.4.2049attributeSyntax: 2.5.5.7cn: ms-DS-BridgeHead-Servers-UsedinstanceType: 4isSingleValued: FALSElDAPDisplayName: msDS-BridgeHeadServersUsedlinkID: 2160objectCategory: CN=Attribute-Schema,CN=Schema,CN=Configuration,DC=XobjectClass: attributeSchemaoMObjectClass:: KoZIhvcUAQEBCw==oMSyntax: 127schemaFlagsEx: 1schemaIDGUID:: ZRTtPHF7QSWHgB4epiQ6gg==searchFlags: 0showInAdvancedViewOnly: TRUEsystemFlags: 25
    2. 将该文本复制到一个新的 txt 文件,然后使用新名称保存该文件。例如,将文件另存为"新建-BridgeHeadServersUsed.ldf"。

      注意:请不要更改现有的架构文件
    3. 更改为"1.2.840.113556.1.2.50"来触发的 Windows 服务器架构操作主机上的唯一 linkid 发生自动生成 linkID 字段从"2160"。请参阅下面的 Sch44.ldf 文件中的文本CN = ms-DS-桥头--使用服务器,CN = 架构,CN = 配置中,DC =<DC></DC>
      dn: CN=ms-DS-BridgeHead-Servers-Used,CN=Schema,CN=Configuration,DC=Xchangetype: ntdsSchemaAddadminDescription: List of bridge head servers used by KCC in the previous run.adminDisplayName: ms-DS-BridgeHead-Servers-UsedattributeID: 1.2.840.113556.1.4.2049attributeSyntax: 2.5.5.7cn: ms-DS-BridgeHead-Servers-UsedinstanceType: 4isSingleValued: FALSElDAPDisplayName: msDS-BridgeHeadServersUsedlinkID: 1.2.840.113556.1.2.50objectCategory: CN=Attribute-Schema,CN=Schema,CN=Configuration,DC=XobjectClass: attributeSchemaoMObjectClass:: KoZIhvcUAQEBCw==oMSyntax: 127schemaFlagsEx: 1schemaIDGUID:: ZRTtPHF7QSWHgB4epiQ6gg==searchFlags: 0showInAdvancedViewOnly: TRUEsystemFlags: 25
    4. 在更正后的属性的定义中之前, 添加以下部分:
      dn: changetype: modifyadd: schemaupgradeinprogressschemaupgradeinprogress: 1-

      包含连字号 (-) 的行,如下所示是重要的空行。
  6. Linkid 发生的前向链接属性发生更改时,更新 linkid 发生后链接属性。某些在 活动目录(AD) 中的对象具有后链接属性,和其他对象则不能。本示例中使用的ms-DS-桥头--使用服务器对象不具有属性。您必须确定已更改的对象是否具有后链接使用的属性的其他对象。如果受影响的对象没有后退链接对象,则必须以相同的方式更改后链接对象。

    您可以通过查找架构定义文件中下一个奇数的 linkID 找到回链接属性。通常情况下,属性是架构文件中列出的下一个属性。但有时它是在一个不同的文件中。例如,如果您确定问题 linkID / 属性为2050年/ CN = ms-DFSR-ComputerReference、 CN = 架构,CN = 配置中,DC =<forest name=""></forest>,上一页链接会 havelinkID 2051。要搜索的链接 ID 2051,运行下面的命令:

    Findstr /c:"linkid: 2051" d:\support\adprep\sch*.ldf
    如果找到了反向链接,属性定义从复制架构导入文件到新的导入文件与所复制的正向链接属性相同的方式。

    注意:后退链接对象的 linkID 定义使用硬编码 (数字) 标识。应更改定义启用后链接对象来自动生成的对象标识符。

    在这种情况下,反向链接此转发链接创建通过将 linkID 后退链接对象设置为正向链接对象的 ldapDisplayName。如果 msDS BridgeHeadServersUsed 具有下列特性,linkID 行应如下所示:

    linkID: msDS-BridgeHeadServersUsed
  7. 总之,架构导入文件新建 BridgeHeadServersUsed.ldfnow 具有最多四个命令。命令按以下顺序出现:
    1. 打开架构导入模式 (schemaupgradeinprogress)
    2. 更正后的正向链接属性定义
    3. 若要重新加载架构缓存的指令
    4. 可选: 更正后向链接属性的定义
  8. 保存和 closethe 为您创建的自定义特性的架构更新文件。
  9. 将新的自定义更改导入架构。例如,使用下面的命令:
    LDIFDE /i /f 新 BridgeHeadServersUsed.ldf /j。

    检查所有错误的 Ldif.err 和 Ldif.log 文件。如果有错误,请在此时与 Microsoft 客户支持服务联系。
  10. 请重新运行架构更新过程。如果您可以运行 ADPREP 架构扩展工具,重新运行该工具,通过使用/forestprep 成功参数。如果您已使用服务器管理器驱动器安装的第一个上级域控制器,您应该重新安装过程从服务器管理器。
  11. LDIF 导入日志如 Ldif.err.44 可能包含有关事实通过新建 BridgeHeadServersUsed.ldf 的特性已存在的警告。但是,预期结果是现在成功完成架构更新。

    如果有错误,您应在此时联系 Microsoft 客户支持服务。

更多信息
有关如何获取一个 linkID 的详细信息,请转到下面的 Microsoft 开发人员网络 (MSDN) 网站:有关自动生成 linkID 的详细信息,请转到下面的 MSDN 网站:有关 linkID 属性的详细信息,请转到下面的 MSDN 网站:

警告:本文已自动翻译

属性

文章 ID:969307 - 上次审阅时间:05/07/2015 11:32:00 - 修订版本: 2.0

Windows Server 2012 R2 Standard, Windows Server 2012 Standard, Windows Server 2012 Datacenter, Windows Server 2008 R2 Service Pack 1, Windows Server 2008 Service Pack 2, Microsoft Windows Server 2003 Service Pack 2

  • kbexpertiseadvanced kbsurveynew kbtshoot kbmt KB969307 KbMtzh
反馈