和 Edge 更新错误搏斗的一天

发布时间:2026-10-02 23:07   浏览量:16
阿伏伽德罗的云端
阿伏伽德罗常数定义了一个 mol 里有 6.022 × 10²³ 个粒子——我也希望这个站点能像 mol 一样,容纳足够多细小的、真实的、不值得被单独拿出来说的东西。







edge更新


一个看似简单的错误
最开始是检查更新时弹出错误:无法创建该组件(错误代码 1: 0X80004005)。我当时想应该很简单,网上一搜,无非就是修复、重置、重启服务这几招。结果查了一圈,不知道怎么解决了。
然后我就想,那就覆盖安装呗。微软官网下载页面点进去,下载了个安装器,运行之后无提示秒退,问题没解决。
MSI 包的安装
我以为是下载器问题,然后下载了 MicrosoftEdgeEnterpriseX64.msi,双击安装,同样出现安装程序窗口一闪就没了,自动退出。右键选修复,也没用。
于是用命令行生成安装日志,拿到日志一看,好家伙——日志末尾写着 Configuration completed successfully,返回码 0。但它把我 Edge 装到 E 盘去了,而我电脑上 C 盘还有一个旧版 150,系统默认启动的还是 C 盘那个旧版。
也就是说,我电脑上同时有两个 Edge:C 盘旧版 150,E 盘新版 154,系统不认 E 盘那个。
卸载重装,被“组织策略”拦住
我想那就把旧版卸了呗。结果卸载的时候提示“组织策略”阻止卸载。查 edge://policy/ 页面,策略列表是空的,但注册表里就是有残留。
试过清注册表、重置组策略缓存、断开工作账户,都没用。最后发现注册表里 HKCU\SOFTWARE\Microsoft\Edge 提示“拒绝访问”,权限拿不到。
彻底删除重装
后来想通了,直接全删了吧。这个过程现在回想起来还是很折腾。
先在管理员 PowerShell 里结束所有 Edge 进程,然后停止、删除更新服务,删掉 C 盘和 E 盘所有的 Edge 程序文件夹,清理注册表。
删完之后发现更新组件文件 MicrosoftEdgeUpdate.exe 压根不存在了。错误代码也从 0x80004005 变成了 0x80040154(类未注册),然后又变成 0x800700C1(不是有效的 Win32 应用程序)。
残留的幽灵服务
清理过程中还发现一个奇怪的残留服务:edgeupdate1dd482a766d4b91。这个服务是之前更新组件损坏后,系统尝试自我修复时留下的无效副本,指向了一个不存在的文件路径。
用 sc.exe delete 删它,提示“指定的服务已标记为删除”,要等重启后才彻底消失。
注册表大作战
后来查注册表,发现了关键线索:

64 位视图:HKLM\SOFTWARE\Classes\CLSID 下,MicrosoftEdgeUpdate 相关项找到 0 匹配
32 位视图:HKLM\SOFTWARE\Classes\Wow6432Node\CLSID 下,找到 37 个匹配(实际是 14 个 CLSID 父项加子项)

这可能是 64 位的 Edge 无法通过 COM 机制调用 32 位的更新组件。我当时以为这是问题根源,就写了个脚本,把 32 位视图里的所有 EdgeUpdate CLSID 复制到 64 位视图,还把 LocalServer32 指向了 C:\Windows\SysWOW64\msiexec.exe。
结果——错误从 0x800700C1 变成了 0x80080005,然后过一阵又变回去了。也没解决。
后来又把那些错误创建的项目全删了。现在注册表恢复到了原来状态:32 位有 14 个 CLSID,64 位为空。
系统服务问题
排查过程中发现 BITS 和 TrustedInstaller 两个服务都处于 STOPPED 状态。BITS 是 Edge 更新下载文件的核心服务,TrustedInstaller 负责安装组件。把它们启动并设为自动后,错误依旧。
分析更新日志
后来搞到了 MicrosoftEdgeUpdate.log,日志里显示更新程序其实跑起来过,下载了安装包,但安装步骤没有成功完成。错误代码一直是 0x800700C1。
现在的状态
目前的情况是:

Edge 版本是 154.0.4258.53,手动重装后的版本
更新检查报错 0x800700C1
注册表结构:32 位有 14 个 CLSID,64 位为空
更新组件文件存在,服务也存在
但更新组件就是无法被正确激活
手动重装后,更新组件从未成功运行过一次,没有一次完整的更新成功

我试过但没用的方法

Edge 自带修复、重置
清理更新缓存
重新注册更新服务
手动删除全部 Edge 文件重装
修改注册表 COM 注册项
启动 BITS 和 TrustedInstaller 服务
检查 DCOM 权限配置
用官方 MSI 覆盖安装
用 Process Monitor 抓失败点
重新注册 COM 组件(MicrosoftEdgeUpdate.exe /regserver)
从 MSI 提取 EdgeUpdate 文件夹替换(考虑过,但没实施)

最后
这整件事最无奈的是,错误代码一直在变,从 0x80004005 到 0x80040154 到 0x800700C1 再到 0x80080005,每次都以为能成,结果一点没解决,啥原因也没搞清楚。
微软官方说这个 0x800700C1 错误在 EdgeUpdate 1.3.237.7 版本中修复了,我的版本是 1.3.273.21,按理说已经高于修复版本。但问题依然存在,说明可能不是更新程序本身的问题。
现在我也不知道该怎么办了。如果谁有类似经历或者知道怎么解决,欢迎告诉我。我实在是不想再重复那些已经试过一百遍的步骤了。

本文章部分内容经 AI 修改

查看原文

该站点最新相关文章