前言

这个解决方法并不是我提出来的,是在网络上搜寻得到,转载于博客,方便下次遇到相同的问题时,找不到文章,可以在博客快速找到对应解决方案。从解决方法上看,这个错误是Windows更新服务没有完整启动导致的,当我按照微软社区的解决方法重启服务后,电脑直接显示我已经安装了之前安装失败的应用,看来像是已经安装完毕,但是由于更新服务没有完整启动,所以没有检测到安装成功这种左右脑互博的事情。按照我转载文章的惯例,这里我附上微软社区的回复链接:

https://learn.microsoft.com/zh-cn/answers/questions/3251039/windows10-0xc1900401?forum=windows-all&referrer=answers

正文

关闭服务

Win + S打开搜索,输入 CMD 找到 “命令提示符”,右键以管理员身份打开,依次执行以下命令:

net stop wuauserv
stop cryptSvc
net stop bits
net stop msiserver
ren C:\Windows\SoftwareDistribution SoftwareDistribution.old
ren C:\Windows\System32\catroot2 Catroot2.old

重启服务

完成后,继续依次执行以下命令,重新配置 Windows 更新服务状态:

net start wuauserv
net start cryptSvc
net start bits
net start msiserver

重启电脑并重新检查更新,查看安装效果。

意外应对

如果上述方法无法解决问题,使用 Microsoft Fix it 修复工具,这里为了方便,我将这个工具存在了服务器上方便各位随时取用:

解释

服务介绍

服务名称

全称

作用

wuauserv

Windows Update

负责检查、下载和安装 Windows 更新。所有更新操作都由它调度。

cryptSvc

Cryptographic Services

管理数字签名验证、证书信任列表(CTL)、软件保护策略等。确保系统文件未被篡改,对更新包的完整性校验至关重要。

bits

Background Intelligent Transfer Service

在后台高效传输数据(如 Windows 更新、应用商店下载),利用空闲带宽进行分段下载,支持断点续传。

msiserver

Windows Installer

管理 .msi 安装包的安装、修复、卸载。某些 Windows 更新实际上是 MSI 包,需要此服务支持。

缓存目录

这里稍微引用一下人工智能输出的知识,这些知识比较零散,即使网络搜寻也不好找到十分可用的版本,我就偷下懒了:

1. SoftwareDistribution 目录

  • 路径:C:\Windows\SoftwareDistribution

  • 作用:

    • 存储 Windows Update 下载的更新补丁文件(.cab, .msu 等)。

    • 记录更新状态、日志、安装进度等信息。

  • 为什么重命名?

    • 当该文件夹损坏、部分文件下载不完整或冲突时,会导致更新失败。

    • 重命名为 .old 相当于“备份并清除缓存”,下次启动更新服务时会自动重建该文件夹。

2. Catroot2 目录

  • 路径:C:\Windows\System32\catroot2

  • 作用:

    • 存放代码签名证书吊销列表(CRL)和受信任的发布者证书。

    • 是 Windows 文件签名验证机制的一部分,用于确认更新包来自微软且未被篡改。

  • 为什么重命名?

    • 如果签名数据库损坏,系统可能拒绝安装合法更新。

    • 清除后,系统会在服务重启时从微软服务器重新下载最新的信任列表。

ren C:\Windows\SoftwareDistribution SoftwareDistribution.old
ren C:\Windows\System32\catroot2 Catroot2.old