从微软更新目录站下了一个补丁,后缀是 .msu,双击弹出「此更新不适用于你的计算机」,错误代码 0x8007000d。文件本身是真的,问题出在系统版本和补丁不匹配。

msu 就是更新包的容器

msu 是 Microsoft Update Standalone Package 的缩写,本质是个 CAB 容器,里面装着一个或多个 cab 和一个 xml 清单。清单写明适用的系统版本、架构、语言和前置补丁。双击时系统调 wusa.exe 校验清单,对不上就直接拒绝安装。

命令行装才看得见报错

wusa.exe C:/update/windows10.0-kb5031234-x64.msu /quiet /norestart

静默装完返回 0 或 3010,3010 表示要重启。想留记录就加 /log:update.log。用 PowerShell 的 Add-WindowsPackage 也行,但要先把 msu 解出 cab,再用 dism 挂进去。

报错的常见原因

  • 架构不对:x64 的包装不进 ARM 或 x86 系统。
  • 版本不对:Win10 的补丁装在 Win11 上,清单校验直接不过。
  • 缺前置补丁:清单里的依赖项没满足,先装依赖再装它。
  • 语言不匹配:中文系统硬装英文语言包补丁会失败。

解出来手工装

实在要装,把后缀改成 cab 或用 expand 解包,然后用 dism 直接挂里面的 cab:dism /Online /Add-Package /PackagePath:C:/update/xxx.cab。这条路绕过了 wusa 的清单检查,适合离线打补丁,但要清楚自己装的是哪个 KB,别把不匹配的包强行推上去导致系统组件损坏。

补丁装不上先别重装系统,用 winver 看到的版本号和补丁说明里的要求对了没有。企业环境统一用 WSUS 或离线 dism 批量推,比一台台双击靠谱。