参考文章:
引用站外地址
关于解决win10功能更新0x80242016安装失败的方法
Bilibili-voutin
引用站外地址
引用站外地址
Windows 更新错误码 0x80242016 的各种可能解决方式
初春绫子
前言
作为一个喜新厌旧的孩子,自然系统更新少不了,最近微软发布了Win1122h2(其实早就有了,旧电脑早就更新了新电脑不行)。
旧电脑体验了一番,发现22H2的颜值(主要是)以及Bug都得到了不少改进(不过有点卡),还有云母标题栏,标签资源管理器,心动了。
于是回来之后就给新电脑尝试升级,结果:
我就在网上撒网似的搜索错误代码,无非就是(尤其是水透了的MSCommunity):
1 2 3 4
| sfc /scannow DISM /Online /Cleanup-Image /CheckHealth DISM /Online /Cleanup-image /ScanHealth DISM /Online /Cleanup-Image /RestoreHealth
|
还有用工具(易升、安装助手),干净启动等等的。
看到MSCommunity上最先进的解决方案:
依然没用qwq。
解决方式
然并卵,都没用。于是我便自寻出路。
错误示范
受到了他人的启发,我先生成了windows更新日志文件,在Powershell管理员模式里面输入:
然后我看了看日志,搜索了一些关键词,比如warn,fail等等的,并没有什么发现。
正确示范
又受到MSCommunity上的人启发,看了看事件查看器。
事件查看器的打开也很简单,只需要Win+R输入eventvwr
即可。
如果你要暴力查找,显然时间复杂度是很高的,最坏情况下是O(n),对于计算机来说,搜索非常简单,而对于人来说,就有点吃力了。
要真的想快点找到事件的话,我们可以使用筛选功能:
而wuserv
对应的事件来源便是WindowsUpdateClient
,筛选出来它,我们就能看到我们想要的日志了
然后我们只需要找到错误就可以进行剖析了。
俗话说的好,一个巴掌拍不响,祸不单行。一般来说很多情况下错误都是有好几个的,不如找一个易于查找的错误代码。
然后我突然发现:除了开始的0x8007001f以外,还有一个:
网上一搜,便有了结果:
- Windows更新缓存问题
- Windows Search服务问题
- 部分服务问题
- WinRE损坏
然后我发现我的WinRE是损坏的:
损坏使用reagentc /info
来检测
实际上损坏是因为我换电脑时因为嫌麻烦进行过迁移,于是WinRE没了(PS为什么之前都行)
于是,我就参考这篇文章进行了修复。
如何修复?
修复并不麻烦,首先,你需要一个WinRE镜像,一般来说大部分Windows11版本的WinRE都是一样的,刚好手里因为更新有一个22H2镜像,所以直接拷贝镜像里面的install.wim/Windows/System32/Recovery
即可。
拷贝到C:\Recovery\Windows
下,如果没有则新建(默认是系统保护文件夹,所以需要开启显示)。
我遇到了一个棘手的问题:拒绝访问。
这时我们需要对文件夹进行提权。
提权稍微复杂一点,需要自己仔细看看。(everyone图方便不建议用)
这时就能正常访问了,把install.wim扔进去。
然后Powershell管理员输入:
1 2
| reagentc /setreimage /path C:\Recovery\WindowsRE reagentc /enable
|
MSC的大佬帮助
这样就好了吗?
并没有好,好不容易进入重启更新阶段了,结果直接蓝屏回退。
这时,我在MSCommunity的帖子收到了回复:
刚好遇到了一个神犇,非常厉害,我把错误日志发给他,他就给了我一段修复代码,我复制到PowerShell里面,重启,更新成功!
原帖地址:
引用站外地址
Windows 11 22H1升级22H2失败,错误代码0x8007001f
Microsoft Community
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
| $arch = Get-WMIObject -Class Win32_Processor -ComputerName LocalHost | Select-Object AddressWidth
Write-Host "1. Stopping Windows Update Services..." Stop-Service -Name BITS Stop-Service -Name wuauserv Stop-Service -Name appidsvc Stop-Service -Name cryptsvc
Write-Host "2. Remove QMGR Data file..." Remove-Item "$env:allusersprofile\Application Data\Microsoft\Network\Downloader\qmgr*.dat" -ErrorAction SilentlyContinue
Write-Host "3. Renaming the Software Distribution and CatRoot Folder..." Rename-Item $env:systemroot\SoftwareDistribution SoftwareDistribution.bak -ErrorAction SilentlyContinue Rename-Item $env:systemroot\System32\Catroot2 catroot2.bak -ErrorAction SilentlyContinue
Write-Host "4. Removing old Windows Update log..." Remove-Item $env:systemroot\WindowsUpdate.log -ErrorAction SilentlyContinue
Write-Host "5. Resetting the Windows Update Services to defualt settings..." "sc.exe sdset bits D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)" "sc.exe sdset wuauserv D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)"
Set-Location $env:systemroot\system32
Write-Host "6. Registering some DLLs..." regsvr32.exe /s atl.dll regsvr32.exe /s urlmon.dll regsvr32.exe /s mshtml.dll regsvr32.exe /s shdocvw.dll regsvr32.exe /s browseui.dll regsvr32.exe /s jscript.dll regsvr32.exe /s vbscript.dll regsvr32.exe /s scrrun.dll regsvr32.exe /s msxml.dll regsvr32.exe /s msxml3.dll regsvr32.exe /s msxml6.dll regsvr32.exe /s actxprxy.dll regsvr32.exe /s softpub.dll regsvr32.exe /s wintrust.dll regsvr32.exe /s dssenh.dll regsvr32.exe /s rsaenh.dll regsvr32.exe /s gpkcsp.dll regsvr32.exe /s sccbase.dll regsvr32.exe /s slbcsp.dll regsvr32.exe /s cryptdlg.dll regsvr32.exe /s oleaut32.dll regsvr32.exe /s ole32.dll regsvr32.exe /s shell32.dll regsvr32.exe /s initpki.dll regsvr32.exe /s wuapi.dll regsvr32.exe /s wuaueng.dll regsvr32.exe /s wuaueng1.dll regsvr32.exe /s wucltui.dll regsvr32.exe /s wups.dll regsvr32.exe /s wups2.dll regsvr32.exe /s wuweb.dll regsvr32.exe /s qmgr.dll regsvr32.exe /s qmgrprxy.dll regsvr32.exe /s wucltux.dll regsvr32.exe /s muweb.dll regsvr32.exe /s wuwebv.dll
Write-Host "7) Resetting the WinSock..." netsh winsock reset netsh winhttp reset proxy
Write-Host "8) Delete all BITS jobs..." Get-BitsTransfer | Remove-BitsTransfer
Write-Host "9) Starting Windows Update Services..." Start-Service -Name BITS Start-Service -Name wuauserv Start-Service -Name appidsvc Start-Service -Name cryptsvc
Write-Host "10) Forcing discovery..." wuauclt /resetauthorization /detectnow
Write-Host "Process complete. Please reboot your computer."
|
再次感谢这位神犇。
(MSCommunity中文区也不是一无是处啊)