本文记录一次在安装 Codex 过程中遇到的 Microsoft Store 更新失败问题。表面现象是 Codex 安装不顺利,根因其实是 Microsoft Store / App Installer / Windows Update 相关服务和缓存队列异常。

问题背景

最开始的问题不是直接表现为“Microsoft Store 坏了”,而是在安装 Codex 时发现安装流程无法继续。继续排查后发现,系统里的 Microsoft Store 自己也无法正常更新,并出现错误代码:

0x80080005

错误页面大致如下:

同时,在 Microsoft Store 的“库 / 更新和下载”页面里,Store 本体一直卡在:

正在开始下载

点击“重试一次”“全部更新”都没有明显效果。

当时的异常现象

现象 说明
Codex 安装受阻 安装依赖的 Store / App Installer 链路不正常
Store 无法更新 页面提示“无法更新 Microsoft Store”
错误代码 0x80080005
下载状态卡住 一直显示“正在开始下载”
Store 版本异常 曾回退到旧版 12107.1001.15.0

根因分析

Microsoft Store 更新并不是只靠 Store 应用自己完成。它还依赖 Windows 的多个系统服务。

关键服务包括:

服务名 作用
wuauserv Windows Update 服务,负责系统更新链路
BITS 后台智能传输服务,负责后台下载
InstallService Microsoft Store 安装服务
ClipSVC 客户端许可证服务,负责 Store 授权
AppXSvc AppX 部署服务,负责 UWP / MSIX 应用部署

这次排查时发现,普通 PowerShell 无法完整启动部分服务,wuauserv 还出现过 0x80070005 拒绝访问状态。也就是说,问题不是简单的“网络慢”,而是 Store 更新依赖链路处在异常状态。

修复思路

整体修复思路如下:

具体修复步骤

以下命令建议在“管理员 PowerShell”中执行。

1. 关闭 Store 和安装相关进程

这一步用于清掉卡住的 Store 窗口、后台任务和 winget 安装队列。

x Get-Process -Name WinStore.App,StoreExperienceHost,backgroundTaskHost,winget,WindowsPackageManagerServer -ErrorAction SilentlyContinue |  Stop-Process -Force -ErrorAction SilentlyContinue

2. 停止相关服务

$services = 'BITS','wuauserv','InstallService','ClipSVC','AppXSvc'

foreach ($svc in $services) {
  Stop-Service $svc -Force -ErrorAction SilentlyContinue
}

3. 清理 Store 和 Windows Update 缓存

$cachePaths = @(
  "$env:LOCALAPPDATA\Packages\Microsoft.WindowsStore_8wekyb3d8bbwe\LocalCache",
  "$env:LOCALAPPDATA\Packages\Microsoft.WindowsStore_8wekyb3d8bbwe\LocalState",
  "$env:LOCALAPPDATA\Packages\Microsoft.StorePurchaseApp_8wekyb3d8bbwe\LocalCache",
  "$env:SystemRoot\SoftwareDistribution\Download",
  "$env:SystemRoot\SoftwareDistribution\DataStore"
)

foreach ($path in $cachePaths) {
  if (Test-Path -LiteralPath $path) {
    Remove-Item -LiteralPath $path -Recurse -Force -ErrorAction Continue
  }
}

这些路径分别对应:

路径 作用
Microsoft.WindowsStore_8wekyb3d8bbwe\LocalCache Store 本地缓存
Microsoft.WindowsStore_8wekyb3d8bbwe\LocalState Store 本地状态
Microsoft.StorePurchaseApp_8wekyb3d8bbwe\LocalCache Store 购买体验组件缓存
SoftwareDistribution\Download Windows Update 下载缓存
SoftwareDistribution\DataStore Windows Update 数据库缓存

4. 重新启动关键服务

foreach ($svc in $services) {
  Start-Service $svc -ErrorAction Continue
}

修复后,关键服务应变成运行状态:

AppXSvc         Running
BITS            Running
ClipSVC         Running
InstallService  Running
wuauserv        Running

5. 重新注册 Microsoft Store

$store = Get-AppxPackage Microsoft.WindowsStore -ErrorAction SilentlyContinue

if ($store) {
  $manifest = Join-Path $store.InstallLocation 'AppxManifest.xml'

  if (Test-Path -LiteralPath $manifest) {
    Add-AppxPackage -DisableDevelopmentMode -Register $manifest -ErrorAction Continue
  }
}

这一步会重新注册 Store 的 AppxManifest.xml,修复 Store 半安装或注册状态异常的问题。

6. 重置 Store 并触发安装通道

wsreset -i

7. 使用 winget 从 Microsoft Store 官方源强制安装

winget install --id 9WZDNCRFJBMP --source msstore --accept-source-agreements --accept-package-agreements --force

成功时会看到类似输出:

已找到 Microsoft Store [9WZDNCRFJBMP]
正在启动程序包安装...
已成功安装

修复结果

最终 Microsoft Store 成功更新,版本如下:

组件 修复后的版本
Microsoft Store 22606.1401.6.0
Microsoft Store 购买体验主机 22605.1401.3.0
App Installer / winget 1.29.280.0

可以用下面命令检查:

'Microsoft.WindowsStore','Microsoft.StorePurchaseApp','Microsoft.DesktopAppInstaller' | ForEach-Object {
  Get-AppxPackage $_ -ErrorAction SilentlyContinue |
    Select-Object Name,Version,PackageFullName
} | Format-Table -AutoSize

然后重新打开 Microsoft Store:

Start-Process 'ms-windows-store:'

如果 Store 可以正常启动,不再出现 0x80080005,说明修复成功。此时再继续安装 Codex,安装链路就不会再被 Store 更新问题卡住。

总结

这次安装 Codex 失败的根因,不是 Codex 安装包本身损坏,而是 Windows 上的 Microsoft Store / App Installer 更新链路异常。

最终有效的修复方式是:

  1. 关闭 Store 和 winget 相关进程。

  2. 用管理员权限修复 BITSwuauservInstallServiceClipSVCAppXSvc

  3. 清理 Store 和 Windows Update 缓存。

  4. 重新注册 Microsoft Store。

  5. 通过 winget install --id 9WZDNCRFJBMP --source msstore --force 从官方 Store 源重新安装 Store。

修好 Microsoft Store 后,Codex 的安装问题也随之解决。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