修复Windows DISM 或系统更新就绪情况工具更新错误

适用于:  Windows 10 版本 1809及更高版本、Windows 8.1、Windows Server 2012 R2、Windows 7、Windows Server 2008 R2
原始 KB 编号:   947821

症状

Windows出现损坏错误,则更新和 Service Pack 可能无法安装。 例如,如果系统文件已损坏,更新可能无法安装。 DISM 或系统更新就绪情况工具可以帮助你修复某些Windows错误。

本文适用于支持代理和 IT 专业人员。 如果你是家庭用户,并且要查找有关修复更新Windows的详细信息,请参阅修复Windows更新错误

Windows 8.1、Windows 10 和 Windows Server 2012 R2 的分辨率

若要解决此问题,请使用收件箱部署映像服务和管理 (DISM) 工具。 然后,再次Windows更新或 Service Pack。

  1. 打开提升的命令提示符。 为此,请打开" 开始"菜单 或" 开始"屏幕,键入 命令提示符,右键选择"命令提示符",然后选择"以 管理员角色运行"。 如果系统提示你输入管理员密码或进行确认,请键入密码,或选择"允许 "。

  2. 键入以下命令,然后按 Enter。 可能需要几分钟时间完成命令操作。

    DISM.exe /Online /Cleanup-image /Restorehealth
    

    重要

    运行此命令时,DISM Windows Update 来提供修复损坏所需的文件。 但是,如果您的 Windows Update 客户端已经断开,请使用正在运行的 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。

Windows 7 和 Windows Server 2008 R2 的分辨率

若要解决此问题,请使用系统更新就绪情况工具。 然后,再次Windows更新或 Service Pack。

  1. 下载系统更新就绪情况工具。

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

    备注

    此工具会定期更新,我们建议您始终下载最新版本。 此工具并非以每种受支持的语言提供。 查看下面的链接,查看该链接是否以你的语言提供。

  2. 安装并运行该工具。

    1. " 下载中心"网页上选择"下载",然后执行下列操作之一:

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

      Windows"更新独立安装程序"对话框

  3. 安装该工具时,它会自动运行。 尽管运行时间通常少于 15 分钟,但在某些计算机上可能需要更长时间。 即使进度栏似乎停止,扫描仍在运行,因此请勿选择"取消 "。

    下载和安装更新 - 正在安装更新的进度窗口

  4. 当看到"安装完成"时,选择"关闭 "。

    下载并安装更新 - 安装完成

  5. 重新安装之前尝试安装的更新或 Service Pack。

若要手动修复工具检测到但无法修复的损坏错误,请参阅如何修复 CheckSUR日志文件。

解决方案 - 直接从 Microsoft 更新目录下载程序包

还可以尝试直接从 Microsoft更新目录下载更新包,然后手动安装更新包。

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

  1. 打开 Microsoft Update Catalog in Internet Explorer。

    Microsoft Update Catalog in Internet Explorer

  2. 在搜索框中,输入要下载的更新编号。 在此例中,输入 3006137。 然后,选择"搜索"。

    Microsoft 更新目录 - 搜索

  3. 在搜索结果中找到适用于你的操作系统的更新,然后选择添加以将更新添加到你的篮中。

    Microsoft 更新目录搜索结果

  4. 选择 视图篮 以打开篮。

    Microsoft 更新目录 - 视图篮

  5. 选择 下载 以在篮中下载更新。

    Microsoft 更新目录 - 你的篮

  6. 选择 " 浏览"选择要下载的更新的位置,然后选择"继续 "。

    Microsoft 更新目录 - 下载选项

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

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

如果Windows更新或 Service Pack 安装成功,则已完成。 如果问题未解决,或者如果系统更新就绪情况工具找不到原因, 请联系我们,以寻求帮助

常见损坏错误的说明

下表列出了可能的错误代码,Windows Update 作为参考:

代码 错误 说明
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写入文件时出错。
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 无法识别用于冻结的匹配组件

系统更新就绪情况工具有什么作用

验证资源的完整性

系统更新就绪情况工具验证以下资源的完整性:

  • 位于以下目录中的文件:
    • %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 或注册表数据时,它可能会用更正的版本替换不正确的数据。

日志记录

系统更新就绪情况工具创建一日志文件,用于捕获工具发现或修复的任何问题。 The 日志文件 is located here:

  • %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 中的错误的更多选项。