Windows上Claude Code启动报错?一文教你开启虚拟机平台彻底解决
2026/9/17 8:29:09 网站建设 项目流程

最近在 Windows 上折腾 Claude Code,相信不少人和我一样,被 “Claude’s workspace requires the virtual machine platform on Windows. Enable…” 这段提示卡住了好一阵子。我一开始也以为是 Claude Code 安装包的问题,重装了好几遍,结果错误依旧,后来才搞清楚是 Windows 系统底层的虚拟机平台没打开。这篇文章就把我完整的排查和解决过程记录下来,从报错原因、底层原理到具体操作、VSCode 集成配置,一次性说清楚,给同样被卡住的朋友一份可以直接照做的方案。

1. 认识 Claude Code 与底层工作区环境

1.1 Claude Code 是什么,解决什么问题

Claude Code 是 Anthropic 官方推出的终端编程助手,它不是一个简单的聊天窗口,而是能直接运行在命令行里、读取你项目目录、修改文件、执行测试命令的 Agent 型工具。你可以把它理解为团队里多了一个随叫随到的高级程序员:你跟它说“帮我分析一下这个仓库的代码结构”,它会真的在终端里遍历文件、输出分析报告;你说“给这段函数补上单元测试”,它不只是给你贴代码,而是直接把测试文件写到项目目录里。这种交互模式和传统“复制粘贴型”AI 工具有本质区别。

但在实际使用中,Claude Code 的 Windows 版依赖一个特殊的运行环境——Claude’s Workspace——它本质上是构建在 Windows 虚拟机平台(Virtual Machine Platform)之上的隔离沙箱。这个沙箱负责托管 Claude Code 运行所需的轻量级 Linux 子系统,让 CLI 工具链在 Windows 上运行时拥有和 Linux 一致的兼容性。很多 Windows 用户在安装后第一次运行 claude 命令时,终端可能报错提示 “Claude’s workspace requires the virtual machine platform on Windows. Enable the Windows Hypervisor Platform and Virtual Machine Platform features.” 或者在 VSCode 里启动 Claude Code 扩展时直接弹出 “failed to start Claude’s workspace” 的报错弹窗。这两类提示其实都是同一个根源:系统没有完整开启虚拟化相关功能。

1.2 为什么 Windows 上必须开虚拟机平台

Windows 上的 Claude Code 工作区不是用 WSL 传统发行版实现的,而是依赖 Windows Hypervisor Platform(WHP)和 Virtual Machine Platform(VMP)这两个系统功能来创建轻量级虚拟机。打个比方,Claude 的 workspace 相当于在 Windows 里搭建了一个隔离的“运行舱”,舱内跑了 Linux 内核模块,而这些功能必须由宿主机(也就是你的 Windows 系统)提供虚拟化底层能力。如果这两个系统功能没启用,或者 BIOS 层面的虚拟化被关闭,那 workspace 就起不来,自然就会出现上面那两类报错。

更关键的是,很多教程只告诉你要装 WSL2,却没告诉你 Claude Code 需要的是比单纯 WSL2 更底层的虚拟机平台。如果你之前只是装了 WSL2 但没有打开“虚拟机平台”功能,Claude Code 启动时依然检测不到虚拟化能力,照样报错。这也是为什么很多人明明 WSL 好好的,一跑 Claude Code 就翻车。

2. 排查报错根源:从现象到系统底层

2.1 从报错文案反推系统状态

当你在终端里输入claude然后看到类似下面的信息时,先别急着卸载重装:

Claude's workspace requires the virtual machine platform on Windows. Enable the "Virtual Machine Platform" and "Windows Hypervisor Platform" features and try again.

或者你在 VSCode 的 Claude Code 插件面板里看到:

Failed to start Claude's workspace

这两种提示其实已经说得很明白:系统缺少两个关键功能。但很多人不理解的是,明明 Windows 11 默认已经开启了 Hyper-V 相关能力,为什么还提示缺失?这是因为 Windows 系统为了兼顾性能,默认并不会完整开启所有虚拟化功能,尤其是“虚拟机平台”和“Windows 虚拟机监控程序平台”这两个。它们属于“可选功能”,需要手动开启。

