有关Windows Server Active Directory林中挥之不去的对象的信息

本文提供有关在Windows Server Active Directory林中挥之不去对象的一些信息。

适用于: Windows Server 2012 R2
原始 KB 编号: 910205

摘要

本文包含有关在 Active Directory 林中挥之不去对象的信息。 具体而言,本文介绍了指示存在挥之不去对象的事件、挥之不去对象的原因,以及可用于删除挥之不去对象的方法。

介绍

如果域控制器的复制时间间隔不大于 TSL) 的逻辑删除生存期 (,则可能会出现延迟对象。 然后,域控制器重新连接到复制拓扑。 域控制器脱机时从 Active Directory 目录服务中删除的对象可以保留为保留对象在域控制器上。 本文包含有关事件的详细信息,这些事件指示存在挥之不去的对象、挥之不去对象的原因,以及可用于删除挥之不去对象的方法。

更多信息

逻辑删除生存期和删除复制

删除对象时,Active Directory 会将删除作为逻辑删除对象进行复制。 逻辑删除对象由已删除对象的一小部分属性组成。 通过入站复制此对象,域和林中的其他域控制器接收有关删除的信息。 该逻辑删除在 Active Directory 中保留指定时间段。 此指定时间段称为 TSL。 在 TSL 的末尾,将永久删除逻辑删除对象。

TSL 的默认值取决于在林中安装的第一个域控制器上运行的操作系统版本。 下表指示不同 Windows 操作系统的默认 TSL 值。

林根目录中的第一个域控制器 默认逻辑删除生存期
Windows 2000 60 天
Windows Server 2003 60 天
Windows Server 2003 Service Pack 1 180 天

注意

将域控制器升级到具有 Service Pack 1 的 Windows Server 2003 (SP1) 时,现有 TSL 值不会更改。 在手动更改现有 TSL 值之前,会一直保留它。

永久删除逻辑删除后,无法再复制删除对象。 TSL 定义林中的域控制器保留有关已删除对象的信息的时长。 TSL 还定义了原始域控制器的所有直接复制伙伴和可传递复制伙伴必须接收唯一删除的时间。

对象挥之不去的方式

当域控制器断开连接的时间长于 TSL 时,从所有其他域控制器上的 Active Directory 中删除的一个或多个对象可能保留在断开连接的域控制器上。 此类对象称为挥之不去的对象。 由于域控制器在逻辑删除处于活动状态期间处于脱机状态,因此域控制器永远不会收到逻辑删除的复制。

当此域控制器重新连接到复制拓扑时,它将充当具有其目标伙伴没有的对象的源复制伙伴。

更新源域控制器上的 对象时,会发生复制问题。 在这种情况下,当目标合作伙伴尝试入站复制更新时,目标域控制器会采用以下两种方式之一进行响应:

  • 如果目标域控制器启用了严格复制一致性,则控制器会识别它无法更新对象。 控制器在本地停止从源域控制器进行目录分区的入站复制。

  • 如果目标域控制器禁用了严格复制一致性,则控制器请求更新对象的完整副本 (replica) 。 在这种情况下,对象将重新引入到 目录中。

长时间断开连接的原因

以下情况可能会导致长时间断开连接:

  • 域控制器与网络断开连接,并置于存储中。

  • 将预先暂存的域控制器运送到其远程位置所需的时间比 TSL 长。

  • 广域网 (WAN) 连接长时间不可用。 例如,游轮上的域控制器可能无法复制,因为该船在海上的时间比 TSL 长。

  • 报告的事件是误报的,因为管理员缩短了 TSL 以强制垃圾回收已删除的对象。

  • 报告的事件是误报的,因为源或目标域控制器上的系统时钟错误地提前或回滚。 系统重启后,时钟偏差最常见。 出现时钟偏差的原因如下:

    • 系统时钟电池或主板出现问题。

    • 计算机的时间源配置不正确。 它包括使用 Windows 时间服务 (W32Time) 、使用第三方时间服务器或使用网络路由器配置的时间源服务器。

    • 管理员提前或回滚系统时钟以延长系统状态备份的使用寿命或加速已删除对象的垃圾回收。 确保系统时钟反映实际时间。 此外,请确保事件日志不包含来自未来或过去的无效事件。

指示域控制器具有挥之不去的对象

当满足以下条件时,过时的域控制器可以存储挥之不去的对象,而不会产生任何明显的影响:

  • 管理员、应用程序或服务不会更新挥之不去的对象。
  • 管理员、应用程序或服务不会尝试创建在域中具有相同名称的对象。
  • 管理员、应用程序或服务不会尝试使用林中的 UPN) (相同的用户主体名称来创建对象。

即使没有明显的效果,存在挥之不去的对象也可能导致问题。 如果挥之不去的对象是安全主体,则最有可能发生这些问题。

指示林中可能存在挥之不去对象的事件

事件 ID 常规说明
1862 本地域控制器最近未收到来自多个域控制器 (站点间) 的复制信息。
1863 本地域控制器最近未收到来自多个域控制器 (站点间) 的复制信息。
1864 本地域控制器最近未收到来自多个域控制器的复制信息 (摘要) 。
1311 知识一致性检查器 (KCC) 无法生成跨越树拓扑。
2042 自上次使用命名源服务器复制此服务器以来,时间太长了。

指示林中存在挥之对象的事件

事件 ID 常规说明
1084 服务器上没有此类对象。
1388 此目标系统收到了本应在本地存在但尚未存在的对象的更新。
1311 另一个域控制器复制了此域控制器上不存在的对象。

注意

记录事件 ID 1988 的域控制器上不存在挥之不去的对象。 源域控制器包含 linging 对象。

指示林中存在挥之不去对象的 Repadmin 错误

事件 ID 常规说明
8240 服务器上没有此类对象。
8606 提供的属性不足,无法创建对象。

林中存在挥之对象的其他指示

  • 已删除的用户或组帐户保留在运行Microsoft Exchange Server的服务器上的全局地址列表中 (GAL) 。 因此,尽管帐户名称显示在 GAL 中,但在用户尝试发送电子邮件时会发生错误。

  • 对于在林中应唯一的对象,对象的多个副本显示在对象选取器或 GAL 中。 有时会看到已更改名称的重复对象。 这些重复对象会导致目录搜索混淆。 例如,如果无法解析两个对象的相对可分辨名称,则冲突解决会将 CNF:GUID 追加到名称中。 在此示例中, * 表示保留字符, CNF 是指示冲突解决的常量, GUID 表示 objectGUID 属性值。

  • 电子邮件不会传递给 Active Directory 帐户显示为当前帐户的用户。 重新连接过时的域控制器或全局编录服务器后,用户对象的两个实例将显示在全局目录中。 由于这两个对象具有相同的电子邮件地址,因此无法传递电子邮件。

  • 不再存在的通用组将继续显示在用户的访问令牌中。 尽管该组不再存在,但如果用户帐户的安全令牌中仍有该组,则用户可能有权访问你打算对该用户不可用的资源。

  • 无法创建新对象或 Exchange 邮箱。 但在 Active Directory 中看不到 对象。 错误消息报告对象已存在。

  • 使用现有对象的属性的搜索可能会错误地找到同名对象的多个副本。 已从域中删除一个对象。 但该对象仍保留在隔离的全局编录服务器中。

如果尝试更新驻留在可写目录分区中的挥之不去的对象,则会在目标域控制器上记录事件。 但是,如果一个挥之不去对象的唯一版本位于全局编录服务器上的只读目录分区中,则无法更新该对象。 因此,不会触发此类事件。

从林中删除挥之不去的对象

基于 Windows 2000 的林

有关如何删除基于 Windows 2000 的域中的挥之不去对象的详细信息,请单击以下序列号以查看 Microsoft 知识库中的文章:

314282 将过期的全局编录服务器重新联机后,可能会保留一314282挥发对象

基于 Windows Server 2003 的林

有关详细信息,请单击以下文章编号以查看 Microsoft 知识库中的文章:

892777 Windows Server 2003 Service Pack 1 支持工具

防止挥之不去的对象

以下是可用于防止挥之不去对象的方法。

方法 1:启用严格复制一致性注册表项

可以启用严格复制一致性注册表项,以便隔离可疑对象。 然后,管理部门可以在这些对象传播到整个林之前将其删除。

如果环境中存在可写的延迟对象,并且尝试更新该对象,则严格复制一致性注册表项中的值将确定复制是继续进行还是已停止。 严格复制一致性注册表项位于以下注册表子项中: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters
此项的数据类型为REG_DWORD。 如果将值设置为 1,则会启用该条目。 从源中停止指定目录分区的入站复制在目标上。 如果将值设置为 0,则会禁用该条目。 目标从源域控制器请求完整的对象。 在目录中,挥之不去的对象作为新对象恢复。

严格复制一致性注册表项的默认值由在林中安装域控制器的条件确定。

注意

提高域或林的功能级别不会更改任何域控制器上的复制一致性设置。

默认情况下,如果满足以下条件,则林中安装的域控制器上的严格复制一致性注册表项的值为 1 (启用) :

  • Windows Server 2003 版本的 Winnt32.exe 用于将 Windows NT 4.0 主域控制器 (PDC) 升级到 Windows Server 2003。 此计算机创建新林的林根域。
  • Active Directory 安装在运行 Windows Server 2003 的服务器上。 此计算机创建新林的林根域。

默认情况下,如果满足以下条件,则域控制器上的严格复制一致性注册表项的值为 0 (禁用) :

  • 基于 Windows 2000 的域控制器已升级到 Windows Server 2003。
  • Active Directory 安装在基于 Windows 2000 的林中基于 Windows Server 2003 的成员服务器上。

如果你有一个运行 SP1 的 Windows Server 2003 的域控制器,则无需修改注册表来设置严格复制一致性注册表项的值。 相反,可以使用 Repadmin.exe 工具为林中的一个域控制器或林中的所有域控制器设置此值。

有关如何使用 Repadmin.exe 设置严格复制一致性的详细信息,请访问以下 Microsoft 网站:
https://technet.microsoft.com/library/cc780362(WS.10).aspx

方法 2:使用命令行命令监视复制

若要使用 repadmin /showrepl 命令监视复制,请执行以下步骤:

  1. 单击“开始”,单击“运行”,键入 cmd,然后单击“确定”

  2. 键入“repadmin /showrepl * /csv >showrepl.csv”,然后按 ENTER。

  3. 在 Microsoft Excel 中,打开 Showrepl.csv 文件。

  4. 选择 “A + RPC ”列和 “SMTP ”列。

  5. 在“编辑”菜单上,单击“删除”

  6. 选择列标题正下方的行。

  7. Windows 菜单上,单击“ 冻结窗格”。

  8. 选择完整的电子表格。

  9. 在“ 数据 ”菜单上,指向 “筛选器”,然后单击“ 自动筛选”。

  10. 在“ 上次成功” 列的标题上,单击向下箭头,然后单击“ 升序排序”。

  11. src DC 列的标题上,单击向下箭头,然后单击“ 自定义”。

  12. 在“ 自定义自动筛选 ”对话框中,单击“ 不包含”。

  13. 在 右侧的框中 ,键入 del。

    注意

    此步骤可防止已删除的域控制器显示在结果中。

  14. 在“ 上次失败” 列的标题上,单击向下箭头,然后单击“ 自定义”。

  15. “自定义自动筛选 ”对话框中,单击 不等于

  16. 在“ 不等于”右侧的框中,键入 0。

  17. 解决显示的复制失败问题。

方法 3:删除域控制器

可以在 TSL 过期之前从林中删除失败的域控制器。

方法 4:增加 TSL

Windows 2000 Server

使用 Adsiedit 工具将 TSL 增加到 180 天。 要执行此操作,请执行以下步骤:

  1. 在 Adsiedit 工具中,依次展开“配置域”“控制器名称”、“CN=配置”、“DC=ForestRootDomain”、“CN=服务”、“CN=Windows NT”、右键单击“CN=目录服务”,然后单击“属性”。
  2. 单击“ 属性 ”选项卡。
  3. “选择要查看的属性” 列表中,单击“ 可选”。
  4. “选择要查看的属性” 列表中,单击“ TombstoneLifetime”。
  5. “编辑属性 ”框中,键入 180,单击“ 设置”,然后单击“ 确定”。 Windows Server 2003

使用 Adsiedit 工具将 TSL 增加到 180 天。 要执行此操作,请执行以下步骤:

  1. 在 Adsiedit 工具中,依次展开“配置域”“控制器名称”、“CN=配置”、“DC=ForestRootDomain”、“CN=服务”、“CN=Windows NT”、右键单击“CN=目录服务”,然后单击“属性”。
  2. 单击“属性编辑器”选项卡。
  3. “属性 ”列表中,单击“ TombstoneLifetime”,然后单击“ 编辑”。
  4. 在“ ”框中,键入 180,然后单击“ 确定”。

数据收集

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