Windows AD 实训:备份与恢复
一、恢复路线
| 目标 | 使用的备份/工具 | 执行环境 |
|---|---|---|
| 误删用户或组,回收站已启用且对象仍可恢复 | AD 回收站、Restore-ADObject | 正常模式,通常无需停机 |
| 原 DC 的系统状态恢复,另有健康 DC | 系统状态备份、wbadmin | 原 DC 的 DSRM |
| 从备份恢复一个误删对象,并让它复制到其他 DC | 系统状态恢复,再对指定对象做权威还原 | DSRM 中执行 ntdsutil |
| 系统盘损坏、不能启动或更换硬件 | 全服务器/裸机恢复备份 | Windows 恢复环境(WinRE) |
| 整林已无健康可写 DC | 专门的整林恢复计划 | 隔离网络,按域和 DC 分阶段恢复 |
二、备份前准备
2.0 实验环境与预期目标
这里打算新建一个对象,同步后删除,而后执行权威还原,将被删除的对象进行恢复。
实验环境:当前域内存在两台DC,为 QYNET-CORE01 与 QYNET-CORE02。这里以 QYNET-CORE01 为备份/恢复对象,前提是确认 QYNET-CORE02 当前健康。这些名称来自实验架构,不代表已经验证今天的运行状态。
2.1 明确机器与恢复目标
先在管理员 PowerShell 中检查 DC 与 复制情况:
# 列出 DC,核对实际名称、地址与角色Get-ADDomainController -Filter * | Select-Object HostName,IPv4Address,IsGlobalCatalog
# 记录 FSMO 所在位置,不在演练中随意 seizenetdom query fsmo
# 保存复制与 DNS 基线repadmin /replsummarydcdiag /test:Connectivity /test:DNS
# 确认备份盘容量和盘符Get-Volume | Select-Object DriveLetter,FileSystemLabel,Size,SizeRemaining


2.2 建立测试对象并记录身份
通过 AD 用户和计算机,在专用 RecoveryLab OU 中创建普通测试用户 recovery_test。

# 记录真实 DN、GUID、SID 和直接组关系,保存在恢复范围之外Get-ADUser -Identity recovery_test -Properties Description,memberOf | Format-List Name,DistinguishedName,ObjectGUID,SID,Description,memberOf
# 记录查询到的组,用于恢复后的对照Get-ADPrincipalGroupMembership -Identity recovery_test | Select-Object Name,GroupScope,GroupCategorymemberOf 不包含主组;不要把它单独当成全部组归属。将真实 DN 复制到演练记录,后续权威还原使用这个 DN。

而后,为了防止等待,这里强行跨站点 Push 同步一下(repadmin /syncall QYNET-CORE01 /AdeP),在 DC02 上也查看到了测试对象。

三、执行备份:使用 GUI
3.1 系统状态备份
GUI:Windows Server Backup → 本地备份 → 一次性备份 → 不同选项 → 自定义 → 添加项目 → 系统状态 → 选择独立备份位置 → 核对后备份。


四、原 DC 恢复与单个对象权威还原
4.1 删除测试用户,确认删除已经复制
这一步只用于“误删对象恢复”练习。普通故障 DC 的非权威恢复不需要制造用户删除。
# 先核对对象,再预演;WhatIf 不会执行删除Get-ADUser -Identity recovery_test | Select-Object Name,DistinguishedName,ObjectGUIDRemove-ADUser -Identity recovery_test -WhatIf
# 仅在确认测试对象和备份无误后,单独执行实际删除Remove-ADUser -Identity recovery_test

通过两台 DC 分别查询,确认测试用户已删除;“找不到对象”是预期现象,但连接 DC 失败不能当作删除证据。
Get-ADUser -Identity recovery_test -Server QYNET-CORE01.qy.netGet-ADUser -Identity recovery_test -Server QYNET-CORE02.qy.net
等待正常复制即可。如确需加速,先确认复制健康,再仅同步相关域分区。
现实误删优先考虑回收站;这里继续执行备份恢复。
4.2 隔离 CORE01,进入 DSRM
断开待恢复 CORE01 的虚拟网卡,保留虚拟机控制台和本地备份盘;不要把健康的 CORE02 也断开。恢复与权威标记完成前,避免 CORE01 正常启动后先收到其他 DC 的删除记录。

而后重启进入 DSRM,使用 DSRM 本地管理员登录。