2.2 检查 CPU 虚拟化是否真的开启

还有一个容易忽略的点:即使系统功能全部打开,如果 CPU 的虚拟化在 BIOS 中被关闭,一切等于白搭。检查方法很简单:按Ctrl + Shift + Esc打开任务管理器,切到“性能”选项卡,点左下角的“CPU”,看右下角“虚拟化”一栏。显示“已启用”就正常;显示“已禁用”或“未开启”,就需要进入 BIOS(通常开机按 Del、F2 或 F10)找到类似 Intel Virtualization Technology 或 SVM Mode 的选项并打开。

我试过一台较早的 i5 笔记本,Windows 11 下功能都开了,但 BIOS 里 VT-x 被误关了,Claude Code 一样报 workspace 无法启动。这一点很多网上教程没有提到,属于最容易忽略的坑。如果你在系统日志里看到Hyper-V相关错误,八成和这一步有关。

2.3 快速判定当前虚拟化状态

除了任务管理器,你还可以用命令行快速判断。以管理员身份打开 PowerShell,运行:

systeminfo

在输出中找“Hyper-V 要求”这一段。如果看到:

Hyper-V 要求: 已检测到虚拟机监控程序。将不显示 Hyper-V 所需的功能。

说明虚拟化已经可用。如果看到类似“固件中已启用虚拟化: 是”,说明 BIOS 层面 OK;如果“固件中已启用虚拟化: 否”,就按上面说的去 BIOS 打开。还有另一种常见情况,系统显示“虚拟机监控程序未运行”,但固件虚拟化是启用的,那大概率就是 Windows 可选功能没开齐,正好对上我们接下来的操作步骤。

3. 完整修复步骤:从功能开启到 Claude 正常跑起来

3.1 开启 Windows 虚拟机平台与 hypervisor 平台

我先说结论:Claude Code 在 Windows 上成功运行,至少需要四个系统组件协同工作:

  • Virtual Machine Platform(虚拟机平台)
  • Windows Hypervisor Platform(Windows 虚拟机监控程序平台)
  • Windows Subsystem for Linux(可选,但强烈建议装)
  • 虚拟机监控程序(Hyper-V 底层)

具体开启路径有两种,我分别说。

方法一:图形界面开启

  • Win + R,输入optionalfeatures,回车打开“Windows 功能”窗口。
  • 依次勾选:
    • “虚拟机平台”
    • “Windows 虚拟机监控程序平台”
    • “适用于 Linux 的 Windows 子系统”(如果你想顺带使用 WSL)
    • “虚拟机监控程序平台”(有些系统版本显示为“Hyper-V”)

注意:如果你平时不用 Hyper-V 管理工具,不要勾选“Hyper-V”完整项,只勾上面这几个轻量级功能即可。完整 Hyper-V 会接管整个系统的虚拟化层,有时候和第三方虚拟机软件(如 VirtualBox、VMware)冲突,反而会带来别的麻烦。

  • 点击“确定”,系统会提示重启,保存好手头的工作再重启。

方法二:命令行一键开启(推荐,省事)

以管理员身份打开 PowerShell,逐条执行以下命令:

dism /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart dism /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism /online /enable-feature /featurename:HypervisorPlatform /all /norestart

如果第三条提示找不到功能名,可以换成:

dism /online /enable-feature /featurename:Windows-Hypervisor-Platform /all /norestart

全部执行完后,重启电脑。

3.2 验证功能是否真正生效

重启后别急着跑 Claude Code,先用命令行验证一下功能是否真的打开了。在 PowerShell 里执行:

Get-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

看输出里的State是否为Enabled。同理检查HypervisorPlatform。两个都显示 Enabled 之后再继续下一步,省得又白折腾一轮。

另外,如果你之前从来没有安装过 WSL2 内核,建议顺手更新一下。虽然 Claude Code 自带 workspace 不强制依赖用户手动装的 WSL 发行版,但底层还是需要 WSL2 的内核模块支持。打开管理员 PowerShell 执行:

