AD域控制器系统分区占用高需分层清理:先检查NTDS.DIT状态并离线碎片整理;再清空DFSR staging缓存及旧DNS记录;最后执行元数据清理移除已下线DC残留对象。
ad 域控制器系统分区占用高,通常不是普通文件堆积导致的,而是 ad 数据库(ntds.dit)、日志(edb.log、res1.log 等)、sysvol 复制缓存、dns 区域文件或残留元数据长期积累所致。单纯清空回收站、卸载软件或运行磁盘清理工具效果有限。真正有效的深度清理,必须结合 ad 架构特性,分层定位、安全操作。
确认 NTDS 数据库与日志是否异常膨胀
NTDS.DIT 是 AD 的核心数据库,默认位于 %SystemRoot%\NTDS\;其配套的日志文件(如 EDB.LOG、E00*.log)和检查点文件(EDB.CHK)常被忽略,但可能占数十 GB。尤其当域控制器曾经历复制失败、USN 回滚或强制关机后,日志无法正常截断,会持续增长。
- 用 eseutil /mh ntds.dit 检查数据库状态,确认是否为“Clean Shutdown”;若显示“Dirty Shutdown”,需先修复再压缩
- 运行 eseutil /d ntds.dit /tC:\temp\(指定临时空间)执行离线碎片整理——此操作需停用 AD DS 服务(net stop nt ds),并确保有足够空闲空间(至少等于当前 NTDS.DIT 大小)
- 压缩后,日志目录中残留的旧日志文件(如 E00*.log、RES*.log)可安全删除,前提是数据库已成功整合且复制正常
清理 SYSVOL 和 DFSR 复制缓存残留
Windows Server 2012 R2 及之后默认使用 DFSR 同步 SYSVOL。DFSR 维护一个隐藏的 %SystemRoot%\SYSVOL\domain\staging\ 目录用于暂存同步文件,以及 %SystemRoot%\System Volume Information\DFSR\ 中的版本数据库。长期运行后,staging 目录可能堆积大量已处理但未清理的临时文件。
- 执行 dfsradmin Membership List /RGName:"Domain System Volume" /MemName:%COMPUTERNAME% 确认本机在 SYSVOL 复制组中的状态
- 若状态为 Normal,可手动清空 staging\*.*(保留目录结构),或运行 dfsrdiag PollReplication /Member:%COMPUTERNAME% 触发主动同步后观察自动清理
- 检查 System Volume Information\DFSR\ 下的 Database 子目录大小,若超 2GB,说明版本历史过多,可通过 dfsradmin Version Cleanup /RGName:"Domain System Volume" /Age:30 清理 30 天前的旧版本
清除 DNS 区域碎片与老化记录
AD 集成 DNS 区域(尤其是 _msdcs.域名、_sites、_tcp 等)会随 DC 上下线动态生成 SRV 记录。若曾多次强制移除 DC 但未清理 DNS,这些区域中会残留大量已失效的 A、SRV、CNAME 记录,不仅占用空间,还拖慢 DNS 查询响应。
- 在 DNS 管理器中,右键对应正向查找区域 → “属性” → “老化/清理” → 勾选“为此区域启用自动清理”,设置“无刷新间隔”7天、“刷新间隔”7天
- 对 _msdcs.域名 区域单独执行:打开该区域 → 展开 _tcp → 手动检查每个子文件夹(如 kerberos、ldap)下的 SRV 记录,删除指向已下线 DC 的条目
- 运行 dnscmd /ageallrecords 域名 0 强制触发所有记录老化扫描(需管理员权限),随后等待 24 小时让 GC 自动清除过期项
排查并移除已降级但未清理的元数据残留
最隐蔽的空间占用来源,是已被强制卸载(dcpromo /forceremoval)却未执行元数据清理的 DC 对象。这类对象虽不参与复制,但仍保留在 Configuration 分区中,其 NTDS Settings 对象持续占用 AD 数据库存储空间,并可能关联残留的 DNS、站点、拓扑连接等附属数据。
- 用 repadmin /showobjmeta * "CN=FailedDC,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=xxx,DC=xxx" 查看该对象是否存在且状态非 Deleted
- 若存在,必须在健康 DC 上用 ntdsutil 执行标准元数据清理流程(metadata cleanup → connect to server → select site/domain/server → remove selected server)
- 清理后,再检查 Active Directory 用户和计算机 → Domain Controllers OU 和 AD 站点和服务 → Servers 下对应节点 是否彻底消失

















