Windows AD 实训:备份与恢复

2430 字
12 分钟
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 与 复制情况:

Terminal window
# 列出 DC,核对实际名称、地址与角色
Get-ADDomainController -Filter * |
Select-Object HostName,IPv4Address,IsGlobalCatalog
# 记录 FSMO 所在位置,不在演练中随意 seize
netdom query fsmo
# 保存复制与 DNS 基线
repadmin /replsummary
dcdiag /test:Connectivity /test:DNS
# 确认备份盘容量和盘符
Get-Volume | Select-Object DriveLetter,FileSystemLabel,Size,SizeRemaining

备份前核对两台 DC、FSMO 角色持有者与复制摘要
备份前核对两台 DC、FSMO 角色持有者与复制摘要
检查 DNS 基线,记录转发器与子域委派测试错误
检查 DNS 基线,记录转发器与子域委派测试错误
查询卷容量、剩余空间与现有备份卷
查询卷容量、剩余空间与现有备份卷

2.2 建立测试对象并记录身份#

通过 AD 用户和计算机,在专用 RecoveryLab OU 中创建普通测试用户 recovery_test。

在 RecoveryLab OU 中创建测试用户 recovery_test
在 RecoveryLab OU 中创建测试用户 recovery_test

Terminal window
# 记录真实 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,GroupCategory

memberOf 不包含主组;不要把它单独当成全部组归属。将真实 DN 复制到演练记录,后续权威还原使用这个 DN。

记录 recovery_test 的 DN、GUID、SID 与组归属
记录 recovery_test 的 DN、GUID、SID 与组归属

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

在 CORE02 上确认 recovery_test 已复制到另一台 DC
在 CORE02 上确认 recovery_test 已复制到另一台 DC

三、执行备份:使用 GUI#

3.1 系统状态备份#

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

查看包含系统状态与多个卷的备份进度
查看包含系统状态与多个卷的备份进度
确认系统状态及所选卷备份完成,共传输 21.03 GB
确认系统状态及所选卷备份完成,共传输 21.03 GB

四、原 DC 恢复与单个对象权威还原#

4.1 删除测试用户,确认删除已经复制#

这一步只用于“误删对象恢复”练习。普通故障 DC 的非权威恢复不需要制造用户删除。

Terminal window
# 先核对对象,再预演;WhatIf 不会执行删除
Get-ADUser -Identity recovery_test |
Select-Object Name,DistinguishedName,ObjectGUID
Remove-ADUser -Identity recovery_test -WhatIf
# 仅在确认测试对象和备份无误后,单独执行实际删除
Remove-ADUser -Identity recovery_test

核对测试用户身份,并使用 WhatIf 预演删除
核对测试用户身份,并使用 WhatIf 预演删除
确认并执行删除测试用户 recovery_test
确认并执行删除测试用户 recovery_test

通过两台 DC 分别查询,确认测试用户已删除;“找不到对象”是预期现象,但连接 DC 失败不能当作删除证据。

Terminal window
Get-ADUser -Identity recovery_test -Server QYNET-CORE01.qy.net
Get-ADUser -Identity recovery_test -Server QYNET-CORE02.qy.net

分别查询两台 DC,确认 recovery_test 的删除已复制
分别查询两台 DC,确认 recovery_test 的删除已复制

等待正常复制即可。如确需加速,先确认复制健康,再仅同步相关域分区。

现实误删优先考虑回收站;这里继续执行备份恢复。

4.2 隔离 CORE01,进入 DSRM#

断开待恢复 CORE01 的虚拟网卡,保留虚拟机控制台和本地备份盘;不要把健康的 CORE02 也断开。恢复与权威标记完成前,避免 CORE01 正常启动后先收到其他 DC 的删除记录。

断开 CORE01 虚拟网卡,隔离待恢复的域控制器
断开 CORE01 虚拟网卡,隔离待恢复的域控制器

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

在高级启动选项中选择目录服务修复模式 DSRM
在高级启动选项中选择目录服务修复模式 DSRM
使用 DSRM 本地 Administrator 账户登录 CORE01
使用 DSRM 本地 Administrator 账户登录 CORE01

4.3 在 DSRM 中恢复系统状态#

确认要恢复的版本标识符。

Terminal window
wbadmin get versions
wbadmin start systemstaterecovery -version:10/09/2026-02:53

查询可用备份并核对版本标识符 10/09/2026-02:53
查询可用备份并核对版本标识符 10/09/2026-02:53
在 DSRM 中确认并启动指定版本的系统状态恢复
在 DSRM 中确认并启动指定版本的系统状态恢复

执行后便会开始还原,而后再对目标对象执行权威还原即可。

4.4 只对目标用户执行权威还原#

系统状态恢复使数据库回到备份时的内容;权威还原则让指定对象的旧内容作为新版本传播出去,两者不是同一步。

以下是 ntdsutil 的交互命令,可从 DSRM 的命令行启动。

ntdsutil
activate instance ntds
authoritative restore
restore object "CN=recovery_test,OU=RecoveryLab,OU=Organization,DC=qy,DC=net"
quit
quit