wsl --update

看到“已安装最新版本的 Linux 内核”之类的提示就说明 OK。如果这条命令报错,也可以去微软官方文档下载 WSL2 内核更新包手动安装。我遇到过一次 Windows 10 老版本下wsl --update不受支持的情况,手动下载安装包解决。

3.3 安装 Claude Code CLI:npm 与 native 安装对比

系统虚拟化问题解决后,Claude Code 本身的安装就顺畅多了。目前主流安装方式有两种,我分别说下适用场景。

方式一:npm 全局安装(最通用,推荐新手)

先确保 Node.js 环境存在(建议 18 以上版本),然后以管理员身份运行:

npm install -g @anthropic-ai/claude-code

安装完成后,直接在任意终端输入:

claude

如果配置正确,终端会进入交互式对话界面。这种方式的好处是升级方便:

npm update -g @anthropic-ai/claude-code

方式二:PowerShell 原生安装(不需要 Node.js)

Claude Code 也提供了独立安装脚本,运行下面的命令:

irm https://claude.ai/install.ps1 | iex

或者用 curl:

curl -fsSL https://claude.ai/install.sh | bash

这个方式的优势是不依赖 Node.js 环境,适合不想装一堆开发运行时的用户。但注意,国内直连 claude.ai 的速度可能不稳定,如果下载很慢,可以稍后重试或考虑配置代理环境变量(这里不做展开)。

3.4 验证 Claude Code 是否能识别 workspace

安装好后,先在一个空目录里运行claude,看它能否正常进入对话。如果一切正常,你可以输入个简单指令测试,比如:

/status

或者直接让它打印一句自我介绍。如果 workspace 还是有问题,大概率是系统功能没重启生效,或者杀毒软件拦截了虚拟化进程,需要去 Windows 安全中心检查“内核隔离”和“基于虚拟化的安全”设置。我遇到过一位朋友的电脑,系统功能全开了,但 Windows Defender 的内核隔离功能挡了虚拟机平台,导致 Claude Code 一直 failed to start workspace,关掉内核隔离的“内存完整性”选项后就好了。

4. VSCode 集成配置实操

4.1 安装 Claude Code 扩展并绑定 CLI

大多数人不会只用纯命令行,在 VSCode 里跑 Claude Code 是刚需。VSCode 里使用 Claude Code 有两种主流方式:一是通过官方扩展市场搜索“Claude Code”安装插件(注意别装错仿冒扩展,认准 Anthropic 官方的),二是在 VSCode 的终端面板里直接运行claude命令。前者体验更丝滑,后者更像传统终端流。

官方扩展安装后在侧边栏会出现 Claude Code 面板,首次使用会让你选择或登录 API 账号。登录成功后,扩展会调用系统安装的 Claude Code CLI,如果你前面已经 npm 装好,扩展一般能自动检测到。检测不到时,需要在 VSCode 设置里手动指定 claude 可执行文件的路径。Windows 下 npm 全局包的路径一般在:

C:\Users\你的用户名\AppData\Roaming\npm\claude.cmd

在 VSCode 设置里搜索 claude,找到相关配置项,填上这个完整路径即可。

4.2 解决 VSCode 内常见报错

VSCode 里几个典型问题,我按频率排个序:

  • failed to start Claude’s workspace:这个在前面已经解了,核心就是虚拟化功能和内核。还有一个小概率是 VSCode 本身权限不足,建议用管理员身份运行 VSCode。
  • 终端中文乱码:Claude Code 输出中文时偶尔会乱码,这是因为 Windows 终端默认代码页和 UTF-8 冲突。在 VSCode 设置里搜索terminal.integrated.defaultProfile.windows,把默认终端改成Command Prompt,然后在设置 JSON 里加:
"terminal.integrated.env.windows": { "PYTHONIOENCODING": "utf-8", "LANG": "zh_CN.UTF-8" }
  • 扩展加载后空白:多半是 API 代理配置问题或网络问题。Claude Code 支持通过环境变量走代理,比如:
