13 mins
2687 words
Loading views
Claude Desktop 在 Windows 上完整安装与 Cowork 排障实录

从 ClaudeSetup.exe 下载报 unexpected EOF 到 MSIX 离线安装成功 + CoworkVMService 正常运行的完整排查过程,涵盖 winget/MSIX 安装差异、服务冲突清理、VirtualMachinePlatform 启用等关键步骤。

Claude Desktop 在 Windows 上完整安装与 CoworkVMService 排障实录h1

本文记录了一次从 ClaudeSetup.exe 下载 MSIX 中途报 unexpected EOF 一路排查到 MSIX 离线安装成功 + CoworkVMService 正常运行的完整过程,包含所有走过的弯路、踩到的坑和正确解法。

环境信息:

  • 系统:Windows 11 Professional,Build 10.0.26200
  • 架构:x64
  • 当前账户:Administrator
  • 现象起点:ClaudeSetup.exe 下载到 30%~50% 反复 unexpected EOF,3 次重试全部失败

一、根因总结(先看结论)h2

整个排查链上其实有三个独立但叠加的问题:

  1. ClaudeSetup.exe 的在线下载链路不稳定——拉 api.anthropic.com 的 220MB MSIX 大文件经常在中段被截断(这是日志里 unexpected EOF 的直接原因)。
  2. 历史残留的 CoworkVMService——之前装过的 MSIX 版本留下了同名服务,新安装包注册时被冲突阻断。
  3. winget 仓库里 Anthropic.Claude 是 Squirrel 版 EXE,不带 Cowork 组件——用 winget 装能装上 Claude 主程序,但不会附带 CoworkVMService,要 Cowork 必须装官方 MSIX 包。

最终成功路径:手动浏览器下载 MSIX → 管理员 PowerShell Add-AppxPackage 离线安装 → CoworkVMService 自动注册并启动。


二、前置准备h2

2.1 确认管理员权限h3

整个流程全程必须在管理员 PowerShell 里执行(开始菜单搜 PowerShell → 右键 → 以管理员身份运行)。验证方法:

