使用 DISM 或系统更新准备工具修复 Windows 更新错误
本文介绍的高级手动方法通过使用“系统更新准备工具”或“部署映像服务和管理 (DISM) 工具”修复阻止 Windows 更新成功安装的问题。
注意
本文适用于支持代理和 IT 专业人员。 如果你是家庭用户,并且正在寻找有关修复 Windows 更新错误的详细信息,请参阅修复 Windows 更新错误。
原始 KB 编号:947821
常见损坏错误
如果存在损坏错误,则 Windows 更新可能会安装失败。 下表列出了可能与 Windows 更新相关的错误代码,仅供参考:
代码 | 错误 | 说明 |
---|---|---|
0x80070002 | ERROR_FILE_NOT_FOUND | 系统找不到指定的文件。 |
0x8007000D | ERROR_INVALID_DATA | 数据无效。 |
0x800F081F | CBS_E_SOURCE_MISSING | 找不到此程序包或文件的源。 |
0x80073712 | ERROR_SXS_COMPONENT_STORE_CORRUPT | 组件存储处于不一致状态。 |
0x800736CC | ERROR_SXS_FILE_HASH_MISMATCH | 组件的文件与组件清单中的验证信息不匹配。 |
0x800705B9 | ERROR_XML_PARSE_ERROR | 无法分析所请求的 XML 数据。 |
0x80070246 | ERROR_ILLEGAL_CHARACTER | 遇到无效字符。 |
0x8007370D | ERROR_SXS_IDENTITY_PARSE_ERROR | 标识字符串格式错误。 |
0x8007370B | ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME | 标识中的属性名不在有效范围内。 |
0x8007370A | ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE | 标识中的属性值不在有效范围内。 |
0x80070057 | ERROR_INVALID_PARAMETER | 参数不正确。 |
0x800B0100 | TRUST_E_NOSIGNATURE | 主题中没有签名。 |
0x80092003 | CRYPT_E_FILE_ERROR | Windows Update 读取或写入某文件时出现错误。 |
0x800B0101 | CERT_E_EXPIRED | 根据当前系统时钟或签名文件中的时间戳验证时要求的证书不在有效期内。 |
0x8007371B | ERROR_SXS_TRANSACTION_CLOSURE_INCOMPLETE | 一个或多个要求的事务成员不存在。 |
0x80070490 | ERROR_NOT_FOUND | Windows 无法搜索新更新。 |
0x800f0984 | PSFX_E_MATCHING_BINARY_MISSING | 存在匹配组件目录,但缺少二进制文件 |
0x800f0986 | PSFX_E_APPLY_FORWARD_DELTA_FAILED | 应用正向增量失败 |
0x800f0982 | PSFX_E_MATCHING_COMPONENT_NOT_FOUND | 无法识别用于冻结的匹配组件 |
例如,如果系统文件损坏,则可能无法安装更新。 DISM 或系统更新准备工具可帮助你修复一些 Windows 损坏错误。
有关 Windows 更新疑难解答方案的信息,请查看此页。
解决方案 1:使用 DISM
注意
本节中提到的解决方案适用于新版 Windows 版本,例如 Windows 11、Windows 10、Windows Server 2016 或更高版本。 对于 Windows 7 和 Windows Server 2008 R2,请查看解决方案 2:使用系统更新准备工具。
若要解决此问题,请使用 DISM 工具。 然后,重新安装 Windows 更新和服务包。
打开提升的命令提示符。 要执行此操作,请打开“开始”菜单或“开始”屏幕,键入“命令提示符”,右键单击“命令提示符”,然后选择“以管理员身份运行”。 如果系统提示输入管理员密码或进行确认,请键入密码或选择“允许”。
键入以下命令,然后按 Enter 键。 命令操作可能需要几分钟才能完成。
DISM.exe /Online /Cleanup-image /Restorehealth
重要
当运行此命令时,DISM 通过 Windows 更新提供修复损坏所需的文件。 但是,如果 Windows 更新客户端已断开,则会将正在运行的 Windows 安装用作修复来源,或者将来自网络共享或可移动媒体(例如 Windows DVD)的 Windows 并行文件夹用作文件来源。 为此,请改为运行以下命令:
DISM.exe /Online /Cleanup-Image /RestoreHealth /Source:C:\RepairSource\Windows /LimitAccess
注意
请使用修复来源的位置替换 C:\RepairSource\Windows 占位符。 有关使用 DISM 工具修复 Windows 的更多信息,请参考修复 Windows 映像。
键入
sfc /scannow
命令,然后按 Enter。 命令操作可能需要几分钟才能完成。关闭命令提示符,然后再次运行“Windows 更新”。
DISM 会创建一个日志文件 (%windir%/Logs/CBS/CBS.log),用于捕获此工具发现或修复的任何问题。 %windir% 是安装 Windows 的文件夹。 例如,%windir% 文件夹为 C:\Windows。
解决方案 2:使用系统更新准备工具
注意
本节中提到的解决方案适用于 Windows 7 和 Windows Server 2008 R2。 对于 Windows 11、Windows 10、Windows Server 2016 或更高版本等新版 Windows 版本,请查看解决方案 1:使用 DISM。
若要解决此问题,请使用系统更新准备工具。 然后,重新安装 Windows 更新和服务包。
下载系统更新准备工具。
前往 Microsoft 更新目录,下载与计算机上运行的 Windows 版本对应的工具。 若要详细了解如何确定安装的 Windows 版本,请参阅确定计算机运行的是 32 位还是 64 位版本的 Windows。
注意
由于该工具定期更新,因此我们建议您务必下载最新版本。 此工具并非适用于所有受支持的语言。
安装并运行该工具。
单击“下载中心”网页上的“下载”,然后执行下列操作之一:
- 若要立即安装该工具,请选择“打开”或“运行”,然后按照屏幕上的说明操作。
- 若要稍后安装该工具,请选择“保存”,然后将安装文件下载到计算机。 准备好安装该工具时,双击该文件。
在“Windows 更新独立安装程序”对话框中,选择“是”。
当安装该工具时,它会自动运行。 虽然运行时间通常不会超过15 分钟,但在某些计算机上可能会需要更长时间。 即使进度栏似乎已停止,但扫描仍在运行,因此不要选择“取消”。
看到安装完后,选择“关闭”。
重新安装之前尝试安装的更新和服务包。
要手动修复工具检测到但是未能修复的损坏错误,请参阅如何修复在 CheckSUR 日志文件中发现的错误。
解决方案 3:使用 Microsoft 更新目录
也可以尝试直接从 Microsoft 更新目录下载更新程序包,然后手动进行安装。
例如,在尝试通过 Windows 更新安装更新时,可能会遇到问题。 在这种情况下,你可以下载更新程序包并尝试手动安装更新。 为此,请按照下列步骤操作:
在搜索结果中查找适用于你的操作系统的更新,然后选择“下载”按钮。
选择文件的链接以下载更新。
下载过程完成后,选择“关闭”。 然后,你可以在指定位置找到包含更新程序包的文件夹。
打开该文件夹,然后双击更新程序包安装更新。
系统更新准备工具有哪些用途
验证资源的完整性
系统更新准备工具验证以下资源的完整性:
- 位于以下目录中的文件:
- %SYSTEMROOT%\Servicing\Packages
- %SYSTEMROOT%\WinSxS\Manifests
- 位于以下注册表子项下的注册表数据:
- HKEY_LOCAL_MACHINE\Components
- HKEY_LOCAL_MACHINE\Schema
- HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing
此列表可能随时更新。
当系统更新准备工具检测到不正确的清单、Cabinet 或注册表数据时,此工具可能会使用更正的数据替换不正确的数据。
日志记录
此系统更新准备工具会创建一个日志文件,用于捕获此工具发现或修复的任何问题。 日志文件位于以下位置:
- %SYSTEMROOT%\Logs\CBS\CheckSUR.log
- %SYSTEMROOT%\Logs\CBS\CheckSUR.persist.log
修复在 CheckSUR 日志文件中找到的错误
若要手动修复系统更新准备工具检测到但未修复的损坏错误,请按照以下步骤进行:
打开 %SYSTEMROOT%\Logs\CBS\CheckSUR.log。
注意
%SYSTEMROOT% 是一个环境变量,用于保存 Windows 的安装文件夹。 例如,%SYSTEMROOT% 文件夹通常为 C:\Windows。
标识该工具无法修复的程序包。 例如,可能会在日志文件中找到以下信息:
Summary: Seconds executed: 264 Found 3 errors CBS MUM Missing Total Count: 3 Unavailable repair files: servicing\packages\Package_for_KB958690_sc_0~31bf3856ad364e35~amd64~~6.0.1.6.mum ...
在此情况下,受损的程序包是 KB958690。
从 Microsoft 下载中心或 Microsoft 更新目录下载该程序包。
将程序包 (.msu) 复制到
%SYSTEMROOT%\CheckSUR\packages
目录。 默认情况下,此目录不存在,你需要创建该目录。重新运行系统更新准备工具。
如果你是技术专业人员,请参阅如何修复在 CheckSUR.log 中发现的错误,以获取有关修复 CheckSUR.log 中的错误的更多选项。
数据收集
如果需要 Microsoft 支持方面的帮助,建议按照使用 TSS 针对与部署相关的问题收集信息中所述的步骤收集信息。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