set HTTPS_PROXY=http://127.0.0.1:7890

设置后重启 VSCode 再看。

4.3 VSCode 和命令行模式怎么选

我用下来最大的感受是:VSCode 扩展适合边看代码边对话的场景。选中文案时会直接高亮引用代码片段,点一下就能定位到文件位置,省去来回翻终端的麻烦。而纯终端模式更适合快速小改动,比如让 Claude 给某个函数加注释、分析一段报错信息,不需要打开整个编辑器。

如果你两个都在用,一定注意别同时跑两个会话操作同一个目录下的文件——除非你想体验“两方同时改文件互相覆盖”的刺激。我在一次重构中就因为终端和 VSCode 各开了一个会话改同一个文件,最后 git diff 出来一堆无意义的冲突,白白浪费了半小时。

5. 实战案例:从零到 Claude Code 正常运行的完整记录

5.1 一台“干净” Windows 11 机器的完整配置流程

为了让你有更直观的参照,我拿一台刚装好 Windows 11 23H2、什么都没配置过的电脑,完整走一遍流程。

第一步,检查 BIOS 虚拟化:开机进 BIOS,确认虚拟化开启,进系统后任务管理器里显示“虚拟化: 已启用”。

第二步,以管理员身份打开 PowerShell,依次执行

dism /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart dism /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism /online /enable-feature /featurename:HypervisorPlatform /all /norestart wsl --update

重启电脑。

第三步,安装 Node.js 和 Claude Code:我直接装 Node 20 LTS,然后:

npm install -g @anthropic-ai/claude-code claude --version

此时如果没有报错,说明 CLI 装好了。

第四步,运行 claude 测试:在任意空文件夹里输入claude,首次运行会提示 workspace 初始化,等十几秒,进入对话界面就算成功。

整个过程大概十五分钟,最容易卡住的就是第二步后忘了重启,导致第四步一直报 workspace 错误。你如果遇到类似情况,回头第一步里逐个确认功能状态就对了。

5.2 遇到 persistent 错误的完整排查清单

我将所有可能踩的坑整理成一张速查表,便于你逐个排查。

症状可能原因解决办法
virtual machine platform相关提示系统功能未开启或未生效开启后重启,验证 State 为 Enabled
failed to start Claude's workspace虚拟化被安全软件拦截或 BIOS 关闭检查 BIOS、检查内核隔离设置
终端执行claude提示不是内部命令npm 全局路径未加入 PATH手动添加 npm 路径到系统环境变量
网络请求超时或无法连接网络直连不稳定配置 HTTPS_PROXY 环境变量
VSCode 扩展找不到 CLI扩展未识别 npm 路径在 VSCode 设置中指定 claude.cmd 完整路径
中文对话乱码代码页不匹配设置 UTF-8 环境变量

这张表看起来简单,但每一条都是我实际遇到或者帮别人排查过的。尤其第六个“中文乱码”,我一开始还以为是 Claude Code 没优化好,最后发现只是 Windows 终端编码问题,调完设置后一切正常。

5.3 几个高级用法和参数配置

Claude Code 装好跑通之后,有几个配置值得分享一下,能明显提升体验。

输出流模式:运行claude --output-format stream-json可以让输出变成流式 JSON 格式,适合做自动化脚本对接。比如我想把 Claude 的回答接进内部通知机器人,就用的这个参数。

指定模型:在对话中可以用--model参数临时切模型,或者直接在配置文件里设置默认模型。Claude Code 支持 Claude Opus 和 Claude Sonnet 等不同能力档位的模型,简单任务用 Sonnet 更快,复杂架构重构用 Opus 更稳妥。

代码权限设置:在工作区根目录创建一个.claude/settings.json文件,可以控制 Claude 能做什么、不能做什么。比如:

{ "permissions": { "allow": ["Bash(*)","Read(*)","Edit(*)"], "deny": ["Read(/etc/*)"] } }

这样 Claude 可以执行命令、修改文件,但不能读 /etc 下的敏感配置。有点类似给它上了一把“权限锁”。