4.3 在 DSRM 中恢复系统状态
确认要恢复的版本标识符。
wbadmin get versionswbadmin start systemstaterecovery -version:10/09/2026-02:53

执行后便会开始还原,而后再对目标对象执行权威还原即可。
4.4 只对目标用户执行权威还原
系统状态恢复使数据库回到备份时的内容;权威还原则让指定对象的旧内容作为新版本传播出去,两者不是同一步。
以下是 ntdsutil 的交互命令,可从 DSRM 的命令行启动。
ntdsutilactivate instance ntdsauthoritative restorerestore object "CN=recovery_test,OU=RecoveryLab,OU=Organization,DC=qy,DC=net"quitquit
4.5 退出 DSRM,启动原 DC 并恢复网络
权威标记完成后再恢复原 CORE01 的网络。不要让一份恢复出来的 CORE01 副本与原 CORE01 同时出现在域网络中。

4.6 验收:对象、复制与服务都要检查
# 两台 DC 都应查到恢复对象,并与备份前 GUID/SID 对照Get-ADUser -Identity recovery_test -Server QYNET-CORE01.qy.net -Properties Description | Select-Object Name,ObjectGUID,SID,DescriptionGet-ADUser -Identity recovery_test -Server QYNET-CORE02.qy.net -Properties Description | Select-Object Name,ObjectGUID,SID,Description
# 与恢复前组关系记录对照,发现缺失再处理Get-ADPrincipalGroupMembership -Identity recovery_test | Select-Object Name,GroupScope,GroupCategory
# 验证两台 DC 的复制与恢复 DC 的服务repadmin /replsummaryrepadmin /showrepl QYNET-CORE01repadmin /showrepl QYNET-CORE02dcdiag /s:QYNET-CORE01 /test:Advertising /test:SysVolCheck
# 在恢复后的 CORE01 检查共享Get-SmbShare -Name SYSVOL,NETLOGON



五、整机/异机恢复:另一条完整流程
如果目标是“全量备份,恢复到不同硬件”,则需要在 VM 新建一块虚拟磁盘,后续挂载到其它 VM 下进行恢复。

5.1 备份全服务器
GUI:Windows Server Backup → 一次性备份 → 不同选项 → 整个服务器 → 选择备份位置 → 核对所有卷后执行。


5.2 在隔离目标中还原
在此之前一定要关闭原来的 DC01,或者直接断网。一定不要在另一台机器恢复后,在域内存在两台 DC01。不然就炸了。
使用匹配的 Windows Server 安装介质启动,选择“修复计算机”→“疑难解答”→“系统映像恢复”。


别忘了挂载有备份文件的硬盘。



找到备份磁盘或共享,选择真实版本及源机器,核对目标磁盘。格式化/重新分区会覆盖目标数据,不能选到备份盘。


完成恢复后,仍在隔离状态检查能否启动、驱动、盘符、数据与服务器角色。
自动重启:

若这是替代原 DC,原 DC 必须保持离线;根据“还有健康 DC”或“整林故障”分别安排 AD/SYSVOL 后续恢复与验收。不能只因 Windows 启动成功就直接接回生产网络。
接下来验证复制状态与测试对象:



六、GUI 与 PowerShell 的关系
算是小总结,所有在 GUI 的操作都是可以在 CLI 下完成的,以下是对照表,可供后续学习与参考。
| 操作 | GUI | 命令行 |
|---|---|---|
| 安装备份功能 | 服务器管理器 | Install-WindowsFeature |
| 备份系统状态/服务器 | Windows Server Backup | wbadmin start systemstatebackup/start backup |
| 查询版本与任务 | 备份控制台 | wbadmin get versions/get status |
| 进入 DSRM | 安全启动设置 | bcdedit 设置启动项 |
| 系统状态恢复 | DSRM 下的备份恢复界面 | wbadmin start systemstaterecovery |
| 指定 AD 对象权威还原 | 通常仍用命令行 | ntdsutil |
| 裸机恢复 | WinRE 系统映像恢复 | WinRE 中的 wbadmin start sysrecovery |
| 验收 | AD/DNS/事件查看器 | AD cmdlet、repadmin、dcdiag |
可以从 PowerShell 调用 wbadmin、bcdedit 和 ntdsutil,但它们本身是外部程序,不是 PowerShell cmdlet;它们的文本输出也不天然等于可直接 Select-Object 的 AD 对象。GUI 与命令行是不同入口,恢复模式和前置条件不会因此改变。
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!













