一、故障典型现象
图片
机房Windows Server 2016/2019/2022高发场景:
- 打系统补丁中途断电、强制关机,开机提示「正在撤销更新,请勿关闭计算机」,走完进度条自动重启,无限循环;
- 卡在更新0%/30%/100%,反复重启,完全无法进入桌面;
- 能进修复界面,但自动修复失败,提示无法自动修复此计算机;
- 偶尔短暂进系统,几秒后立刻蓝屏重启,事件日志报Windows Update组件损坏。
故障原因:
补丁更新过程被中断,系统生成Pending挂起更新事务,每次开机强制尝试完成残缺更新,文件损坏导致执行失败,触发自动回滚、整机重启。 sfc /scannow在线修复无法处理底层更新事务,必须使用DISM离线镜像命令清除挂起任务。
二、分情况急救方案
场景1:能进入系统修复界面(BMC KVM挂载系统镜像)
- 服务器挂载Windows Server安装ISO,从镜像启动,点击【修复计算机】→【疑难解答】→【命令提示符】
- 先确认真实系统盘符(PE环境C盘大概率偏移)
dir C:\Windows
dir D:\Windows
能看到Windows目录的盘符就是系统盘,示例为D盘 3. 核心命令:回滚所有未完成挂起更新事务
dism /image:D:\ /cleanup-image /revertpendingactions
- 清理完成后校验系统文件完整性
dism /image:D:\ /cleanup-image /checkhealth
sfc /scannow /offbootdir=D:\ /offwindir=D:\Windows
- 关闭命令行,重启服务器,直接跳过更新回滚流程正常进系统。
图片
场景2:侥幸能短暂进入系统桌面(管理员CMD执行)
- 右键开始菜单,以管理员身份打开命令提示符
- 回滚挂起更新,清理损坏补丁事务
dism /online /cleanup-image /revertpendingactions
- 修复系统镜像损坏组件
dism /online /cleanup-image /restorehealth
sfc /scannow
- 手动清空Windows更新缓存,杜绝再次触发故障
net stop wuauserv
rd /s /q C:\Windows\SoftwareDistribution\Download
net start wuauserv
- 重启服务器,故障彻底解决。
三、补充兜底修复手段(DISM无效时使用)
方案1:禁用自动更新启动项
修复界面CMD执行,阻止开机自动执行更新事务
bcdedit /set {default} bootstatuspolicy ignoreallfailures
方案2:删除更新挂起事务文件
del D:\Windows\WinSxS\pending.xml
del D:\Windows\SoftwareDistribution\DataStore\pending.xml
方案3:关闭系统自动修复(无限循环修复弹窗)
bcdedit /set recoveryenabled NO
四、避坑规范
- 服务器打补丁严禁中途断电、强制重启,生产业务尽量凌晨低峰更新;
- WSUS批量推送补丁前,先单台服务器验证,避免批量触发开机循环故障;
- 出现更新循环,优先使用dism /revertpendingactions回滚事务,不要直接重装系统;
- 修复完成后,不要立刻批量打高危累积补丁,分次小批量更新;
- 机房常备Windows Server官方镜像,搭配iBMC/KVM远程挂载,无需现场拆机。
五、总结
Windows服务器开机无限循环、撤销更新,根源是残缺更新挂起事务。 离线修复核心命令:dism /image:系统盘符 /cleanup-image /revertpendingactions,一键清除未完成补丁任务,配合sfc离线校验系统文件,99%更新类开机循环故障均可修复,是Windows机房运维必备急救操作。