Windows | 更新工作原理 / 更新损坏 / 安装失败修复

注:本文为 “Windows | 更新” 相关合辑。
中文引文,略作重排。
如有内容异常,请看原文。


修复 Windows 更新损坏及安装失败指南

一、概述

本文介绍使用部署映像服务和管理(DISM)工具,修复因 Windows 更新损坏导致的安装失败问题。

二、Windows 更新工作原理

(一)流程

  1. 扫描:Windows 更新 Orchestrator 随机检查更新服务器,评估更新适用性(基于发布者准则、组策略等),支持完全/增量、联机/脱机等扫描类型。

  2. 下载:确定适用更新后,通过传递优化下载文件至临时文件夹,由仲裁程序暂存。

  3. 安装:仲裁程序生成“操作列表”(包含所需文件及安装指令),提交给安装代理(如 CBS)执行安装。

  4. 提交:安装完成后自动重启设备(可通过组策略等配置重启时机),确保更新生效。

(二)关键术语

 

术语定义
捆绑包更新包含 1-N 个子更新的集合,无有效负载
子更新被捆绑的叶更新,包含有效负载
检测器更新仅含适用性规则的特殊更新,用于先决条件评估
完全扫描使用空数据存储的扫描
增量扫描基于缓存数据的扫描
联机/脱机扫描分别依赖网络或本地数据存储的扫描

三、Windows 更新损坏常见错误代码

Windows 更新安装失败常与损坏错误相关,可通过安装程序事件日志查看。常见错误代码及说明如下:

代码错误标识说明
0x80070002ERROR_FILE_NOT_FOUND系统找不到指定文件
0x800f0831CBS_E_STORE_CORRUPTIONCBS 商店已损坏
0x8007000DERROR_INVALID_DATA数据无效
0x800F081FCBS_E_SOURCE_MISSING找不到程序包或文件的源
0x80073712ERROR_SXS_COMPONENT_STORE_CORRUPT组件存储处于不一致状态
0x800736CCERROR_SXS_FILE_HASH_MISMATCH组件文件与清单验证信息不匹配
0x800705B9ERROR_XML_PARSE_ERROR无法分析请求的XML数据
0x80070246ERROR_ILLEGAL_CHARACTER遇到无效字符
0x8007370DERROR_SXS_IDENTITY_PARSE_ERROR标识字符串格式错误
0x8007370BERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME标识中属性名不在有效范围
0x8007370AERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE标识中属性值不在有效范围
0x80070057ERROR_INVALID_PARAMETER参数不正确
0x800B0100TRUST_E_NOSIGNATURE主题中没有签名
0x80092003CRYPT_E_FILE_ERRORWindows Update读写文件时出错
0x800B0101CERT_E_EXPIRED证书不在有效期内
0x8007371BERROR_SXS_TRANSACTION_CLOSURE_INCOMPLETE一个或多个事务成员不存在
0x80070490ERROR_NOT_FOUND无法搜索新更新
0x800f0984PSFX_E_MATCHING_BINARY_MISSING匹配组件目录存在但二进制文件缺失
0x800f0986PSFX_E_APPLY_FORWARD_DELTA_FAILED应用正向增量失败
0x800f0982PSFX_E_MATCHING_COMPONENT_NOT_FOUND无法识别用于冻结的匹配组件

四、Windows 更新故障分析与排除

(一)基础排查步骤

  1. 运行诊断工具:打开管理员命令提示符,执行命令:
Dism /online /cleanup-image /restorehealth
  1. 重启计算机:完成上一次更新的挂起操作,确保新更新可应用。

  2. 安装最新服务堆栈更新:参考最新服务堆栈更新,或在对应Windows版本更新历史中查找。

  3. 修复Windows文件损坏:详情见修复 Windows 文件损坏。

  4. 手动下载并安装更新

  • 访问 Microsoft 更新目录,搜索更新编号并下载对应系统版本的更新包。

  • 若需跳过适用性检查,管理员命令提示符中执行:

    Dism /online /add-package /packagepath:<path_to_package> /IgnoreCheck
    

