前言
这篇文章记录一次比较真实的 Windows 开发环境恢复过程。
一开始我只是想恢复 OpenAI Codex 的桌面图形界面,也就是 Codex GUI。结果中途牵扯出了 Codex CLI、Node.js、npm、Claude Code、WindowsApps 受保护目录、PATH 环境变量、nvm-windows 等一堆问题。
整个过程看起来只是“一个软件打不开”,但实际踩到的是 Windows 开发环境里很常见的几个坑:
不要直接运行
C:\Program Files\WindowsApps里的程序;npm 损坏后,不要继续硬修;
Node.js 重装后,全局命令可能会消失;
CLI 和 GUI 是两回事;
不要让 AI 工具无边界地自动修复系统环境。
最终 Codex GUI 恢复了,Claude Code 也恢复了,Codex CLI 也能正常使用。这里把过程复盘一下,避免下次再踩。
一、最开始的问题:Codex 桌面版找不到了
我的电脑上原本装过 Codex Windows App,也就是桌面 GUI 版本。
后来我发现桌面入口好像不见了,于是去找安装目录,发现类似下面的路径:
C:\Program Files\WindowsApps\OpenAI.Codex_...\app\resources里面确实能看到codex.exe。
于是我直接在这个目录里运行:
.\codex.exe结果报错:
程序 codex.exe 无法运行:拒绝访问一开始以为是 Codex 损坏了,其实不是。
关键原因
C:\Program Files\WindowsApps是 Windows 的受保护应用目录。
这个目录里的 App 文件不是给用户手动双击运行的,直接运行里面的 exe 很容易被系统拦截。
也就是说:
看到 codex.exe 存在 ≠ 可以直接运行这个 exe正确方式应该是:
开始菜单搜索 Codex或者通过:
explorer shell:AppsFolder在 Windows 应用列表里找 Codex,而不是直接去 WindowsApps 目录里操作。
二、第二个坑:安装脚本触发 GitHub API 限流
为了恢复 Codex,我尝试运行 Windows 安装命令:
powershell -ExecutionPolicy ByPass -c "irm https://chatgpt.com/codex/install.ps1 | iex"结果报错:
API rate limit exceeded里面还提到了 GitHub API。
一开始我也很疑惑:我安装 Codex,跟 GitHub API 有什么关系?
后来才明白,安装脚本会去 GitHub 查询最新 release 或下载相关文件。如果当前 IP 触发了 GitHub 的未认证请求限流,脚本就会失败。
这个错误并不代表:
Codex 损坏了它只是代表:
安装脚本暂时拉不到 GitHub 上的 release 信息所以这一步不应该继续死磕。
三、第三个坑:npm 本身坏了,导致 Codex CLI 装不上
既然安装脚本不行,我又想用 npm 安装 Codex CLI:
npm install -g @openai/codex但 npm 直接崩了,出现类似错误:
Class extends value undefined is not a constructor or null问题位置还和minizlib有关。
当时的状态大概是:
| 项目 | 状态 |
|---|---|
| Codex GUI | 文件存在,但入口异常 |
| codex 命令 | 不存在 |
| Node.js | 已安装,但环境混乱 |
| npm | 损坏,无法执行 |
| Claude Code | 旧页面还在,但新终端找不到 claude 命令 |
这时候再继续用 npm 装东西是没意义的,因为 npm 自己已经坏了。
四、第四个坑:nvm-windows 不是万能药
中间也尝试过安装 nvm-windows。
但是系统里已经有 Node.js v24 了,nvm 安装时提示要不要接管现有 Node。这个过程本身没问题,但我的环境当时已经比较乱:
旧 Node 在
D:\Ksoftware\nodejsnpm 目录权限异常
Node/npm 残留混杂
Claude Code 还依赖原来的命令入口
结果 nvm 安装过程也卡住了。
这一步给我的教训是:
当 Node/npm 环境已经明显损坏时,不要急着叠加 nvm。更稳的方案是先清理旧环境,再重新安装一个干净的 Node.js LTS。
五、最终正确思路:先恢复 Node/npm,再恢复命令行工具,最后恢复 Codex GUI
后面我把思路重新整理了一下。
不要同时修所有东西,而是分层处理:
第一层:Node/npm 第二层:Claude Code / Codex CLI 第三层:Codex GUI 桌面入口1. 先卸载坏掉的 Node.js
通过 Windows 设置卸载 Node.js:
设置 → 应用 → 已安装的应用 → Node.js → 卸载然后检查残留目录:
D:\Ksoftware\nodejs C:\Program Files\nodejs %APPDATA%\npm %APPDATA%\npm-cache能删就删,删不了就改名,例如:
nodejs_old npm_old npm-cache_old重点是不要让旧的坏 npm 继续留在 PATH 里。
2. 重启电脑
这一步很重要。
很多时候 PATH、进程占用、旧命令缓存,不重启就清不干净。
所以卸载 Node、清理残留之后,直接重启。
3. 安装 Node.js LTS
重新安装 Node.js LTS。
安装过程中会出现一个选项,大概是:
Automatically install the necessary tools这个选项不要勾选。
它主要是安装 C/C++ 原生模块编译相关工具,例如 Python、Visual Studio Build Tools、Chocolatey 等。
体积大,耗时长,而安装 Codex CLI 和 Claude Code 一般不需要它。
安装完成后,新开 PowerShell 检查:
node -v npm -v where.exe node where.exe npm只要这两个能正常显示版本,就说明 Node/npm 基本恢复了。
六、Claude Code 为什么也突然不能用了?
Node/npm 重装后,我在新 PowerShell 里输入:
claude结果报错:
无法将“claude”项识别为 cmdlet、函数、脚本文件或可运行程序的名称这个问题其实很正常。
如果 Claude Code 原来是通过 npm 全局安装的,那么重装 Node/npm 后,原来的全局命令入口可能会丢失。
常见路径是:
%APPDATA%\npm\claude.cmd或者:
%USERPROFILE%\.local\bin\claude.exe可以用下面命令检查:
Test-Path "$env:USERPROFILE\.local\bin\claude.exe" Test-Path "$env:APPDATA\npm\claude.cmd" Get-Command claude -All where.exe claude如果命令入口还存在,只是 PATH 没配好,把对应目录加回用户 PATH 即可。
如果入口没了,就重新安装 Claude Code:
npm install -g @anthropic-ai/claude-code然后检查:
claude --version claude这一步完成后,Claude Code 就恢复了。
七、Codex CLI 和 Codex GUI 是两回事
这里特别容易搞混。
Codex CLI 是命令行工具,可以在 PowerShell 里运行:
codex或者:
codex --version而 Codex GUI 是 Windows 桌面应用,应该通过开始菜单、Windows 应用列表或官方安装入口打开。
也就是说:
codex 命令能用 ≠ Codex GUI 一定恢复 Codex GUI 文件存在 ≠ codex 命令一定存在这两个是相关但不同的入口。
如果只是想装 Codex CLI,可以用:
npm install -g @openai/codex但如果想恢复 GUI,重点应该检查 Windows App 是否还注册在系统里。
八、恢复 Codex GUI 的检查方法
恢复 GUI 时,不要再折腾 Node/npm。
应该检查 Windows 是否还识别 Codex App。
1. 检查开始菜单应用
Get-StartApps | Where-Object { $_.Name -match "Codex|OpenAI" }2. 检查 Appx 包
Get-AppxPackage | Where-Object { $_.Name -match "Codex|OpenAI" -or $_.PackageFullName -match "Codex|OpenAI" } | Select-Object Name, PackageFullName, InstallLocation, PackageFamilyName如果能查到,说明 Codex GUI 仍然在系统里,只是快捷方式或入口可能丢了。
3. 打开 Windows 应用列表
explorer shell:AppsFolder然后在里面找 Codex。
如果找到了,就可以:
右键 Codex → 固定到开始菜单或者创建桌面快捷方式。
注意:不要把桌面快捷方式直接指向 WindowsApps 里的 exe。
优先通过 Windows 的应用入口启动。
九、如果 Codex GUI 存在但打不开
如果系统里确实能看到 Codex App,但打不开,可以走 Windows 官方修复流程:
设置 → 应用 → 已安装的应用 → Codex → 高级选项 → 修复修复后再测试:
开始菜单搜索 Codex如果还是不行,再考虑:
设置 → 应用 → 已安装的应用 → Codex → 高级选项 → 重置重置会清理应用状态,可能需要重新登录。
如果连 Appx 包都查不到,那就说明系统里没有有效的 Codex GUI 安装了,需要重新从官方入口安装 Codex Windows App。
十、这次事故的核心教训
1. 不要直接运行 WindowsApps 里的 exe
即使你能看到:
C:\Program Files\WindowsApps\...\codex.exe也不要直接双击或在 PowerShell 里运行。
WindowsApps 是受保护目录,不是普通软件安装目录。
2. npm 坏了就不要继续用 npm 修 npm
如果 npm 自己已经报严重错误,继续执行:
npm install npm cache clean npm update大概率只会更乱。
更稳的方式是:
卸载 Node → 清理 npm 残留 → 重启 → 重装 Node LTS3. Node 重装后,全局命令会消失
比如:
claude codex这些命令可能原来都是 npm 全局安装出来的。
重装 Node 后,它们消失很正常。
重新安装或修 PATH 就行。
4. GUI 和 CLI 要分开判断
这次最容易误判的地方就是:
Codex CLI Codex Windows App它们不是一个入口。
CLI 主要靠命令行:
codexGUI 主要靠 Windows App 注册信息、开始菜单、AppsFolder。
5. 不要让 AI 工具无限制自动修系统
这次如果一直让 Claude Code 自动修,很可能会继续:
安装 nvm
改 PATH
改权限
清理目录
重装各种工具
但系统环境修复最怕“同时动太多地方”。
正确做法应该是:
每次只修一个层级,每一步都确认结果。十一、最终恢复结果
最后我的状态是:
| 项目 | 结果 |
|---|---|
| Node.js | 恢复正常 |
| npm | 恢复正常 |
| Claude Code | 恢复正常 |
| Codex CLI | 可用 |
| Codex GUI | 恢复 |
| WindowsApps | 没有强行修改 |
| 系统 PATH | 只做必要修复 |
这次虽然过程比较惊险,但也算把 Windows 上 AI 编程工具的几个常见坑都踩了一遍。
十二、我的最终恢复 checklist
以后如果再遇到类似问题,我会按这个顺序排查:
node -v npm -v where.exe node where.exe npm检查 Claude Code:
claude --version where.exe claude检查 Codex CLI:
codex --version where.exe codex检查 Codex GUI:
Get-StartApps | Where-Object { $_.Name -match "Codex|OpenAI" } Get-AppxPackage | Where-Object { $_.Name -match "Codex|OpenAI" -or $_.PackageFullName -match "Codex|OpenAI" }打开 Windows 应用列表:
explorer shell:AppsFolder如果 GUI 打不开:
设置 → 应用 → 已安装的应用 → Codex → 高级选项 → 修复结尾
这次问题表面上是 Codex GUI 不见了,实际上是 Windows 开发环境里几个工具链问题叠在了一起:
Codex GUI 入口异常 GitHub API 限流 npm 损坏 Node 环境污染 nvm 安装冲突 Claude Code 命令丢失 PATH 环境变量异常真正的解决思路不是乱重装,而是分清层级:
先修 Node/npm 再修 CLI 命令 最后修 GUI 入口尤其要记住:
不要直接操作 WindowsApps。 不要在 npm 损坏时继续用 npm 硬修。 不要把 CLI 和 GUI 混为一谈。 不要让自动化工具无边界改系统环境。这次差点把 Codex、Claude Code、Node/npm 一起搞坏,但最终还是救回来了。也算是一次很有价值的 Windows AI 工具链排错经验。