■ 中国航天科技集团有限公司第一研究院 吴步祺 王林强
编者按:活动目录(Active Directory,AD)是企业环境中较常采用的用于用户和计算机管理的网络基础服务。由于域控制器(Domain Controller,DC)意外离线等多种原因活动目录中可能存在延迟对象(Lingering Object)。本文研究了延迟对象产生的原因和相应的处理方法。
活动目录是微软开发的用于Windows域网络的目录服务。域服 务(Domain Service,DS)和其他相关服务一起组成了运行Windows企业网络的基础,可以用于为用户或计算机提供身份验证和为用户或计算机提供资源的访问机制。
在企业环境中一般部署有多台域控制器。域控制器运行包括域命名(Domain Naming)、 架 构(Schema)、相 对 标 识 符(Relative Identifier,RID)、 结 构(Infrastructure) 和 PDC仿真器(PDC Emulator)等灵活单主机操作(Flexible Single Master Operation,FSMO)角色。
活动目录的复制指当活动目录中的对象变更时该变更的传输过程。活动目录的复制主要有以下功能:
1.对数据存储进行分割:域控制器只存储其所在域的域命名上下文,应用程序目录分区和全局目录默认不会复制到林中的每台域控制器;
2.自动生成高效强壮的复制拓扑:活动目录自动配置双向复制拓扑;
3.属性级别的复制:变更对象属性时,仅复制该属性和描述该属性的元数据;
4.内部复制和外部复制:可以分别控制站点内和站点间的复制;
5.冲突检测和管理:具备解决复制窗口期发生的属性变更冲突的算法。
当域控制器对活动目录中的对象进行包括更新、删除等变更操作时,该变更会通过复制传输到其他域控制器上。对于删除对象操作,活动目录会以墓碑对象的形式将该删除操作复制到其他域控制器上。
1.严格复制一致性参数的判定
严格复制一致性(Strict Replication Consistency)参数的默认选项为启用。严格复制一致性参数负责对需要复制的源域控 制 器(Source Domain Controller)的内容进行判断。如果该参数设置为启用,当存在延迟对象时,目标域控制器(Destination Domain Controller) 的复制操作将失败;如果该参数设置为禁用,已删除的对象将复制到目标域控制器上。该参数可以通过注册表HLMSYSTEMCurrentControlSetServicesNTDSParameters进行设置。
2.延迟对象的产生
延迟对象产生的原因主要有如下几点:
①域控制器长期离线
如果域控制器长期处于离线状态,当源域控制器将其作为目标域控制器进行复制将失败。如果该域控制器离线时间超过墓碑时间(Tombstone Lifetime,TSL),将导致延迟对象的产生。,如图1所示。
例如有2台域控制器DC01和DC02。创建用户Sam,随后将DC02下线并删除用户Sam。在删除用户Sam后的超过墓碑时间的时间点将DC02上线。此时,由于墓碑对象相关内容已从活动目录中彻底删除,活动目录中将产生延迟对象。
②时间跳跃
如果进行变更的域控制器的时间发生跳跃,当其删除的对象完全删除时,其他域控制器还未复制到该删除状态,将将导致延迟对象的产生。
3.延迟对象的发现
图1 域控制器离线
可以使用Windows操作系统的复制管理命令中的显示复制状态命令选项显示当前的复制状态(repadmin /showrepl), 如果该命令的输出中含有尝试失败的信息,可继续使用复制管理命令的发现延迟对象选项(repadmin /removelingeringobjects
4.延迟对象的删除
当在目标域控制器中发现延迟对象时,需要对其及时进行处理。延迟对象的删除可以使用复制管理命令的删除延迟对象命令(repadmin /removelingeringobjects
完成延迟对象的删除后,可以使用复制管理命令的复制选项将目录分区直接从源域控制器复制到目标域控制器(repadmin /replicate
5.延迟对象的预防
应当及时监控活动目录复制的状态。目录复制失败时应该在墓碑时间内对该故障及时处理。建议启用严格复制一致性参数。对于可能发生的时间跳跃,应对域控制器配置外部时间源。
本文研究了延迟对象的相关内容。对于活动目录中存在的延迟对象应使用复制管理命令及时进行处理。为防止延迟对象产生,需要对外部时间源等进行配置。