Active Directory 工具学习笔记(10.13):AdRestore------把误删"拉回现场"的最快姿势
- [Active Directory 工具学习笔记(10.13):AdRestore------把误删"拉回现场"的最快姿势](#Active Directory 工具学习笔记(10.13):AdRestore——把误删“拉回现场”的最快姿势)
-
- [一、AdRestore 是什么?适用在哪些现场](#一、AdRestore 是什么?适用在哪些现场)
- 二、必要前提与权限清单
- 三、核心语法与常用参数
- [四、推荐流程:**隔离恢复 → 四件套补缀 → 验证后归位**](#四、推荐流程:隔离恢复 → 四件套补缀 → 验证后归位)
- [五、与 PowerShell / AD 回收站的"配合拳"](#五、与 PowerShell / AD 回收站的“配合拳”)
- 六、典型场景剧本
-
- 1)单用户被删
- [2)OU 下批量用户被删](#2)OU 下批量用户被删)
- 3)服务账号被删导致应用认证失败
- 4)计算机对象被删,域信任破损
- 七、风险与坑位清单
- 八、操作留痕与合规
- [九、口袋速查卡(Cheat Sheet)](#九、口袋速查卡(Cheat Sheet))
- 结语
Active Directory 工具学习笔记(10.13):AdRestore------把误删"拉回现场"的最快姿势
目标:把 误删用户/组/计算机/OU 在最短时间内拉回。本文聚焦 Sysinternals 的 AdRestore ,并补齐与 AD 回收站、PowerShell 的配合要点与风险兜底。
一、AdRestore 是什么?适用在哪些现场
AdRestore.exe 是 Sysinternals 的轻量命令行工具,用于从 "已删除对象(Deleted Objects)" 容器枚举并恢复对象(常见:用户、组、计算机、OU)。
它不依赖图形界面,适合远程壳/应急场景:拿到 DC 上的管理员命令行即可操作。
你何时选它?
- 误删对象,且你希望不进 GUI 、快速批量点名恢复。
- 你还没(或暂时不能)启用「AD 回收站图形管理」,但被删时间仍在 Tombstone/DeletedObject 生命周期内。
- 你要先恢复到隔离 OU,再补权限/组成员,最后移回业务 OU。
一句话定位:它是"从墓地拉回尸体"的脚手架;恢复后要做"缝合"------启用账号、回填组、重置密码/密钥、再移动 OU。
二、必要前提与权限清单
- 权限:企业/域管理员,或被委派了对 "Deleted Objects" 容器的恢复权限。
- 时间 :对象仍处于可恢复期(取决于
msDS-DeletedObjectLifetime,默认与 Tombstone 相同,传统 60/180 天,视林功能级别与环境策略)。 - 位点 :在 域控 上执行,或使用带有 RSAT/目录工具的安全管理工作站(确保对 DC LDAP/GC 通路正常)。
- 合规 :批量恢复前走变更/审批,恢复操作要留痕(日志/命令输出保存)。
三、核心语法与常用参数
在 DC 上以管理员打开命令行:
cmd
AdRestore.exe :: 列举"已删除对象"容器里的对象(交互式选择恢复)
AdRestore.exe /server:dc1 :: 指定域控
AdRestore.exe /filter:"(sAMAccountName=bob)" :: 过滤查询
AdRestore.exe /filter:"(&(objectClass=user)(cn=*Sales*))"
AdRestore.exe /restore :: 直接执行恢复(默认到原 OU)
AdRestore.exe /restore /quiet :: 静默恢复(配合批处理)
实战模板
- 恢复单用户(交互确认):
cmd
AdRestore.exe /filter:"(sAMAccountName=bob)" /restore
- 批量恢复某 OU 下被删用户(静默):
cmd
AdRestore.exe /server:dc1 ^
/filter:"(&(objectClass=user)(lastKnownParent=OU=Sales,DC=corp,DC=local))" ^
/restore /quiet
小贴士:
lastKnownParent非常好用------它记录对象被删前所在的 OU,便于批量筛选。
四、推荐流程:隔离恢复 → 四件套补缀 → 验证后归位
AdRestore 默认恢复回原 OU。为了防再度被策略/脚本改写,建议这样做:
- 先建隔离 OU :
OU=Recovery,DC=corp,DC=local(阻止继承、临时策略最小化)。 - 用 AdRestore 恢复到原 OU 或者先到隔离 OU (若用 PowerShell
Restore-ADObject可直接指定-TargetPath;AdRestore 恢复后再移动也可)。 - "四件套补缀" (以 PowerShell 执行):
- 启用账号:
Enable-ADAccount - 重置密码/密钥:
Set-ADAccountPassword/ 计算机信任Reset-ComputerMachinePassword - 要求下次登录改密:
-ChangePasswordAtLogon $true - 回填组成员/memberOf(基于你之前导出的基线 CSV)
- 启用账号:
- 验证通过 → 移回业务 OU →
gpupdate /force。
示例脚本(用户):
powershell
$u = "bob"
Enable-ADAccount -Identity $u
Set-ADAccountPassword $u -Reset -NewPassword (ConvertTo-SecureString "Temp#2025!" -AsPlainText -Force)
Set-ADUser $u -ChangePasswordAtLogon $true
# 回填组(从基线CSV加载)
# Import-Csv .\baseline_groups.csv | ?{ $_.User -eq $u } | %{
# Add-ADGroupMember -Identity $_.Group -Members $u
# }
Move-ADObject -Identity (Get-ADUser $u).DistinguishedName -TargetPath "OU=Recovery,DC=corp,DC=local"
五、与 PowerShell / AD 回收站的"配合拳"
PowerShell(更灵活)
当你需要指定目标 OU、批量加工属性、恢复嵌套容器/OU,建议用 PowerShell:
powershell
# 查找被删对象
$del = Get-ADObject -IncludeDeletedObjects -Filter 'samaccountname -eq "bob"'
# 恢复到指定 OU(一次到位)
Restore-ADObject -Identity $del.ObjectGUID -TargetPath "OU=Recovery,DC=corp,DC=local"
AD 回收站(可视化/保留更多链接信息)
林功能级别 ≥ 2008 R2,可启用回收站(一次性操作,不可回退;慎重变更评审):
powershell
Enable-ADOptionalFeature "Recycle Bin Feature" `
-Scope ForestOrConfigurationSet `
-Target "corp.local"
启用后,恢复会更完整地保留链接属性 (如 memberOf),减少后续"缝合"工作量。
六、典型场景剧本
1)单用户被删
AdRestore /filter:"(sAMAccountName=bob)" /restore- 四件套补缀 + 验证
2)OU 下批量用户被删
AdRestore /filter:"(&(objectClass=user)(lastKnownParent=OU=Sales,DC=corp,DC=local))" /restore /quiet- 批量启用、回填组、移动到隔离 OU,再整体移回
3)服务账号被删导致应用认证失败
AdRestore /filter:"(sAMAccountName=svc_app)" /restore- 重设密码 → 更新应用池/服务凭据 → 重启服务
- 如使用 Kerberos,核查/回填 SPN:
setspn -S HTTP/app01.corp.local CORP\svc_app
4)计算机对象被删,域信任破损
- 恢复计算机对象 → 在主机上执行:
Reset-ComputerMachinePassword -Server dc1.corp.local -Credential (Get-Credential)
七、风险与坑位清单
- 生命周期超期 :超过
msDS-DeletedObjectLifetime,对象会被硬删除 ,AdRestore 也无能为力。准备离线/系统态备份是唯一兜底。 - 组成员丢失 :未启用回收站或生命周期策略不当,恢复后
memberOf可能不完整 → 必须有组成员基线以便回填。 - 移动即触发策略 :直接恢复到原 OU 可能被 GPO/脚本二次改写 → 隔离 OU 是更稳妥的中间站。
- 权限不足 :即便是域管,也可能对目标容器的恢复被 ACL 限制 → 预先委派/验证权限。
- 跨域/多域控一致性 :多 DC 环境有复制延迟,耐心等复制 或指定
/server:dcX直连最新写入者。
八、操作留痕与合规
- 记录:谁、何时、从哪里、恢复了哪些 DN、输出日志/CSV 保存到变更单。
- 最小权限 :使用受委派的恢复账号;避免用"万能域管"做日常恢复。
- 变更窗口:批量恢复、关键对象恢复必须走审批,避开业务高峰。
- 复盘:为何被删?是否误操作?是否需要对 OU/关键组开启"防止意外删除"、加审批与二次确认。
九、口袋速查卡(Cheat Sheet)
text
# 快速筛选
AdRestore /filter:"(sAMAccountName=bob)"
# 批量(按最后父容器)
AdRestore /filter:"(lastKnownParent=OU=Sales,DC=corp,DC=local)" /restore /quiet
# 恢复后"缝合"四件套(PowerShell)
Enable-ADAccount <id>
Set-ADAccountPassword <id> -Reset -NewPassword <secure>
Set-ADUser <id> -ChangePasswordAtLogon $true
# 回填 group memberOf(基于基线CSV)
# 启用回收站(一次性)
Enable-ADOptionalFeature "Recycle Bin Feature" -Scope ForestOrConfigurationSet -Target "corp.local"
结语
AdRestore 专注"从墓地拉回",把"有没有"问题变成"先复活再缝合"的确定性操作。
把它与 AdExplorer 快照 (找差异)+ PowerShell (批量补缀)+ 回收站 (信息保留)串成流水线,你的 AD 误删恢复将进入"快、稳、可审计"的新常态。
下一篇,我们做一次 第十章术式合并的"现场实操脚本包",把本章命令与模板打成一套可直接纳入你的工具仓库。