使用 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 更新和服务包。

  1. 打开提升的命令提示符。 要执行此操作,请打开“开始”菜单或“开始”屏幕,键入“命令提示符”,右键单击“命令提示符”,然后选择“以管理员身份运行”。 如果系统提示输入管理员密码或进行确认,请键入密码或选择“允许”

  2. 键入以下命令,然后按 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 映像

  3. 键入 sfc /scannow 命令,然后按 Enter。 命令操作可能需要几分钟才能完成。

  4. 关闭命令提示符,然后再次运行“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 更新和服务包。

  1. 下载系统更新准备工具。

    前往 Microsoft 更新目录,下载与计算机上运行的 Windows 版本对应的工具。 若要详细了解如何确定安装的 Windows 版本,请参阅确定计算机运行的是 32 位还是 64 位版本的 Windows

    注意

    由于该工具定期更新,因此我们建议您务必下载最新版本。 此工具并非适用于所有受支持的语言。

  2. 安装并运行该工具。

    1. 单击“下载中心”网页上的“下载”,然后执行下列操作之一:

      • 若要立即安装该工具,请选择“打开”或“运行”,然后按照屏幕上的说明操作。
      • 若要稍后安装该工具,请选择“保存”,然后将安装文件下载到计算机。 准备好安装该工具时,双击该文件。
    2. 在“Windows 更新独立安装程序”对话框中,选择“是”

                    “Windows 更新独立安装程序”对话框的屏幕截图。                            

  3. 当安装该工具时,它会自动运行。 虽然运行时间通常不会超过15 分钟,但在某些计算机上可能会需要更长时间。 即使进度栏似乎已停止,但扫描仍在运行,因此不要选择“取消”

                  “下载并安装更新”窗口显示正在安装更新。                            

  4. 看到安装完后,选择“关闭”

                  “下载并安装更新”窗口显示安装已完成。                            

  5. 重新安装之前尝试安装的更新和服务包。

要手动修复工具检测到但是未能修复的损坏错误,请参阅如何修复在 CheckSUR 日志文件中发现的错误

解决方案 3:使用 Microsoft 更新目录

也可以尝试直接从 Microsoft 更新目录下载更新程序包,然后手动进行安装。

例如,在尝试通过 Windows 更新安装更新时,可能会遇到问题。 在这种情况下,你可以下载更新程序包并尝试手动安装更新。 为此,请按照下列步骤操作:

  1. 打开“KB3006137 的 Microsoft 更新目录页”

  2. 在搜索结果中查找适用于你的操作系统的更新,然后选择“下载”按钮。

                                 更新“下载”按钮的屏幕截图。                                           

  3. 选择文件的链接以下载更新。

                                 “Microsoft 更新目录”窗口显示更新下载链接。                                           

  4. 下载过程完成后,选择“关闭”。 然后,你可以在指定位置找到包含更新程序包的文件夹。

  5. 打开该文件夹,然后双击更新程序包安装更新。

系统更新准备工具有哪些用途

验证资源的完整性

系统更新准备工具验证以下资源的完整性:

  • 位于以下目录中的文件:
    • %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 日志文件中找到的错误

若要手动修复系统更新准备工具检测到但未修复的损坏错误,请按照以下步骤进行:

  1. 打开 %SYSTEMROOT%\Logs\CBS\CheckSUR.log

    注意

                  %SYSTEMROOT% 是一个环境变量,用于保存 Windows 的安装文件夹。 例如,%SYSTEMROOT% 文件夹通常为 C:\Windows

  2. 标识该工具无法修复的程序包。 例如,可能会在日志文件中找到以下信息:

    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。

  3. Microsoft 下载中心Microsoft 更新目录下载该程序包。

  4. 将程序包 (.msu) 复制到 %SYSTEMROOT%\CheckSUR\packages 目录。 默认情况下,此目录不存在,你需要创建该目录。

  5. 重新运行系统更新准备工具。

如果你是技术专业人员,请参阅如何修复在 CheckSUR.log 中发现的错误,以获取有关修复 CheckSUR.log 中的错误的更多选项。

数据收集

如果需要 Microsoft 支持方面的帮助,建议按照使用 TSS 针对与部署相关的问题收集信息中所述的步骤收集信息。