Appearance
Codex 支持在 Windows 上以三种方式运行:原生 elevated 沙箱(推荐,需管理员权限)、原生 unelevated 沙箱(回退方案),以及 WSL2 Linux 环境。本文说明各模式的配置方法、适用场景,以及 elevated 沙箱安装失败、错误 1385、IDE 扩展不响应等常见问题的排查步骤。
Codex Windows 配置
Codex 在 Windows 上支持三种运行方式:
- 原生 Windows +
elevated沙箱(推荐) - 原生 Windows +
unelevated沙箱(回退方案) - Windows Subsystem for Linux 2(WSL2),使用 Linux 沙箱实现
Windows 沙箱
在 Windows 原生运行时,Codex 的 Agent 模式使用 Windows 沙箱来阻止工作文件夹以外的文件系统写入,并在没有明确审批的情况下禁止网络访问。
在 config.toml 中配置沙箱模式:
toml
[windows]
sandbox = "elevated" # 或 "unelevated"elevated 模式
elevated 是推荐的原生 Windows 沙箱。它使用专用低权限沙箱用户、文件系统权限边界、防火墙规则,以及沙箱内命令运行所需的本地策略变更。能用 elevated 就用 elevated。
unelevated 模式
unelevated 是回退方案。它使用从当前用户派生的受限 Windows token 运行命令,应用基于 ACL 的文件系统边界,使用环境级别的离线控制(而非专用离线用户防火墙规则)。比 elevated 弱,但在 elevated 配置被企业策略阻止时仍然有用。
默认情况下,两种模式都使用私有桌面以增强 UI 隔离。只有在需要兼容旧的 Winsta0\\Default 行为时才设置 windows.sandbox_private_desktop = false。
Windows 版本支持矩阵
| Windows 版本 | 支持级别 | 说明 |
|---|---|---|
| Windows 11 | 推荐 | Codex on Windows 的最佳基础,企业部署建议标准化到 Windows 11 |
| 完全更新的近期 Windows 10 | 尽力支持 | 可用但不如 Windows 11 稳定;需要 ConPTY 支持(实际上需要 1809 或更新版本) |
| 较旧的 Windows 10 | 不推荐 | 缺少 ConPTY 等必要控制台组件,在企业环境下更容易失败 |
其他环境要求:
winget应可用。缺失时更新 Windows 或安装 Windows Package Manager- 推荐的原生沙箱依赖管理员批准的配置
- 部分企业管理的设备即使 OS 版本合适也会阻止必要的配置步骤
为沙箱添加读取权限
当沙箱无法读取某个目录时,使用:
/sandbox-add-read-dir C:\absolute\directory\path路径必须是已存在的绝对目录。命令成功后,当前 session 内沙箱可以读取该目录。
Windows Subsystem for Linux(WSL)
选择 WSL2 时,Codex 在 Linux 环境内运行,而不使用原生 Windows 沙箱。适合以下场景:
- 需要 Linux 原生工具
- 仓库和工作流已经在 WSL2 中
- 两种原生 Windows 沙箱模式都不适合你的环境
WSL1 从 Codex
0.115起不再支持(Linux 沙箱移到了 bubblewrap)。
在 WSL 中启动 VS Code
前置条件:
- 已安装 WSL 的 Windows(PowerShell 管理员权限下运行
wsl --install) - 安装了 WSL 扩展 的 VS Code
从 WSL 终端打开 VS Code:
bash
cd ~/code/your-project
code .这会打开 WSL 远程窗口,状态栏显示 WSL: <distro>。如果没看到,按 Ctrl+Shift+P,选 WSL: Reopen Folder in WSL。
在 WSL 中使用 Codex CLI
在提升权限的 PowerShell 或 Windows Terminal 中:
powershell
wsl --install # 安装默认 Linux 发行版(如 Ubuntu)
wsl # 进入 WSL shell在 WSL shell 中:
bash
# 安装 Node.js(通过 nvm)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
nvm install 22
# 安装并运行 Codex
npm i -g @openai/codex
codex在 WSL 中处理代码
避免在
/mnt/c/...等 Windows 挂载路径下工作(I/O 较慢)。把仓库放在 Linux home 目录下:bashmkdir -p ~/code && cd ~/code git clone https://github.com/your/repo.git如需从 Windows 访问文件,路径在资源管理器中是
\\wsl$\Ubuntu\home\<user>
故障排查
原生沙箱安装失败
最常见原因:
- Windows UAC 或管理员提示被拒绝
- 机器不允许创建本地用户或组
- 机器不允许更改防火墙规则
- 机器阻止了沙箱用户所需的登录权限
- 其他企业策略阻止了安装流程
处理方式:
- 重试
elevated沙箱安装,允许管理员提示 - 如公司笔记本阻止,询问 IT 团队是否允许本地用户/组创建、防火墙配置和沙箱用户登录权限
- 如仍然失败,暂时使用
unelevated沙箱继续工作,同时排查问题
Codex 切换到 unelevated 沙箱
这意味着 elevated 沙箱安装未能完成。Codex 仍在沙箱模式下运行(应用基于 ACL 的文件系统边界),但没有 elevated 的独立沙箱用户边界,网络隔离也较弱。长期来看,最好通过 IT 团队让 elevated 沙箱正常工作。
Windows 错误 1385
沙箱命令失败并报错 1385 时,Windows 正在拒绝沙箱用户启动命令所需的登录类型。
处理方式:
- 询问 IT 团队是否为 Codex 创建的沙箱用户授予了所需的登录权限
- 检查问题是否只影响部分机器或团队(对比组策略或 OU 差异)
- 如需立即继续工作,暂时使用
unelevated沙箱 - 将
CODEX_HOME/.sandbox/sandbox.log以及 Windows 版本和失败描述发送给支持团队
Codex 警告"某些文件夹被 Everyone 可写"
这意味着那些文件夹的 Windows 权限对沙箱来说过于宽松,沙箱无法完全保护它们。
处理方式:从 Codex 列出的文件夹中移除 Everyone 写权限,然后重启 Codex 或重新运行沙箱配置。
沙箱命令无法访问网络
部分 Codex 任务根据使用的权限模式有意禁用出站网络访问。如果确认需要网络访问,重启 Codex 重试;如问题持续,收集沙箱日志供团队检查。
沙箱以前正常,现在突然停止工作
可能在以下操作后发生:移动仓库或工作区、更改机器权限、更改 Windows 策略或其他系统配置变更。
处理方式:重启 Codex → 重试 elevated 沙箱安装 → 如不行则用 unelevated 作为临时回退 → 收集沙箱日志。
IDE 扩展已安装但无响应
系统可能缺少 C++ 开发工具(部分原生依赖项需要):
- Visual Studio Build Tools(C++ 工作负载)
- Microsoft Visual C++ Redistributable (x64)
- 用
winget:winget install --id Microsoft.VisualStudio.2022.BuildTools -e
安装完成后完全重启 VS Code。
WSL 中大型仓库速度慢
确认没有在
/mnt/c下工作,将仓库移到 WSL 内(如~/code/...)如需要,增加 WSL 的内存和 CPU 配置,并更新到最新版:
powershellwsl --update wsl --shutdown
VS Code in WSL 找不到 codex
在 WSL 内验证二进制文件存在且在 PATH 中:
bash
which codex || echo "codex not found"如果找不到,按上面的 WSL 安装步骤 重新安装。
发送诊断信息给 OpenAI
如问题持续,需要发送:
CODEX_HOME/.sandbox/sandbox.log- 操作描述
- 使用的是
elevated还是unelevated沙箱 - 应用内显示的错误信息
- 是否出现 1385 或其他 Windows/PowerShell 错误
- Windows 11 还是 Windows 10
不要发送 CODEX_HOME/.sandbox-secrets/ 的内容。
常见问题
Q: elevated 和 unelevated 沙箱在安全性上有多大差距?
A: elevated 使用专用的低权限沙箱用户账号,配合防火墙规则实现真正的网络隔离,安全性更强。unelevated 只是限制当前用户的 token 权限,文件系统和网络隔离相对较弱,但比无沙箱强。能用 elevated 就用 elevated。
Q: Windows 10 能正常使用 Codex 吗?
A: 支持但不推荐。需要完全更新的 Windows 10(1809 或更新版本),但企业环境下问题比 Windows 11 更多。如果可以选择,优先标准化到 Windows 11。
Q: 什么时候选 WSL2,什么时候选原生 Windows 沙箱?
A: 优先选原生 Windows 沙箱,性能更好、体验更原生。只有在以下情况才选 WSL2:需要 Linux 工具链、仓库已经在 WSL2 中,或两种原生沙箱模式都因企业策略无法使用。