Windows Server 2025 / 启用 AD 回收站并还原测试对象
Active Directory(AD,域的目录服务)回收站可以恢复启用后删除、且仍符合条件的对象,并保留属性与组成员身份。启用操作作用于整个林,即共享目录架构与配置的域集合,之后不能禁用。这项功能不能替代所有恢复场景所需的备份。
检查范围与恢复条件
可恢复的是用户、组和组织单位(OU)等目录对象,而不是文件服务器文档、用于分发域策略与脚本的整个 SYSVOL 共享,或操作系统。AD 回收站指南说明了适用范围。启用之前已删除的对象,不会因为后来开启功能而重新变得可恢复。
仅使用隔离实验林 ad.example.test,先确认域控制器 DC1、DC2 健康、备份可用,并使用已经获准执行林级变更的账户。技术进阶文档为此操作列出 Enterprise Admins;本机管理员权限不等于林级权限。需要 Active Directory 管理中心(ADAC)和 ActiveDirectory PowerShell 模块,可在控制器或安装了远程服务器管理工具(RSAT)的管理计算机上使用。启用指南要求林和域功能级别至少为 Windows Server 2008 R2;应检查真实级别,不能仅因安装了 Windows Server 2025 就推断已满足。以下先查询状态,不执行启用:
Get-ADForest | Select-Object RootDomain,ForestMode
Get-ADOptionalFeature -Filter "Name -eq 'Recycle Bin Feature'" | Select-Object Name,EnabledScopes
repadmin /replsummary
RootDomain 应指向实验林,ForestMode 显示林功能级别;还应通过 Get-ADDomain 检查 DomainMode,因为第一条查询所选列没有域功能级别。需要诊断启用问题时,可用 Get-ADForest 查看 DomainNamingMaster,识别当前域命名主机角色持有者,不要默认一定是 DC1。EnabledScopes 为空,表示本次查询未显示已启用范围;若已含林范围,则不要再次激活。Get-ADOptionalFeature 参考文档说明了如何用 -Server 指定控制器。
在管理中心启用功能
- 在 DC1 或已安装管理工具的计算机运行 dsac.exe,核对管理身份及连接的实验林。
- 在导航中选择正确的 ad.example.test 域。如果未列出,使用管理菜单添加导航节点,选择实验域,不要操作其他林。
- 在任务窗格选择启用回收站,阅读确认内容:这是不可逆的林级变更,不是临时会话设置。
- 只对预期实验环境确认,并按提示使用 F5 刷新 ADAC。已经启用时,不要重复操作。
- 检查两台控制器的启用状态与复制健康。DC1、DC2 均收到配置前,不创建测试对象。
若已经启用,应跳过激活操作。ADAC 技术指南说明了条件及配置复制要求。分别检查控制器时,在 Get-ADOptionalFeature 命令的 Select-Object 管道之前添加 -Server DC1.ad.example.test,再用 DC2.ad.example.test 重复查询。两者都应显示已启用的林范围。一次查询成功或刷新窗口,不能证明配置已经收敛。如果 repadmin 有错误或两者结果不同,应先解决原因,再创建和删除测试对象。不要为修复灰色菜单就自动转移目录角色。
创建专用恢复测试对象
启用并完成复制后,使用用户、组与组织单位练习中 Lab 下的 LabUsers OU,以及 GG_LabUsers 组。确认 recycle.lab 不存在,包括活动用户和以前实验遗留的已删除对象。名称被占用时,不要直接复用或删除找到的对象,应先识别用途。仅新建一个禁用的恢复测试账户。在管理 PowerShell 中逐行执行;创建或加入组失败时停止,不要误用旧对象继续:
New-ADUser -Name 'Recycle Lab User' -SamAccountName 'recycle.lab' -Path 'OU=LabUsers,OU=Lab,DC=ad,DC=example,DC=test' -Description 'Recycle bin practice only' -Enabled $false
Add-ADGroupMember -Identity 'GG_LabUsers' -Members 'recycle.lab'
$recycleTest = Get-ADUser -Identity 'recycle.lab' -Properties MemberOf
$recycleTest | Select-Object Name,ObjectGUID,SID,DistinguishedName,MemberOf
记录全局唯一标识符(Globally Unique Identifier,GUID)、安全标识符(Security Identifier,SID)、表示目录位置的 DistinguishedName 和 MemberOf。输出应准确对应 Recycle Lab User、recycle.lab 与实验 OU,并包含 GG_LabUsers 直接成员关系。保持账户禁用;本练习不需要设置密码或以该用户登录。重建同名用户不会保留原 GUID 与 SID。保留当前控制台和记录;如果 $recycleTest 丢失,不要临时用宽泛搜索寻找删除目标。
仅删除并还原已识别的对象
删除前,确认 $recycleTest 只包含刚创建的一个对象,且 ObjectGUID 与记录相同。逐行执行下面命令,在 Remove-ADUser 的确认提示中核对 Recycle Lab User,只批准这个测试对象。删除后,查询应返回相同 GUID、isDeleted=True 及预期 lastKnownParent。删除或查询失败时,应在 Restore-ADObject 前停止;不要将通配符搜索结果传给删除命令:
Remove-ADUser -Identity $recycleTest.ObjectGUID -Confirm
Get-ADObject -Identity $recycleTest.ObjectGUID -IncludeDeletedObjects -Properties isDeleted,lastKnownParent | Select-Object Name,ObjectGUID,isDeleted,lastKnownParent
Restore-ADObject -Identity $recycleTest.ObjectGUID
作为命令恢复的替代方法,可在 ADAC 的“已删除对象”中仅选中记录 GUID 对应对象,再选择“还原”。Restore-ADObject 参考文档说明,未指定 TargetPath 时使用 lastKnownParent。如果父容器已不存在,应先还原父容器,或选择“还原到”并指定合适的现有 OU。只恢复一个 OU,不会自动恢复全部后代。改变位置前先检查名称冲突与权限,不要未经状态检查就对同一对象重复执行两种恢复方法。
比较还原后的身份
Get-ADUser -Identity 'recycle.lab' -Properties MemberOf,Enabled | Select-Object Name,ObjectGUID,SID,Enabled,DistinguishedName,MemberOf
Get-ADGroupMember -Identity 'GG_LabUsers'
逐项与记录比较:GUID、SID 相同,位置符合预期,并恢复为 GG_LabUsers 成员。Enabled 应仍为 False。Get-ADGroupMember 显示直接成员;确认存在 recycle.lab,但不能把组列表视为文件访问测试。分别验证 DC1 与 DC2 时,在各 cmdlet 的 Select-Object 管道前使用 -Server。等待复制健康并比较两端对象;仅查询默认控制器,不能证明另一端已经收到恢复结果。
保留期限有限,取决于林的实际 msDS-deletedObjectLifetime、tombstoneLifetime 等设置。不要假设所有环境都有同一期限,也不要把修改这些值当作恢复失败的快速修复。已经转入 recycled 状态的对象,不能像回收站中仍可恢复的已删除对象那样还原。无法恢复时,应先调查适用备份和恢复流程,再决定是否创建身份不同的同名账户。记录结果后,只能清理已识别的测试账户,不要删除其 OU 或 GG_LabUsers。禁用回收站并不是可用的回退方式。