修正完整 DN 后,对 recovery_test 成功执行单对象权威还原
修正完整 DN 后,对 recovery_test 成功执行单对象权威还原

4.5 退出 DSRM,启动原 DC 并恢复网络#

权威标记完成后再恢复原 CORE01 的网络。不要让一份恢复出来的 CORE01 副本与原 CORE01 同时出现在域网络中。

恢复 CORE01 网卡的启动时连接设置,准备正常启动
恢复 CORE01 网卡的启动时连接设置,准备正常启动

4.6 验收:对象、复制与服务都要检查#

Terminal window
# 两台 DC 都应查到恢复对象,并与备份前 GUID/SID 对照
Get-ADUser -Identity recovery_test -Server QYNET-CORE01.qy.net -Properties Description |
Select-Object Name,ObjectGUID,SID,Description
Get-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 /replsummary
repadmin /showrepl QYNET-CORE01
repadmin /showrepl QYNET-CORE02
dcdiag /s:QYNET-CORE01 /test:Advertising /test:SysVolCheck
# 在恢复后的 CORE01 检查共享
Get-SmbShare -Name SYSVOL,NETLOGON

对照两台 DC 上恢复用户的 GUID、SID 与组归属
对照两台 DC 上恢复用户的 GUID、SID 与组归属
检查恢复后的复制摘要,两台 DC 的失败数均为零
检查恢复后的复制摘要,两台 DC 的失败数均为零
查看 CORE01 各命名上下文的入站复制状态
查看 CORE01 各命名上下文的入站复制状态
确认 CORE02 的五个命名上下文最近复制均成功
确认 CORE02 的五个命名上下文最近复制均成功

五、整机/异机恢复:另一条完整流程#

如果目标是“全量备份,恢复到不同硬件”,则需要在 VM 新建一块虚拟磁盘,后续挂载到其它 VM 下进行恢复。

在 VMware 中新增 100 GB 虚拟硬盘用于存放整机备份
在 VMware 中新增 100 GB 虚拟硬盘用于存放整机备份

5.1 备份全服务器#

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

在一次性备份向导中选择整个服务器备份
在一次性备份向导中选择整个服务器备份
确认全服务器备份成功,包含裸机恢复与系统状态
确认全服务器备份成功,包含裸机恢复与系统状态

5.2 在隔离目标中还原#

在此之前一定要关闭原来的 DC01,或者直接断网。一定不要在另一台机器恢复后,在域内存在两台 DC01。不然就炸了。

使用匹配的 Windows Server 安装介质启动,选择“修复计算机”→“疑难解答”→“系统映像恢复”。

从 Windows Server 安装介质启动并选择修复计算机
从 Windows Server 安装介质启动并选择修复计算机
在 Windows 恢复环境中进入疑难解答
在 Windows 恢复环境中进入疑难解答

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

将存放整机备份的现有 VMDK 挂载到恢复目标虚拟机
将存放整机备份的现有 VMDK 挂载到恢复目标虚拟机
在高级选项中选择系统映像恢复
在高级选项中选择系统映像恢复
核对系统映像的位置、备份时间与源计算机名称
核对系统映像的位置、备份时间与源计算机名称

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

核对格式化与重新分区选项,并检查需排除的磁盘
核对格式化与重新分区选项,并检查需排除的磁盘
执行系统映像恢复,查看 C 盘还原进度
执行系统映像恢复,查看 C 盘还原进度

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

自动重启:

恢复目标虚拟机重启,Windows 正在准备设备
恢复目标虚拟机重启,Windows 正在准备设备

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

接下来验证复制状态与测试对象:

整机恢复后,对照 CORE01 与 CORE02 上测试用户的 GUID 和 SID
整机恢复后,对照 CORE01 与 CORE02 上测试用户的 GUID 和 SID
检查恢复后的 CORE01 入站复制
检查恢复后的 CORE01 入站复制
检查 CORE02 从恢复后 CORE01 的入站复制,域分区最近尝试成功
检查 CORE02 从恢复后 CORE01 的入站复制,域分区最近尝试成功

六、GUI 与 PowerShell 的关系#

算是小总结,所有在 GUI 的操作都是可以在 CLI 下完成的,以下是对照表,可供后续学习与参考。

操作GUI命令行
安装备份功能服务器管理器Install-WindowsFeature
备份系统状态/服务器Windows Server Backupwbadmin 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 与命令行是不同入口,恢复模式和前置条件不会因此改变。

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
Windows AD 实训:备份与恢复
https://springtsuki.xucjno.com/posts/springtsuki/notes/windowsad/labs/backups/109-backups/
作者
SpringTsuki
发布于
2026-10-10
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
SpringTsuki
你好,我是浅月。
公告
浅月的开发小窝!欢迎你来到这里!
音乐
封面

音乐

暂未播放

0:000:00
暂无歌词
分类
标签
站点统计
文章
56
分类
9
标签
42
总字数
188,888
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
GitHub Actions
博客版本
Firefly v6.13.5
文章许可
CC BY-NC-SA 4.0

文章目录