参考文章:
引用站外地址
关于解决win10功能更新0x80242016安装失败的方法
Bilibili-voutin
引用站外地址
引用站外地址
Windows 更新错误码 0x80242016 的各种可能解决方式
初春绫子
 前言
作为一个喜新厌旧的孩子,自然系统更新少不了,最近微软发布了Win1122h2(其实早就有了,旧电脑早就更新了新电脑不行)。
旧电脑体验了一番,发现22H2的颜值(主要是)以及Bug都得到了不少改进(不过有点卡),还有云母标题栏,标签资源管理器,心动了。
于是回来之后就给新电脑尝试升级,结果:

我就在网上撒网似的搜索错误代码,无非就是(尤其是水透了的MSCommunity):
| 12
 3
 4
 
 | sfc /scannowDISM /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管理员输入:
| 12
 
 | reagentc /setreimage /path C:\Recovery\WindowsREreagentc /enable
 
 | 
 MSC的大佬帮助
这样就好了吗?
并没有好,好不容易进入重启更新阶段了,结果直接蓝屏回退。
这时,我在MSCommunity的帖子收到了回复:
刚好遇到了一个神犇,非常厉害,我把错误日志发给他,他就给了我一段修复代码,我复制到PowerShell里面,重启,更新成功!
原帖地址:
引用站外地址
Windows 11 22H1升级22H2失败,错误代码0x8007001f
Microsoft Community
| 12
 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中文区也不是一无是处啊)