如果你做团队协作,还可以在项目里维护一个CLAUDE.md文件,里面写清楚项目的代码规范、目录结构、常用命令,Claude Code 会自动读取这个文件来适配当前项目的开发风格。我用下来感觉这个文件的作用好比给新来的人发了一份老员工整理好的项目手册,Claude 的理解准确率和代码风格贴近程度能提升一个台阶。

6. 常见报错全收录与独家避坑心得

6.1 failed to start workspace 深度排查

这是目前我见过最多人提问的报错。如果你按照前面的步骤做了之后问题依旧,请不要灰心,大概率是下面三种情况之一:

  • 第一种,安装完功能后没有“彻底”重启。注意,这里说的彻底重启是关机再开机,不是“重启”这个选项。在某些 Windows 版本中,“重启”确实可以应用功能更改,但个别驱动的虚拟化模块在“快速启动”机制下没能重新加载,所以如果你开了 Windows 快速启动,最好先彻底关机再开机。

  • 第二种,第三方优化软件把虚拟化功能禁用了。比如某些“系统优化工具”会默认关闭 Hypervisor 相关的服务来“提升性能”。检查一下服务和驱动,在运行窗口输入services.msc,找HV Host Service,确保状态是“正在运行”,启动类型是“手动”。

  • 第三种,Windows 沙盒或 内核隔离与应用冲突。我之前帮朋友排查时发现,某个安全软件为了加强防护,把虚拟化相关的权限全锁了。解决办法是去 Windows 安全中心的“设备安全性”里,点击“内核隔离详细信息”,关闭“内存完整性”,再重启。不要怕,平时用它带来的性能损失几乎感觉不到,但兼容性能大幅提升。

6.2 其他高频问题及处理记录

  • 问题一:claude 命令找不到。如果你用 npm 安装后,新开一个终端提示“claude 不是内部或外部命令”,说明 npm 全局路径没在系统 PATH 里。手动把C:\Users\你的用户名\AppData\Roaming\npm加到 PATH,再重开终端。

  • 问题二:安装时卡在某个百分比。多半是网络问题。你可以先设置代理环境变量再安装,注意仅设置安装期间的代理,装完可以取消。

  • 问题三:Claude Code 的回答速度很慢。有可能是模型负载高导致排队。这种情况大概率不是你电脑的问题,你可以稍等几分钟再试,或者切到速度更快的 Sonnet 模型。

6.3 经验之谈:避坑与性能优化技巧

最后分享几个在多次实践中沉淀下来的经验。

  • 第一,建议在 Windows 功能里勾选“虚拟机平台”和“Windows 虚拟机监控程序平台”时,一并把“Linux 子系统”那个选项也勾上。即使你暂时不用 WSL,后面用起来可以省一次重启。同时,wsl --update这个操作强烈建议做一次,能让底层内核和 Claude workspace 的兼容性更好。

  • 第二,如果你电脑配置一般,建议在 Claude Code 配置里限制并发命令的执行数量,防止它同时跑多个测试导致电脑卡死。在settings.json里添加:

{ "maxConcurrentRequests": 2 }
  • 第三,Windows 上有些安全软件会扫描 CLI 工具每次运行时的临时文件,导致性能下降严重。如果条件允许,把 Claude Code 的缓存目录加入白名单。具体路径可以通过命令查看:
claude -debug

调试模式下会输出缓存目录,把那个目录加进杀软排除名单,你会发现启动速度快不少。

  • 第四,善用/memory命令管理上下文。Claude Code 会长期记住你告诉它的约定,但如果你改了工作目录或团队规范,记得更新记忆内容。

我在实际使用中发现,Claude Code 在 Windows 上最大的门槛其实不在 Claude 本身,而在于微软这层虚拟化矩阵的配置琐碎。只要把 VirtualMachinePlatform 和 HypervisorPlatform 这两个坑填平,后续安装和集成基本一路绿灯。希望这份记录能帮你少走两步弯路。如果你还碰到别的幺蛾子,欢迎在评论区把报错信息贴出来,我看到能帮的一定帮。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询