问题描述:有个Server2019特定业务环境安装2025年2月补丁成功了,安装3月补丁会回滚
问题原因 :Windows 组件存储(WinSxS 文件夹)完整性有问题导致3月补丁回滚
排查过程:
①sfc /scannow无报错
②在安装大型更新(如功能更新、安全月度补丁)前,为确保Windows 组件存储(WinSxS 文件夹)完整,需执行RestoreHealth检查健康情况
执行Dism.exe /Online /Cleanup-Image /RestoreHealth命令报错0x800F0954,要打补丁得先修WinSxS
③"Network "和"Device "打头的几个服务看看有没有禁用的,如果有,那么对照公共镜像调一致后再试一次,仍然报错0x800F0922或0x800F0950或0x800F0954
有如下几种办法可以尝试,注意:操作之前先打快照以备特殊情况需要快速回滚
①DISM /Online /Cleanup-Image /RestoreHealth报错0x800F0954,用集成最新补丁的ISO,就地升级更新系统时选择保留数据文件和程序应用
参考https://cloud.tencent.com/developer/article/2356121
②还是用①中的ISO,这次不就地升级了,而是指定ISO中的install.wim为源来修复,执行100%无任何报错后,再手动安装最新的补丁
DISM /Online /Cleanup-Image /RestoreHealth /Source:wim:路径\install.wim:4 /LimitAccess
比如
DISM /Online /Cleanup-Image /RestoreHealth /Source:wim:G:\sources\install.wim:4 /LimitAccess
③在WinPE救援模式下,无需准备①中的ISO,直接离线打最新的补丁
进入后系统盘符是E:,数据盘盘符是D:,具体盘符请以你的实际情况为准
mkdir D:\Scratch
Dism /Image:"E:" /ScratchDir:"D:\Scratch" /Add-Package /PackagePath:"D:\windows10.0-kb5053596-x64.msu"
Dism /Image:"E:" /get-packages /format:table
之所以产生这个思路是受dism.log中的一些warning启发
查看回滚日志,failed to的信息都指向 it is not a WinPE image,于是,想着,既然它提示不是WinPE,那我在WinPE下离线安装补丁试试,一次性成功
但微软不建议这种办法。微软的解释是:走公网update只是说明补丁的源来自微软服务器,并不能自动修复机器中损坏的组件。如果要修复组件,则需要使用系统自带的修复命令sfc /scannow和DISM /Online /Cleanup-Image /RestoreHealth尝试进行修复。
解决方案中优先建议使用修复命令先将系统中损坏的组件修复后再安装补丁,这也是目前最快的修复方案。另外,由于PE下只加载了系统的最小必要组件,通过在PE下安装补丁的方式虽然可以成功,但是从长远角度考虑并不是很推荐使用PE下安装作为workaround使用。
④还尝试过expand .msu+add .cab这种,没成功
a.提权删除安装没成功的3月补丁包含的SSU(SSU-17763.7000),注册表是通过Registry Workshop遍历查询"7000~31bf3856ad364e35"和"31bf3856ad364e35~amd64~~10.0.17763.7000"汇总注册表,删掉对应注册表
dism /english /online /get-packages | findstr "Servicing Stack"
Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\PackageIndex\Package_for_ServicingStack_7000~31bf3856ad364e35~amd64~~0.0.0.0" -Force -Recurse -ErrorAction SilentlyContinue
Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages\Package_for_ServicingStack_7000~31bf3856ad364e35~amd64~~17763.7000.1.1" -Force -Recurse -ErrorAction SilentlyContinue
Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages\Wrapper-57C72F7FE543CF2E696557F91A5362C706D96EF32D15633825D153B03A2BFD24~31bf3856ad364e35~amd64~~10.0.17763.7000" -Force -Recurse -ErrorAction SilentlyContinue
dism /english /online /get-packages | findstr "Servicing Stack"
b.从.msu提取ssu的.cab和补丁的.cab安装
md c:\temp
cd /d "c:\temp"
expand -f:* c:\windows10.0-kb5053596-x64.msu C:\temp
dism /online /add-package /packagepath:c:\temp\SSU-17763.7000-x64.cab
dism /online /add-package /packagepath:c:\temp\windows10.0-kb5053596-x64.cab
重启后仍然回滚了
⑤卸载2月份补丁,发现补丁状态变为2018年11月的KB4464455(17763.107),还发现一些系统功能不正常了,比如运行appwiz.cpl命令没有建立窗口,但在控制面板里点"程序和功能"可以建立窗口,再比如用advancedrun提权时打不开powershell窗口,但可以打开cmd窗口,在cmd里再执行powershell切换后才可以用powershell提权。
https://support.microsoft.com/help/4464455
3句命令下来,发现17763.107 RestoreHealth报错0x80244007,第一版Server2019即Server2019(1809)正式版第1个ISO的版本,即17763.107,用第一版Server2019 ISO执行DISM,这个ISO很容易从公网获取(ed2k://|file|cn_windows_server_2019_x64_dvd_4de40f33.iso|5086887936|7DCDDD6B0C60A0D019B6A93D8F2B6D31|/),指定本地源来RestoreHealth: DISM /Online /Cleanup-Image /RestoreHealth /Source:wim:F:\sources\install.wim:4 /LimitAccess修复,并不能像方法②那样成功,而是报错0x800f081f。
DISM /Online /Cleanup-Image /CheckHealth
DISM /Online /Cleanup-Image /ScanHealth
DISM /Online /Cleanup-Image /RestoreHealth
3句命令执行如果没问题,会是下图这样,如果3句命令执行没问题,安装2025年3月补丁是可以成功的
总结:Windows月度安全补丁安装回滚的通用解决办法,即先确认"Network "和"Device "打头的几个服务看看有没有禁用的,如果有,那么对照公共镜像调一致后再试一次,仍然报错0x800F0922或0x800F0950或0x800F0954,那就用集成有最新月度安全补丁的ISO来作为本地源来修复,示例命令:
DISM /Online /Cleanup-Image /RestoreHealth /Source:wim:G:\sources\install.wim:4 /LimitAccess
ISO装载后的盘符和install.wim的序号以你的实际情况为准。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有