Terminal window
([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)

返回 True 才能继续。本次实操返回 True,通过。

2.2 关闭所有相关进程h3

Terminal window
Get-Process claude, Cowork, CoworkVM, chrome-native-host -ErrorAction SilentlyContinue | Stop-Process -Force

三、清理多版本 Claude 残留(关键的第一步)h2

3.1 用 winget 卸载,处理”多个版本”报错h3

第一次执行卸载:

Terminal window
winget uninstall -e --id Anthropic.Claude

遇到的问题:报错

Multiple versions of this package are installed. Either refine the search, pass the `--version` argument to select one, or pass the `--all-versions` flag to uninstall all of them.

原因:之前装过不同版本的 Claude(包括 MSIX 版和 Squirrel 版),winget 检测到多个版本,需要明确告诉它”全部卸掉”。

正确做法:加 --all-versions 参数:

Terminal window
winget uninstall -e --id Anthropic.Claude --all-versions

⚠️ 重要警示:--all-versions 会把 MSIX 版也一起卸掉。这一步在初次清理时是对的,但在 MSIX 安装成功之后绝对不能再跑这条命令,否则会把 CoworkVMService 一起注销(本次实操就在尾声踩了这个坑,详见第八节)。

确认卸载干净:

Terminal window
winget list --id Anthropic.Claude

应该返回 No installed package found matching input criteria.

3.2 卸载 MSIX 层残留h3

Terminal window
Get-AppxPackage -AllUsers *Claude* | Remove-AppxPackage -AllUsers -ErrorAction SilentlyContinue
Get-AppxPackage -AllUsers *Anthropic* | Remove-AppxPackage -AllUsers -ErrorAction SilentlyContinue
Get-AppxProvisionedPackage -Online | Where-Object { $_.DisplayName -like "*Claude*" -or $_.DisplayName -like "*Anthropic*" } | Remove-AppxProvisionedPackage -Online -ErrorAction SilentlyContinue

这三条把 MSIX 包(含所有用户、机器级 Provisioned 包)一并清掉。

3.3 清理残留的 CoworkVMService(核心步骤)h3

这是 ClaudeSetup.logCoworkVMService already exists (potential conflict) 警告的根源——必须删掉。

Terminal window
Get-Service CoworkVMService -ErrorAction SilentlyContinue
Stop-Service CoworkVMService -Force -ErrorAction SilentlyContinue
sc.exe delete CoworkVMService
Get-Service CoworkVMService -ErrorAction SilentlyContinue

最后一条 Get-Service 没有任何输出,说明服务已彻底清除。

注意:sc.exe 后面必须有空格,是调用 sc.exe 而不是 PowerShell 别名 Set-Content

3.4 清理用户目录和注册表残留h3

Terminal window
Remove-Item -Recurse -Force "$env:LOCALAPPDATA\AnthropicClaude" -ErrorAction SilentlyContinue
Remove-Item -Recurse -Force "$env:APPDATA\Claude" -ErrorAction SilentlyContinue
Remove-Item -Recurse -Force "$env:LOCALAPPDATA\Packages\*Claude*" -ErrorAction SilentlyContinue
$key = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModel\StateChange\PackageList"
Get-ChildItem $key -ErrorAction SilentlyContinue | Where-Object { $_.PSChildName -like "*Claude*" } | Remove-Item -Recurse -Force -ErrorAction SilentlyContinue

🔄 第一次重启h3

清理完服务和 MSIX StateChange 注册表后,必须重启电脑一次,让服务删除和包状态彻底落盘。这一步千万不能省,否则后续注册新服务时还会撞上”幽灵服务”。


四、启用 Windows 必要功能h2

Cowork 依赖虚拟化平台跑沙箱,这一步是 CoworkVMService 能否真正运行的硬性条件。

4.1 启用功能h3

Terminal window
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -All -NoRestart
Enable-WindowsOptionalFeature -Online -FeatureName Containers-DisposableClientVM -All -NoRestart

遇到的问题:Windows 在启用功能时弹出报错(具体错误码未记录,但功能后续被验证为已启用)。

4.2 检测功能是否真的启用了h3

踩坑:尝试用一条命令查两个功能:

Terminal window
Get-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform, Containers-DisposableClientVM | Format-List FeatureName, State, RestartRequired

报错:

无法将"System.Object[]"转换为参数"FeatureName"所需的类型"System.String"。

原因:-FeatureName 只接受一个字符串,不支持数组。

正确做法(两种任选):

方法 A——分两条 PowerShell 命令:

Terminal window
Get-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform | Format-List FeatureName, State, RestartRequired
Get-WindowsOptionalFeature -Online -FeatureName Containers-DisposableClientVM | Format-List FeatureName, State, RestartRequired

方法 B——用 DISM(输出更详细):

Terminal window
DISM /Online /Get-FeatureInfo /FeatureName:VirtualMachinePlatform
DISM /Online /Get-FeatureInfo /FeatureName:Containers-DisposableClientVM

4.3 检测结果h3

本次实操经过重启后两个功能状态如下:

功能名状态是否必需
VirtualMachinePlatform✅ 已启用必需(Cowork 沙箱底层依赖)
Containers-DisposableClientVM(Windows 沙箱)✅ 已启用可选(Cowork 不强依赖)

关键认知:对 Cowork 真正必需的只有 VirtualMachinePlatform,Windows 沙箱启用失败也能继续,但本次两个都成功启用。

🔄 第二次重启h3

启用 VirtualMachinePlatform 后必须再重启一次,Hyper-V 虚拟化层才会真正加载到内核。哪怕 State 显示 EnabledRestartRequired: Possible,也要重启。这次重启不能省。


五、第一次安装尝试:winget 装上了但没 Coworkh2

5.1 用 winget 安装h3

Terminal window
winget install -e --id Anthropic.Claude --accept-package-agreements --accept-source-agreements

输出显示成功安装版本 1.8555.2,下载地址是:

https://downloads.claude.ai/releases/win32/x64/1.8555.2/Claude-a476c316c741715263e34f9c9d2bc45b6d0f21c7.exe

winget list --id Anthropic.Claude 也能查到。

5.2 检查 MSIX 包和 Cowork 服务h3

Terminal window
Get-AppxPackage -AllUsers *Claude* | Select-Object Name, PackageFullName, InstallLocation, Status

结果为空,没有任何输出。

Terminal window
Get-ChildItem "$env:LOCALAPPDATA\AnthropicClaude" -Recurse -Filter "claude.exe" -ErrorAction SilentlyContinue | Select-Object FullName

输出:

  • C:\Users\Administrator\AppData\Local\AnthropicClaude\claude.exe
  • C:\Users\Administrator\AppData\Local\AnthropicClaude\app-1.8555.2\claude.exe
Terminal window
Get-ChildItem "$env:LOCALAPPDATA\AnthropicClaude" -Recurse -Include "*Cowork*.exe","*cowork*.exe" -ErrorAction SilentlyContinue

搜不到任何 Cowork 可执行文件。

5.3 关键诊断结论h3

目录里有 Squirrel-CheckForUpdate.logUpdate.exepackages 这些典型的 Squirrel 框架文件,说明:

  • winget 装的是 Squirrel 打包的传统 EXE 应用,不是 MSIX
  • Squirrel 版本不包含 Cowork 组件,自然 Get-AppxPackage 查不到、Cowork*.exe 搜不到、服务也不存在
  • 要 Cowork 必须改装官方 MSIX 包

六、第二次安装尝试:官方 MSIX 离线安装(成功路径)h2

6.1 卸载 Squirrel 版h3

Terminal window
winget uninstall -e --id Anthropic.Claude
Remove-Item -Recurse -Force "$env:LOCALAPPDATA\AnthropicClaude" -ErrorAction SilentlyContinue

6.2 手动下载官方 MSIX 包h3

在浏览器里访问 Claude 官方部署文档:

https://support.claude.com/en/articles/12622703-deploy-claude-desktop-for-windows

下载 Claude MSIX (x64),保存到 C:\Users\Administrator\Downloads\Claude.msix

为什么浏览器能下、ClaudeSetup.exe 下不动?

ClaudeSetup.exe 自带的下载器没有断点续传,遇到网络中断就直接 unexpected EOF 然后从头重来;浏览器有断点续传和更稳的 TCP 重传策略,对 220MB 大文件友好得多。

如果浏览器也下不动:换手机热点 / VPN,或用 IDM、aria2、Free Download Manager 这种支持断点续传的下载工具。

下载完务必校验文件大小:

Terminal window
Get-Item "C:\Users\Administrator\Downloads\Claude.msix" | Select-Object Name, Length, LastWriteTime

Length 应在 220,000,000 字节附近。如果远小于这个值,说明下载又被截断了,必须重下。

6.3 管理员 PowerShell 安装 MSIXh3

Terminal window
Add-AppxPackage -Path "C:\Users\Administrator\Downloads\Claude.msix"

无任何报错输出,瞬间完成。

6.4 验证安装结果(关键检查点)h3

Terminal window
Get-AppxPackage -AllUsers *Claude* | Select-Object Name, PackageFullName, InstallLocation, Status

输出:

Name PackageFullName InstallLocation Status
---- --------------- --------------- ------
Claude Claude_1.8555.2.0_x64__pzs8sxrjxfjjc C:\Program Files\WindowsApps\Claude_1.8555.2.0_x64__pzs8sxrjxfjjc Ok

Status: Ok,路径在系统级 C:\Program Files\WindowsApps,完美。

Terminal window
Get-Service CoworkVMService -ErrorAction SilentlyContinue | Format-List Name, Status, StartType, DisplayName, BinaryPathName

输出:

Name : CoworkVMService
Status : Running
StartType : Automatic
DisplayName : Claude

🎉 CoworkVMService 自动注册并自动启动,状态 Running,启动类型 Automatic,全部到位。

关键认知:MSIX 包内嵌的服务注册逻辑会在 Add-AppxPackage 时自动调用,不需要手动 sc.exe create。前面之所以准备好了手动注册命令,是为了应对自动注册失败的兜底场景。


七、为什么 MSIX 方案能一次成功h2

维度ClaudeSetup.exe 在线安装winget 安装MSIX 离线安装(成功)
网络稳定性要求极高(无断点续传)中(winget 自带重试)零(本地文件)
是否包含 Cowork✅ 包含❌ 不包含✅ 包含
服务自动注册✅ 包含❌ 不包含✅ 包含
安装路径用户级 Squirrel用户级 Squirrel系统级 WindowsApps
权限要求标准用户即可(但易失败)标准用户即可管理员 PowerShell

MSIX 是 Microsoft 现代应用打包格式,签名、沙箱、注册全部由系统接管,比 Squirrel EXE 稳定得多,这也是 Anthropic 官方部署文档主推它的原因。


八、收尾踩坑警示:千万别再跑 winget uninstall --all-versionsh2

MSIX 装好后,为了清理 Squirrel 残留,跑了:

Terminal window
Remove-Item -Recurse -Force "$env:LOCALAPPDATA\AnthropicClaude" -ErrorAction SilentlyContinue # ✅ 这条没问题
winget uninstall -e --id Anthropic.Claude --all-versions # ❌ 这条把 MSIX 一起卸了

结果:

Terminal window
Get-AppxPackage -AllUsers *Claude* # 空输出
Get-Service CoworkVMService # 找不到服务

根因:winget 仓库里 Anthropic.Claude 这个 ID 同时挂着 Squirrel 和 MSIX 两个 manifest,--all-versions 会把所有形态的安装都卸掉。

正确做法:

  • 清理 Squirrel 残留只需要删 $env:LOCALAPPDATA\AnthropicClaude 目录,不需要再跑 winget 卸载。
  • MSIX 装好后,今后所有升级和管理都不要再用 winget,去官方页下载新 MSIX,Add-AppxPackage -Path 覆盖安装即可。

恢复方案:再跑一次 MSIX 安装:

Terminal window
Add-AppxPackage -Path "C:\Users\Administrator\Downloads\Claude.msix"
Get-AppxPackage -AllUsers *Claude* | Select-Object Name, Status
Get-Service CoworkVMService | Format-List Name, Status, StartType

Status: OkRunning 都回来即可。


九、最终验证清单h2

最终成功状态应满足所有下列条件:

Terminal window
# 1. MSIX 包正常注册
Get-AppxPackage -AllUsers *Claude*
# 期望:Status = Ok,PackageFullName 类似 Claude_1.8555.2.0_x64__pzs8sxrjxfjjc
# 2. Cowork 服务运行中
Get-Service CoworkVMService
# 期望:Status = Running,StartType = Automatic
# 3. 虚拟化平台已启用
Get-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
# 期望:State = Enabled
# 4. winget 列表里不应再有 Claude(避免后续误操作)
winget list --id Anthropic.Claude
# 期望:No installed package found

从开始菜单启动 Claude,登录账号,应能正常使用 Cowork 功能。


十、完整时间线复盘h2

阶段关键动作重启结果
1确认管理员权限True
2winget uninstall --all-versionsSquirrel 版卸干净
3Remove-AppxPackage + Remove-AppxProvisionedPackageMSIX 残留清理
4sc.exe delete CoworkVMService幽灵服务删除
5清理 LOCALAPPDATA、注册表 PackageList🔄 重启 #1状态落盘
6Enable-WindowsOptionalFeature VirtualMachinePlatform🔄 重启 #2虚拟化平台 Enabled
7winget install Anthropic.ClaudeSquirrel 版装上,但无 Cowork
8winget uninstall + 删 AnthropicClaude 目录Squirrel 版卸掉
9浏览器下载 Claude.msix(220MB)文件完整
10Add-AppxPackage -Path Claude.msixMSIX 装上 + CoworkVMService 自动 Running ✅
11误跑 winget uninstall --all-versionsMSIX 被一并卸掉 ❌
12重新 Add-AppxPackage恢复成功 ✅

十一、几条带走的经验h2

网络层经验:api.anthropic.com 对国内大文件下载链路不稳,永远优先用浏览器或断点续传工具拉 MSIX,不要依赖 ClaudeSetup.exe 自己下。

安装方式经验:要 Cowork 就必须装 MSIX,winget 仓库里那个 Anthropic.Claude 是 Squirrel 版不带 Cowork,别浪费时间。

服务管理经验:MSIX 包会自动注册 CoworkVMService,不需要也不应该手动 sc.exe create;遇到”服务已存在”的冲突,老老实实先 sc.exe delete 清理再装。

重启经验:服务删除后要重启一次(让删除落盘),启用 VirtualMachinePlatform 后要再重启一次(让虚拟化内核加载),两次重启都不能省。

winget 经验:MSIX 装好后,永远不要再对 Anthropic.Claude 这个 ID 跑 winget uninstall,否则会连带卸掉 MSIX。今后升级走”下新 MSIX → Add-AppxPackage 覆盖”即可。

功能检测经验:Get-WindowsOptionalFeature -FeatureName 不接受数组,要么分多条跑,要么改用 DISM /Online /Get-FeatureInfo

整套流程跑下来,从最初 unexpected EOF 到最后 CoworkVMService: Running,问题已全部解决,记录完毕。

Comments