Windows 更新卡在 0x8007000d,我是这么一步步查的
先给结论:0x8007000d 是 Windows 的 ERROR_INVALID_DATA,意思是补丁已经下载到你机器上了,但文件残缺、签名校验过不去,系统不敢装。问题九成出在本地那份坏文件和系统组件上,不是微软服务器不给下载。修法就是按顺序把坏数据作废、把底层组件修好——下面的步骤照着走,绝大多数人在这篇讲完之前就能装上更新。

这串代码是 Windows 更新里最让人窝火的一个。它不给原因,只甩给你一句”数据无效”,然后进度条从头再来。三种情况最常见:累积更新下载完直接安装失败;装 Insider 预览版或者跨版本升级中途报错;还有一种最坑,更新显示装成功了,一重启就变成”正在撤销更改”,全给你回滚掉。
先别急着开命令行:三件事花两分钟
有段时间我一上来就敲命令,后来发现相当一部分机器根本用不着。
第一,真重启一次。不是合上盖子再打开——开着快速启动的笔记本,关盖睡眠再唤醒等于什么都没重启,更新服务那个卡住的烂摊子还原样留着。点重启,别点关机再开机。
第二,看 C 盘还剩多少地方。空间快满的时候补丁会写一半断掉,事后校验必挂。要跨大版本升级,我个人建议至少空出 20GB,用系统自带的磁盘清理腾一腾就够。

第三,第三方杀毒的实时防护临时退掉。这类软件很爱去动更新包,一改就把文件改坏了,等更新装完再开回来。网络能插网线就插网线,无线掉一下包,下载又得中断。
第一步:运行 Windows 更新疑难解答
Win11 在 开始 > 设置 > 系统 > 疑难解答 > 其他疑难解答 里找 Windows 更新点运行;Win10 是 设置 > 更新和安全 > 疑难解答。

坦白讲这一步命中率不高,我多数时候跑完它还是报错。但它会顺手把配置项复位,属于两分钟成本换一点可能性,跑完重启再试一次更新。
第二步:先 DISM 再 SFC,顺序千万别反
搜索框输 cmd,右键”以管理员身份运行”,然后:
DISM /Online /Cleanup-Image /ScanHealth
DISM /Online /Cleanup-Image /RestoreHealth
sfc /scannow

这两件事的先后顺序是最多人踩的坑。DISM 修的是组件存储里那堆源文件,SFC 拿这些源去替换坏掉的系统文件。先跑 SFC 会怎样?它会跑完然后告诉你”发现损坏但无法修复”,十几分钟白费。微软官方文档也是明确让 DISM 在前。

第三步:清更新缓存,0x8007000d 一大半死在这一步
做法是把更新相关的服务停掉,再把两个目录改名:
net stop wuauserv
net stop bits
net stop cryptSvc
net stop msiserver
ren C:\Windows\SoftwareDistribution SoftwareDistribution.old
ren C:\Windows\System32\catroot2 catroot2.old
net start wuauserv
net start bits
net start cryptSvc
net start msiserver

SoftwareDistribution 是补丁的下载目录,改名就等于逼系统重新下一份完整的。catroot2 存的是补丁签名校验库——它坏了,系统就没法确认这个更新包是不是合法的,报”数据无效”正好对得上。要是 ren catroot2 提示被占用,说明 cryptSvc 没停干净,把上面四条 stop 再执行一遍。顺便确认服务是自动启动:
sc config wuauserv start= auto
sc config bits start= auto
sc config cryptsvc start= auto
全都试过还不行:手动装补丁,拿日志说话
去 Microsoft Update Catalog 按 KB 号搜出那个补丁,手动下 .msu 双击装,绕开自动更新这条通道。跨版本升级可以直接用官方的更新助手。服务器机器重启回滚还有一种常见原因:驱动版本对不上,芯片组、存储、网卡这几个升到厂商推荐版本再试。
想真正定位,就看日志。C:\Windows\Logs\DISM\dism.log、C:\Windows\Logs\CBS\CBS.log,PowerShell 里跑 Get-WindowsUpdateLog 能生成一份聚合好的,搜 0x8007000d,看它上下几行卡在哪个文件、哪次校验。

排查顺序总结
重启腾空间 → 疑难解答 → DISM 再 SFC → 清更新缓存 → 手动装补丁看日志。命令和结论出自微软官方文档:Windows 更新错误 0x8007000d、SFC 与 DISM 的使用顺序。
