域与目录服务

排查复制错误 8606 - Windows Server

· 52CE 我爱测

本文有助于排查 Active Directory 复制错误 8606:为创建对象提供的属性不足。 原始 KB 数: 2028495 注意 家庭用户: 本文仅适用于技术支持代理和 IT 专业人员。 如果你正在寻找解决问题的帮助, 请询问Microsoft社区(https://answers.microsoft.com/en-us)。 总结 本文介绍 Active Directory 复制失败并生成错误 8606 的问题的症状和原因:“没有足够的属性来创建对象

本文有助于排查 Active Directory 复制错误 8606:为创建对象提供的属性不足。

原始 KB 数: 2028495

注意

家庭用户: 本文仅适用于技术支持代理和 IT 专业人员。 如果你正在寻找解决问题的帮助, 请询问Microsoft社区。

总结

本文介绍 Active Directory 复制失败并生成错误 8606 的问题的症状和原因:“没有足够的属性来创建对象。 此对象可能不存在,因为它可能已被删除。本文还介绍了此问题的解决方法。

现象

症状 1

DCDIAG 报告 Active Directory 复制测试失败并出现错误 8606:“属性不足以创建对象。

开始测试:复制 [复制检查, <目标 DC>] 最近的复制尝试失败: 从 <源 DC> 到 <目标 DC> 命名上下文: <目录分区 DN 路径> 复制生成了错误(8606): 为创建对象提供的属性不足。 此对象可能不存在,因为它可能已被删除且已垃圾回收 失败发生在 <日期><时间> 上次成功发生在 <日期><时间>

症状 2

Active Directory 站点和服务管理单元 DSSITE 中的“立即复制”命令触发的传入复制。MSC 不成功,并生成错误“为创建对象提供的属性不足”。右键单击源 DC 中的连接对象,然后选择“立即复制”时,复制不成功,并生成以下错误:“访问被拒绝。此外,还会收到以下错误消息:

对话框标题文本:立即复制 对话框消息文本:尝试将命名上下文 <%active directory 分区名称%> 从域控制器 <源 DC> 同步到域控制器 <目标 DC> 期间发生以下错误:

为创建对象提供的属性不足。 此对象可能不存在,因为它可能已被删除并已垃圾回收。

操作不会继续

症状 3

各种 repadmin.exe 命令失败,出现错误 8606。 这些命令包括但不限于以下内容:

repadmin /add``repadmin /replsum``repadmin /showrepl``repadmin /showrepl``repadmin /syncall

症状 4

事件发生之一后不久,将记录事件 1988:

  • 部署林中的第一个域控制器。
  • 对部分属性集的任何更新都进行了。

症状 5

NTDS 复制事件 1988 可能记录在尝试入站复制 Active Directory 的域控制器的目录服务事件日志中。

类型错误: 源:NTDS 复制 类别:复制 事件 ID:1988 用户:NT AUTHORITY\ANONYMOUS LOGON 计算机: <记录事件的 DC 的主机名,即复制尝试中的“目标”DC> 说明:本地域控制器已尝试从以下源域控制器复制以下对象。 本地域控制器上不存在此对象,因为它可能已被删除且已垃圾回收。 源域控制器: <源 DC 的完全限定 GUIDED CNAME> 对象: <源 DC 上的实时对象的 DN 路径> 对象 GUID: <Active Directory 的源 DC 副本上的对象的对象 GUID>

原因

如果满足以下条件,则会记录错误 8606:

  • 源域控制器向已经创建、删除并通过垃圾回收从目标域控制器的 Active Directory 副本回收的对象(而不是创建的原始对象)发送更新。
  • 目标域控制器配置为在严格的复制一致性下 运行。

如果目标域控制器配置为使用松散复制一致性,则会在目标域控制器的目录副本上“重新调整”对象。 可能导致错误的特定变体记录在“更多信息”部分中。 但是,此错误是由以下任一原因引起的:

  • 永久挥之不去的对象,其删除需要管理员干预
  • 当源域控制器执行下一次垃圾回收清理时,将自行更正的暂时性挥之不去的对象。 引入现有林中的第一个域控制器并更新部分属性集是这种情况的已知原因。
  • 在逻辑删除生存期到期时未删除或还原的对象

排查 8606 错误时,请考虑以下几点:

  • 尽管目标域控制器上记录了错误 8606,但阻止复制的问题对象驻留在源域控制器上。 此外,源域控制器的源域控制器或源域控制器的可传递复制伙伴可能没有对过去已删除的逻辑删除生存期天数的入站复制知识。

  • 在以下情况下,可能存在挥之不去的对象:

    • 作为“live”对象,作为 CNF 或冲突管理的对象“live”对象,或者作为 CNF 或源域控制器的已删除对象容器中的冲突管理对象
    • 在任何目录分区中,架构分区除外。 在 DC 上的只读域分区中最常发现挥之不去的对象。 在可写的域分区和配置分区中也可能存在挥发对象。 架构分区不支持删除。
    • 在任何对象类中(用户、计算机、组和 DNS 记录都是最常见的)。
  • 请记得按对象 GUID 和 DN 路径搜索可能挥之不去的对象,以便无论其主机分区和父容器如何,都可以找到对象。 通过 objectguid 搜索还会查找已删除对象容器中的对象,而无需使用已删除的对象 LDAP 控件。

  • NTDS Replication 1988 事件仅标识源域控制器上的当前对象,该对象阻止严格模式目标域控制器的传入复制。 在 1988 年事件中引用的对象可能“隐藏”了其他对象,这些对象也会挥之不去。

  • 源域控制器上存在徘徊对象可防止或阻止严格模式目标域控制器复制队列中挥之不去的对象后面的“良好”更改。

  • 由于域控制器从其已删除的对象容器中单独删除对象的方式(垃圾回收守护程序从上次启动每个域控制器上次启动时每隔 12 小时运行一次),因此在目标域控制器上导致 8606 错误的对象可能会在下一次垃圾回收清理执行中被删除。 此类中的挥发对象是暂时性的,应在问题开始后 12 小时内自行删除。

  • 有问题的挥发对象可能是管理员或应用程序故意删除的对象。 将此因素纳入解决方案计划,并注意重新调整对象,尤其是有意删除的安全主体。 解决方法

解决方法

  1. 标识林范围的 TombStoneLifeTime 设置的当前值。

    repadmin /showattr "CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=forest root domain,DC=TLD" /atts:tombstonelifetime  
    

    请参阅Microsoft知识库中的以下文章中的“逻辑删除生存期和删除复制”部分: 910205有关在 Windows Server Active Directory 林中徘徊对象的信息。

  2. 对于记录 8606 错误的每个目标域控制器,筛选 NTDS 复制事件 1988 上的目录服务事件日志。

  3. 收集 NTDS 复制事件 1988 中引用的每个 唯 一对象的元数据。 在引用新对象的目标域控制器上记录的每个 1988 事件中,填充下表:

    对象 DN 路径 对象 GUID 源 DC 主机分区 实时或删除? LastKnownParent IsDeleted 值

    可以通过直接从 NTDS Replication 1988 事件中的字段读取值来填充此表的第 1 到 5 列,这些字段记录在记录 1988 事件或 8606 复制状态的目标域控制器的目录服务事件日志中。

    LastKnownParent 和 IsDeleted 列的日期戳可以通过运行 repadmin /showobjmeta 和引用 NTDS 复制 1988 事件中引用的对象的对象引导来确定。 为此,请使用以下语法:

    repadmin /showobjmeta <fqdn of source DC from 1988 event> "<GUID=GUID of object cited in the 1988 event>"
    

    LastKnownParent 的日期戳标识删除对象的日期。 IsDeleted 的日期戳会告诉你对象上次删除或重新修改时间。 版本号指示上次修改是删除还是重新修改对象。 IsDeleteted 值为 1 表示初始删除。 大于 1 的奇数值表示在至少一次删除后重新调整。 例如, isDeleted 值为 2 表示已删除的对象(版本 1),然后是未删除或重新修改的对象(版本 2)。 后来 IsDeleted 的偶数值表示对象的后续重新调整或取消指定。

  4. 根据 1988 事件中引用的对象元数据选择相应的操作。

    错误 8606 / NTDS 复制事件 1988 事件最常见的原因是长期复制失败,导致域控制器无法入站复制林中所有原始删除的内容。 这会导致在一个或多个源域控制器上挥之不去对象。

    查看在“解决方法”部分的步骤 4 中创建的表中列出的对象的元数据。

    如果 1988 年事件中的对象是((位于源域控制器上)但(在目标域控制器上删除的时间超过逻辑删除生存期到期时间),请参阅“删除挥发对象”和“。管理员必须手动删除此条件中的对象。

    如果目标域控制器上的系统时间向前跳转,则已删除的对象容器可能已提前清除已删除的对象容器。 查看“检查时间跳转”部分。

    如果 1988 年事件中引用的对象存在于源域控制器的已删除对象容器中,并且其删除日期恰好在逻辑删除生存期到期的提示处,这样一来,该对象由一个或多个目标域控制器垃圾回收回收,并且将在源域控制器的下一个垃圾回收间隔(即, 挥之不去的对象是暂时的),你可以选择。 等待下一次垃圾回收执行删除对象,或在源域控制器上手动触发垃圾回收。 请参阅“手动启动垃圾回收”。引入第一个域控制器或部分属性集中的任何更改都可能导致此条件。

    如果 repadmin /showobjmeta 1988 年事件中引用的对象输出的 LastKnownParent 值为 1,则表示对象已删除,而IsDeleted 值为 2 或某些其他偶数值, IsDeleted 的日期戳位于与 LastKnownParent 的日期戳不同的墓碑生存期天数的提示处, 然后,该对象已被删除,然后在源域控制器上仍处于活动状态时取消删除/身份验证还原,但已由目标域控制器的垃圾回收回收,记录错误 8606 / 事件 1988。 请参阅 TSL 过期的提示处的重新调整

如何删除挥之不去的对象

虽然存在许多删除挥发对象的方法,但常用的主要工具有三种: repadmin.exe、Lingering Object Liquidator (LoL) 和 repldiag。

挥之不去的对象液体器 (LoL)

清理挥发对象的最简单方法是使用 LoL。 LoL 工具已开发,可帮助自动执行针对 Active Directory 林的清理过程。 该工具基于 GUI,可以扫描当前 Active Directory 林并检测和清理挥之不去的对象。 该工具可在 Microsoft下载中心使用。

Repadmin

repadmin.exe中的以下两个命令可以从目录分区中删除挥之不去的对象:

  • repadmin /removelingeringobjects
  • repadmin /rehost

该 repadmin /removelingeringobjects 命令可用于从源域控制器上的可写和只读目录分区中删除挥发对象。 语法如下所示:

repadmin /removelingeringobjects <Dest_DSA_LIST> <Source DSA GUID> <NC> [/ADVISORY_MODE]

其中: <Dest_DSA_LIST> 是包含挥之不去对象的域控制器的名称(如 NTDS 复制 1988 事件中引用的源域控制器)。

<源 DSA GUID> 是一个域控制器的名称,该域控制器承载目录分区的可写副本,其中包含Dest_DSA_LIST>中的<域控制器具有网络连接的延迟对象。 要清理的 DC(命令中指定的第一个 DC)必须能够直接连接到 DC 上的端口 389,该端口承载目录分区的可写副本(在命令中指定的第二个)。

<NC> 是目录分区的 DN 路径,怀疑包含挥发对象,例如在 1988 事件中指定的分区。

该 repadmin /rehost 命令可用于从域控制器中删除承载 域目录分区只读 副本的挥发对象域控制器。 语法如下所示:

repadmin /rehost DSA <Naming Context> <Good Source DSA Address>

其中: DSA 是承载非本地域的只读域目录分区的域控制器的名称。 例如,root.contoso.com 中的 GC 可以重新托管其只读 child.contoso.com 副本,但无法重新托管 root.contoso.com。

<命名上下文> 是驻留在全局目录中的只读域目录分区的 DN 路径。

<良好的源 DSA 地址>是承载命名上下文>可写副本的<域控制器的名称。 域控制器必须可供 DSA 计算机使用。

如果 1988 年事件中报告的挥发对象未通过 repadmin 删除,请评估源域控制器上的对象是在 USN 间隙中创建的,还是源域控制器的最新信息向量中不存在发起域控制器的对象。

Repldiag

注意

也可以使用repldiag.exe删除挥发对象。 此工具自动 repadmin /removelingeringobjects 执行该过程。 从具有重新pldiag 的林中删除挥之不去的对象与运行 repldiag /removelingeringobjects一样简单。 但是,最好在较大的环境中对该过程进行一些控制。 使用此选项 /OverRideReferenceDC 可以选择用于清理的 DC。 使用此选项 /outputrepadmincommandlinesyntax 可以查看林范围的清理使用 repadmin 的外观。

启动以下 TechNet 按需实验室,了解此错误和其他 AD 复制错误的引导式故障排除实践:

在实验室中,使用 repadmin 和 repldiag.exe 删除挥之不去的对象 排查 Active Directory 复制错误 在此实验室中,你将演练常见 Active Directory 复制错误的故障排除、分析和实现阶段。 你将结合使用 ADREPLSTATUS、 repadmin.exe 和其他工具来排查五个 DC、三域环境的问题。 实验室中遇到的 AD 复制错误包括 -2146893022、1256、1908、8453 和 8606。

每天监视 Active Directory 复制运行状况

如果错误 8606 / 事件 1988 是由域控制器未能在最后一个逻辑删除生存期天数内复制 Active Directory 更改引起的,请确保在以后每天监视 Active Directory 复制运行状况。 可以使用专用监视应用程序或查看一个廉价但有效的选项 repadmin /showrepl * /csv 来监视复制运行状况,以在电子表格应用程序中运行命令,例如 Microsoft Excel。 (请参阅Microsoft知识库文章 910205中的“方法 2:使用命令行监视复制”。

未在 50% 的逻辑删除生存期天数内未入站复制的域控制器应放在监视列表中,以接收优先管理员关注以使复制正常运行。 如果域控制器在 TSL 的 90% 内未复制,则无法成功复制的域控制器应强制降级。

目标域控制器上出现的复制失败可能是由目标域控制器、源域控制器或基础网络和 DNS 基础结构引起的。

检查时间跳跃

若要确定是否发生时间跳转,请检查事件和诊断日志(事件查看器、repadmin /showrepsnetlogon 日志、dcdiag 报告)中的日期戳,这些域控制器记录了以下错误 8606 / NTDS Replication 1988 事件:

  • 预发行操作系统的日期戳(例如,2008 年 CY 2008 中发布的 OS 的 2003 年日期戳)
  • 在林中安装操作系统之前使用的日期戳
  • 将来的日期邮票
  • 没有记录在给定日期范围内的事件

Microsoft 支持部门团队在生产域控制器上看到系统时间在过去和将来错误地跳转小时、天、周、年甚至数十年。 如果系统时间发现不准确,则应更正它,然后尝试确定时间跳跃的原因和可以执行的操作,以防止不准确的时间前进与纠正错误的时间。 可能的问题包括:

  • 林根 PDC 是否已使用外部时间源进行配置?
  • 在网络上是否提供引用联机时间源并在 DNS 中可解析?
  • Microsoft还是第三方时间服务正在运行且处于无错误状态?
  • 域控制器角色计算机是否配置为使用 NT5DS 层次结构到源时间?
  • Microsoft知识库文章884776中介绍了时间回滚保护吗?
  • 系统时钟在虚拟主机计算机上的域控制器上的 BIOS 中是否有良好的电池和准确的时间?
  • 虚拟主机和来宾计算机是否根据托管制造商的建议配置为源时间? Microsoft知识库文章 884776 文档步骤,以帮助保护域控制器免受“侦听”到无效的时间样本。 有关 MaxPosPhaseCorrection 和 MaxNegPhaseCorrection 的详细信息,请参阅 W32Time 博客文章 Windows 时间服务。

使用 repadmin /removelingeringobjects /advisorymode检查是否存在挥之不去的对象,然后根据需要将其删除。

根据需要放宽“允许使用不同和损坏的合作伙伴进行复制”。

如何手动启动垃圾回收

有多个选项可用于在特定域控制器上手动触发垃圾回收:

运行“repadmin /setattr ”“ ”“ doGarbageCollection add 1”

运行 LDIFDE /s <服务器> /i /f dogarbage.ldif,其中 dobarbage.ldif 包含文本:

dn: changetype: modify replace: DoGarbageCollection dogarbagecollection: 1 -

注意

最终的“-”字符是 .ldif 文件的必需 元素。

TSL 到期时重新调整

要使此条件存在, repadmin /showobject "<GUID=object guid for object in 1988 event>" 应报告目标域控制器上“找不到”对象,但位于源域控制器上,并且是已删除或未删除的对象。

对源域控制器上关键字段 repadmin /showobjmeta 的评审应报告以下内容为 true:LastKnownParent 的值为 1,其日期戳在过去 TSL 天处于提示处。 其日期戳指示对象的删除日期。

IsDeleted 的版本号为 2(或另一个偶数值),其中版本 1 定义了原始删除,版本 2 是还原/重新调整。 “isDeleted=2”的日期戳应晚于 LastKnownParent 的最后更改日期的 TSL 天数。

评估有关对象是否应保留活动对象或已删除的对象。 如果 LastKnownParent 的值为 1,则某些内容或某人删除了该对象。 如果这不是 意外 删除,最好从具有该对象的实时副本的任何源域控制器中删除该对象。

如果对象应存在于所有副本上,则选项如下所示:

  • 在没有对象的严格模式目标域控制器上启用松散复制。
  • 强制降级已垃圾回收对象的域控制器。
  • 删除对象,然后重新创建它。

详细信息

启动以下 TechNet 按需实验室,了解此错误和其他 AD 复制错误的引导式故障排除实践:

排查 Active Directory 复制错误 在此实验室中,你将演练常见 Active Directory 复制错误的故障排除、分析和实现阶段。 你将结合使用 ADREPLSTATUS、 repadmin.exe 和其他工具来排查五个 DC、三域环境的问题。 实验室中遇到的 AD 复制错误包括 -2146893022、1256、1908、8453 和 8606。

挥之不去对象的原因

原因 1:源域控制器将更新发送到目标域控制器上的垃圾回收已回收的对象,因为源域控制器已脱机或 TSL 复制失败的天数

该 CONTOSO.COM 域包含同一域中的两个域控制器。 逻辑删除生存期 = 60 天。 两个域控制器上都启用了严格复制。 DC2 遇到主板故障。 同时,DC1 将在未来 90 天内对过时的安全组进行原始删除。 在 90 天脱机后,DC2 会收到更换主板,启动电源,然后在所有用户帐户 上发起 DACL 或 SACL 更改,然后再 从 DC1 入站复制源自删除的知识。 DC1 记录 DC1 在 DC1 上已脱机前 30 天内清除的更新安全组的 8606 错误。

原因 2:源 DC 将更新发送到 TSL 过期时已由严格模式目标 DC 回收的 TSL 过期对象

该 CONTOSO.COM 域包含同一域中的两个域控制器。 逻辑删除生存期 = 60 天。 两个域控制器上都启用了严格复制。 DC1 和 DC2 每 24 小时复制一次。 DC1 每天发起删除。 DC1 已就地升级。 这会在配置和可写域分区中的所有对象上标记新属性。 这包括当前位于已删除对象容器中的对象。 其中一些是在60天前删除的,现在正处于墓碑过期的尖刻。 DC2 通过垃圾回收某些对象,这些对象在复制计划使用 DC2 打开前几天删除了 TSL。 记录错误 8606,直到 DC1 通过垃圾回收回收阻止对象。

对部分属性集的任何更新都可能导致临时挥之不去的对象,这些对象会在 TSL 过期时在源域控制器垃圾回收删除的对象后自行清除(例如,将第一个 W2K8 R2 域控制器添加到现有林)。

原因 3:目标域控制器上的时间跳跃过早加快目标域控制器上已删除对象的垃圾回收

该 CONTOSO.COM 域包含同一域中的两个域控制器。 逻辑删除生存期 = 60 天。 两个域控制器上都启用了严格复制。 DC1 和 DC2 每 24 小时复制一次。 DC1 每天进行删除。 DC1(但不是 DC2)使用的引用时间源将前滚到 2039 日历年。 这会导致 DC2 在 CY2039 中使用系统时间。 这会导致 DC1 过早删除当前从其已删除的对象容器中删除的对象。 同时,DC2 源自对 DC2 上的用户、计算机和组的属性的更改,但已删除,现在在 DC1 上过早回收垃圾。 DC1 将在下次对过早删除的对象进行入站复制更改时记录错误 8606。

原因 4:TSL 过期时重新调整对象

该 CONTOSO.COM 域包含同一域中的两个域控制器。 逻辑删除生存期 = 60 天。 两个域控制器上都启用了严格复制。 DC1 和 DC2 每 24 小时复制一次。 DC1 每天进行删除。 意外删除包含用户、计算机和组的 OU。 过去在 TSL 的提示处进行的系统状态备份在 DC2 上进行了身份验证还原。 备份包含位于 DC2 上的对象,但已由 DC1 上的垃圾回收删除和回收。

原因 5:触发 USN 气泡的 8606 日志记录

假设你在 USN 气泡中创建一个对象,这样它就不会进行出站复制,因为目标域控制器“认为”它具有该对象,因为气泡。 现在,在气泡关闭后,在更改开始再次复制之后,将为源域控制器上的该对象创建一个更改,并显示为目标域控制器的一个挥之不去的对象。 目标控制器记录事件 8606。

对发起删除的端到端复制知识的要求

Active Directory 域控制器支持多主数据库复制,其中任何域控制器(包含可写分区)都可以产生对象或属性(值)的创建、更改或删除。 对象/属性删除的知识由原始域控制器和任何已传入复制的对 TSL 天数的发起删除知识的域控制器持久保存。 (请参阅Microsoft知识库文章 216996 和 910205)

Active Directory 需要从所有分区持有者进行端到端复制,以便将所有目录分区的所有原始删除都复制到所有分区持有者。 在滚动 TSL 天数中无法入站复制目录分区会导致对象挥之不去。 挥之不去的对象是至少一个域控制器有意删除的对象,但目标域控制器上错误地存在,这些域控制器没有入站复制所有唯一删除的暂时性知识。

数据收集

如果需要Microsoft支持方面的帮助,建议按照使用 TSS 收集 Active Directory 复制问题的信息中所述的步骤收集信息。

资料来源与适用范围

资料来源
微软官方中文故障文档
适用范围
适用于技术支持代理和 IT 专业人员。 如果你正在寻找解决问题的帮助, 请询问Microsoft社区(https://answers.microsoft.com/en-us)。
内容语言
中文;命令、路径和错误标识保留技术原文
本地收录日期
2026-10-26
授权说明
CC BY 4.0

正文与所需资源由本站本地存储。查看来源及更新记录 ↗

请按适用版本和实际日志确认原因;本站没有对每一种系统或设备逐项执行文中的操作。