这篇适合谁
适合在 Windows 上使用 Codex 的开发者,无论你用桌面应用、命令行还是 IDE 扩展。读完,你能装好 Windows 版桌面应用,在 PowerShell 和 WSL2 两种 agent 之间做选择,理解三种沙箱模式,并解决最常见的几类问题。
安装桌面应用
ChatGPT 的 Windows 桌面应用让你在一个界面里处理多个项目、并行运行对话并查看结果。它支持 worktree、定时任务、Git、内置浏览器、文件预览、插件和 skills[1]。可以从 Microsoft 的安装链接下载,也可以用命令行安装[1]:
winget install --id 9PLM9XGG6VKS -s msstore选择 agent 在哪里运行
应用默认使用 Windows 原生的 Codex agent,它在 PowerShell 里运行命令。需要时,它也能通过 wsl 命令行处理 WSL2 里的项目[1]。如果要让 agent 跑在 WSL2 里,打开设置,把 agent 从 Windows native 切换为 WSL,然后重启应用。只有重启之后才会生效[1]。
WSL1 在 Codex 0.114 之前都支持。从 Codex 0.115 起,Linux 沙箱改用 bubblewrap,因此不再支持 WSL1[1]。
安装开发工具
Codex 在 Windows 上配合几个常用工具效果最好:Git 负责审查面板,并让你查看或撤销改动;Node.js 和 Python;还有 .NET SDK,以及让应用支持 GitHub 功能的 GitHub CLI[1]。官方建议用 winget 安装[1]:
winget install --id Git.Git
winget install --id OpenJS.NodeJS.LTS
winget install --id Python.Python.3.14
winget install --id Microsoft.DotNet.SDK.10
winget install --id GitHub.cli装好 GitHub CLI 后,运行 gh auth login,应用里的 GitHub 功能才能用[1]。如果需要别的 Python 或 .NET 版本,把包 ID 换掉即可[1]。
Windows 沙箱的三种模式
Codex 支持三种 Windows 沙箱实现:mxc、elevated 和 unelevated[2]。沙箱负责执行命令及其子进程时的文件系统和网络权限。审批策略是另一回事,它决定 Codex 什么时候要先征得同意,才能用更多权限运行命令[2]。
mxc:在兼容的设备上是推荐选项。它用原生进程隔离实现,不需要管理员批准的安装,也不需要额外的 Windows 账户或本地防火墙规则[2]。elevated:MXC 不可用或被禁用时,优先选择的旧版回退方案。需要管理员批准安装,沙箱里的命令以非管理员权限运行[2]。unelevated:在无法完成 elevated 安装、而且组织策略允许的情况下使用的旧版回退方案。网络隔离较弱,也不支持拒绝读取路径[2]。
Windows 11 是推荐的基础版本。较新且已完整更新的 Windows 10 属于尽力支持,需要 1809 或更高版本,以获得 ConPTY 支持。更老的 Windows 10 版本不推荐[2]。
开启 MXC,或选择回退方案
要优先使用 MXC,在 config.toml 里写入[2]:
[features]
prefer_mxc = true设备和策略支持时,Codex 会使用 MXC;否则退回到已有的旧版选择和安装流程[2]。MXC 需要 Windows 11 24H2(build 26100.9278)和 25H2(build 26200.9278)中引入的原生能力[2]。想在不改变已保存设置的前提下测试单条命令,可以使用 Codex CLI 0.162.0 或更高版本,在项目目录里运行下面的命令。预期输出是 MXC_OK,退出码为 0[2]:
codex -c windows.sandbox=mxc sandbox --include-managed-config --permission-profile :workspace -- cmd.exe /d /c echo MXC_OK
$LASTEXITCODE注意,如果原生能力缺失或策略禁止 MXC,显式写的 windows.sandbox = "mxc" 会直接失败。前台命令结束时,剩余的子进程也会停止,所以依赖后台开发服务器的流程要专门测试。托管网络需要 allow_local_binding = true[2]。
要选择旧版回退方案,在 config.toml 里写入[2]:
[windows]
sandbox = "elevated" # or "unelevated"管理员可以在托管的 requirements.toml 里,在 [windows] 下设置 allow_mxc = false,禁止 MXC。这会同时阻止自动选择和显式写出的 windows.sandbox = "mxc"[2]。
常见问题
PowerShell 提示脚本被禁用。 如果 PowerShell 拒绝运行 npm.ps1,常见的做法是设置 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned。修改策略前,先读一下 Microsoft 的执行策略说明[1]:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned命令需要管理员权限。 把 ChatGPT 桌面应用本身以管理员身份启动,Codex agent 会继承这一权限级别[1]。
错误 1385。 沙箱里的命令报 1385,说明 Windows 策略拒绝了沙箱用户启动命令所需的登录类型。请 IT 授予相应权限,或者在排查期间改用 unelevated。反馈问题时,附上 CODEX_HOME/.sandbox/sandbox.log 和 Windows 版本[2]。
文件夹对 Everyone 可写。 Codex 可能提示某些文件夹对 Everyone 可写。如果环境允许,就移除这些文件夹上的写权限[2]。
没装 Git。 原生 Windows 上没有 Git,应用的部分功能不可用。用 winget install Git.Git 装上即可[1]。
与 WSL 共享配置。 应用和 Windows 原生 CLI 使用 %USERPROFILE%\.codex。WSL 里的 Codex CLI 默认使用 Linux 的主目录,因此不会自动共享配置、缓存的认证和会话历史。要让 WSL 指向 Windows 的目录,在 shell 配置里设置 CODEX_HOME[1]:
export CODEX_HOME=/mnt/c/Users/<windows-user>/.codex完全访问模式。 完全访问意味着 Codex 不再局限于项目目录,可能做出不可逆的破坏性操作。保留沙箱边界,只为特定情况使用规则开例外[2]。
怎么选 sandbox
先看设备。Windows 11 是推荐的基础,兼容的设备优先用 mxc。它不需要管理员批准的安装,也不需要额外的 Windows 账户或本地防火墙规则[2]。如果 MXC 不可用或被禁用,就用 elevated,它是首选的旧版回退,但需要管理员批准安装[2]。只有在 elevated 无法完成安装、而且组织策略允许时,才考虑 unelevated,并接受它较弱的网络隔离,以及不支持拒绝读取路径的限制[2]。
沙箱管的是命令能读写哪些文件、能不能联网;审批策略管的是 Codex 什么时候先请示你。两者分别起作用,配置时要一起考虑[2]。完全访问模式会让 Codex 不再局限于项目目录,文档建议保留沙箱边界,只用规则为特定情况开例外[2]。
企业管理员要注意什么
管理员可以在托管的 requirements.toml 里用 allow_mxc = false 禁用 MXC,这会同时阻止自动选择和显式选择[2]。遇到错误 1385 时,问题通常出在 Windows 策略上,而不是 Codex 本身。请 IT 检查设备策略是否给沙箱用户授予了所需的登录权限,并在报告中附上 CODEX_HOME/.sandbox/sandbox.log[2]。
另外,检查一下沙箱是否提示有对 Everyone 可写的文件夹。这类权限会让沙箱无法完整保护这些目录,应当与 IT 一起收紧[2]。
下一步
先装好应用,确认 agent 运行在你想要的位置,再在真正用于工作之前跑一次 MXC 测试。企业部署的选项,可以看官方的 Windows 部署页面[1]。
来源
- 1ChatGPT desktop app for WindowsOpenAI Codex docs
- 2Windows sandboxOpenAI Codex docs
引用本页: 在 Windows 上用 Codex. TellWorld, https://www.tellworld.net/zh/practice/practice-codex-windows. 更新于 2026-11-14