(二)常见问题及解决方案

1. 错误:更新不适用于此计算机

  • 检查更新是否被取代:确认更新包包含比系统现有版本更新的二进制文件,或是否被新包取代。

  • 验证是否已安装:确认目标更新未在系统中安装。

  • 匹配体系结构:确保更新与 Windows 版本(如 Server 2019 不可用于Server 2016)及处理器体系结构(如 x86 不可用于 x64)一致。

  • 安装先决条件更新:参考更新相关文章,确认已安装必备更新(如 Windows 10 22H2 需先安装KB50282445 等),可通过 PowerShell 验证:

    Get-HotFix KB50282445, KB5031539
    

2. 设备未收到已部署的更新

3. 设备接收未部署的更新

  • 检查设备是否扫描 Windows 更新服务而非其他终结点(如 WSUS)。

  • 功能更新需确认设备是否成功注册到部署服务(未注册可能按延迟期接收其他更新)。

六、使用 DISM 自动修复

(一)DISM 工作原理

  • 检查范围:目录的文件 %SYSTEMROOT%\Servicing\Packages%SYSTEMROOT%\WinSxS\Manifests, 以及注册表项数据HKEY_LOCAL_MACHINE\Components等。

  • 修复逻辑:检测到不正确的清单、内阁或注册表数据时,替换为正确版本。

  • 日志位置%SYSTEMROOT%\Logs\CBS\CBS.log%SYSTEMROOT%\Logs\CBS\CBS.persist.log

(二)适用版本

Windows 11、Windows 10、Windows Server 2016 及更高版本。

(三)基础修复步骤

  1. 打开管理员命令提示符:开始菜单搜索“命令提示符”,右键选择“以管理员身份运行”。

  2. 执行 DISM 命令

    DISM.exe /Online /Cleanup-image /Restorehealth
    

    (需连接 Microsoft 更新服务器获取修复文件;若无法联网,可指定修复源,如:

    DISM.exe /Online /Cleanup-Image /RestoreHealth /Source:\\<servername>\c$\winsxs /LimitAccess
    

    其中<servername>为同版本操作系统的计算机名。)

  3. 运行系统文件检查

    sfc /scannow
    
  4. 重新运行 Windows 更新:关闭命令提示符后尝试更新。

七、手动修复

1. 分析 CBS.log 文件

  • 路径:%WinDir%\Logs\CBS\CBS.log,记录扫描结果及错误(如“CSI Payload Corrupt”表示文件损坏,“CBS MUM Missing”表示包缺失)。

2. 下载缺失文件

3. 提取.msu和.cab文件

  • 创建文件夹:`

    mkdir C:\temp\Source
    
  • 使用 PowerShell 脚本提取文件(脚本需指定.msu/.cab文件路径和目标路径,可处理嵌套.cab文件)。

4. 修复损坏文件

  • 将正确文件复制到C:\temp\Source

    Copy-Item "C:\path\extractedFiles\corruptedfile.dll" -Destination "C:\temp\Source"
    
  • 重新运行DISM命令:

    DISM /Online /Cleanup-Image /RestoreHealth /Source:C:\temp\Source\ /LimitAccess
    

5. 验证修复结果

  • 执行扫描命令确认:

    DISM /Online /Cleanup-Image /ScanHealth
    
  • 检查CBS.log确保无剩余错误。


via:


24H2 - how to remove the two (un)reclaimable that always show in DISM

Thread starter Bree Start date Mar 27, 2025

dism /online /remove-package /packagename:Package_for_RollupFix~31bf3856ad364e35~amd64~~26100.1742.1.10

Then…

Dism.exe /online /Cleanup-Image /StartComponentCleanup

Then…

Dism /Online /Cleanup-Image /AnalyzeComponentStore

via:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值