AD垃圾回收与Tombstone寿命密切相关但不同:前者每12小时清理超期墓碑对象、日志及重组数据库,后者(默认180天)决定已删除对象存留上限,影响恢复窗口与复制一致性;启用回收站后,msDS-DeletedObjectLifetime接管可恢复时限,但tombstoneLifetime仍是最终清除阈值。
ad垃圾回收和tombstone寿命不是一回事,但紧密关联:前者是定期清理已删除对象的后台进程,后者决定这些对象在被彻底清除前能“躺”多久。搞混这两者,容易误判恢复窗口或引发同步异常。
垃圾回收(Garbage Collection)怎么运作
域控制器上自动运行的内部维护任务,每12小时执行一次(默认),主要做三件事:
- 扫描并移除已过期的墓碑对象(即 tombstoneLifetime 已超时的 deleted object)
- 清理不再需要的事务日志文件(如 edb.log)
- 触发在线数据库重组(online defragmentation),释放空间但不缩减 NTDS.dit 文件体积
注意:垃圾回收不等于“立即删掉刚删的对象”,它只处理那些已变成墓碑、且生存期已满的对象。它不会影响还在 tombstoneLifetime 内的对象——这些对象仍可被复制、查询(需加 -IncludeDeletedObjects 参数),也仍是 AD 回收站恢复的基础。
TombstoneLifetime 是什么,为什么关键
这是森林级配置属性(tombstoneLifetime),定义一个对象从逻辑删除(isDeleted=True)到被垃圾回收彻底抹除的时间上限。默认值因系统版本而异:
- Windows Server 2000/2003(未打SP1):60天
- Windows Server 2003 SP1 及之后(含 2008 R2、2012+):180天
- 可手动设为最小2天(但不推荐),最大无硬限制;生产环境常见设为180–365天
该值直接影响两大场景:AD域控制器灾难恢复窗口(系统状态备份必须新于 tombstoneLifetime 才能还原成功),以及跨域控制器复制一致性(确保所有DC有足够时间收到删除通知)。
回收站启用后,tombstoneLifetime 还管用吗
仍然管用,但角色变了。启用 AD 回收站(Recycle Bin Feature)后,删除对象不再仅靠 tombstone 存活,而是进入“可恢复状态”,受另一个独立属性控制:msDS-DeletedObjectLifetime。
- 该值默认与 tombstoneLifetime 相同(如180天),但可单独修改
- 只要对象在 msDS-DeletedObjectLifetime 期限内,就能用 Restore-ADObject 完整还原(含组成员关系、密码哈希等)
- 一旦超过 msDS-DeletedObjectLifetime,对象才退化为普通墓碑;再超 tombstoneLifetime,就被垃圾回收永久清除
换句话说:回收站延长了“可精准恢复”的时间,但 tombstoneLifetime 仍是最终兜底时限——它决定了对象还能不能留在数据库里供查询或复制。
怎么查和改这两个值
两个属性都存于配置分区的同一位置:
CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=xxx,DC=com推荐用 PowerShell 修改(需企业管理员权限):
- 查当前值:
Get-ADObject "CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=contoso,DC=com" -Partition "CN=Configuration,DC=contoso,DC=com" -Properties tombstoneLifetime,msDS-DeletedObjectLifetime | fl tombstoneLifetime,msDS-DeletedObjectLifetime - 改 tombstoneLifetime(设为365天):
Set-ADObject "CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=contoso,DC=com" -Partition "CN=Configuration,DC=contoso,DC=com" -Replace @{tombstoneLifetime=365} - 改 msDS-DeletedObjectLifetime(同样365天):
Set-ADObject "CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=contoso,DC=com" -Partition "CN=Configuration,DC=contoso,DC=com" -Replace @{"msDS-DeletedObjectLifetime"=365}
改完需等待复制完成(通常几分钟到几小时),无需重启服务。注意:修改 tombstoneLifetime 后,旧备份的有效期也会随之更新,建议同步更新备份策略。

















