Windows 沙箱
如需完整文档索引,请参阅 llms.txt。文档页面的 Markdown 版本可通过在页面后追加
.md来获取 URL。
使用 Codex 在 Windows 上配合原生 ChatGPT 桌面应用、 CLI,或 IDE 扩展。
该 ChatGPT Windows 桌面应用支持并行聊天等核心工作流、 worktree、计划任务、Git 功能、内置浏览器、文件预览、 插件和技能。
该应用可以在 PowerShell 中原生运行,并使用 Windows 沙箱,而不是 要求使用 WSL 或虚拟机。这让 Codex 保留在 Windows 原生 工作流中,同时强制执行有边界的文件系统和网络权限。
交互内容: CodexScreenshot 的动态演示请参阅页面顶部的官方原文链接。
交互内容: CodexCallout 的动态演示请参阅页面顶部的官方原文链接。
原生 Windows 沙箱有两种模式:
- 在 Windows 上原生使用更强的
elevated沙箱; - 在 Windows 上原生使用备用的
unelevated沙箱。
配置 Windows 沙箱
Section titled “配置 Windows 沙箱”当你在 Windows 上原生运行 Codex 时,Agent 模式会使用 Windows 沙箱来 阻止对工作文件夹之外的文件系统写入,并防止网络访问 ,除非你明确批准。
原生 Windows 沙箱支持包含两种模式,你可以在
config.toml中配置:
[windows]sandbox = "elevated" # or "unelevated"elevated 是首选的原生 Windows 沙箱。它使用专用的
低权限沙箱用户、文件系统权限边界、防火墙
规则,以及在沙箱中运行命令所需的本地策略更改。
unelevated 是备用的原生 Windows 沙箱。它使用从当前用户派生的
受限 Windows 令牌来运行命令,应用基于 ACL的
文件系统边界,并使用环境级离线控制,而不是
专用离线用户防火墙规则。它比 elevated更弱,但
当本地或企业策略阻止管理员批准的设置时,
仍然有用。
如果两种模式都可用,请使用 elevated。如果默认原生沙箱
在你的环境中无法工作,请使用 unelevated 作为备用,同时
排查设置问题。
企业管理员可以限制
Codex 可通过 requirements.toml使用哪些原生沙箱实现:
[windows]allowed_sandbox_implementations = ["elevated"]此示例要求使用 elevated 沙箱,并阻止用户回退
到 unelevated。若要允许任一实现,请同时包含两个值;
Codex 在未选择模式时会优先使用 elevated 。请参阅
requirements.toml 参考 了解
支持的值。
默认情况下,两种沙箱模式也会使用私有桌面以提供更强的 UI
隔离。仅在你出于兼容性需要 windows.sandbox_private_desktop = false 使用
旧版 Winsta0\\Default 行为时才设置。
以完全访问模式运行 Codex 意味着 Codex 不再局限于你的项目 目录,并且可能执行非预期的破坏性操作,从而导致 数据丢失。为实现更安全的自动化,请保留沙箱边界,并使用 规则 处理特定例外,或将你的 批准策略设置为 never ,让 Codex 尝试在不请求提升权限的情况下解决问题, 具体取决于你的 批准和安全设置。
Windows 版本矩阵
Section titled “Windows 版本矩阵”| Windows 版本 | 支持级别 | 备注 |
|---|---|---|
| Windows 11 | 推荐 | 是在 Windows 上使用 Codex 的最佳基线。如果你正在标准化企业部署,请使用此版本。 |
| 较新的、已完全更新的 Windows 10 | 尽力支持 | 可以工作,但可靠性低于 Windows 11。对于 Windows 10, Codex 依赖现代控制台支持,包括 ConPTY。实际上,需要 Windows 10 版本 1809 或更高版本。 |
| 较旧的 Windows 10 构建 | 不推荐 | 更可能缺少所需的控制台组件,例如 ConPTY ,并且更可能在企业设置中失败。 |
其他环境假设:
winget应当可用。如果缺失,请更新 Windows 或安装 Windows Package Manager,然后再设置 Codex。- 推荐的原生沙箱依赖管理员批准的设置。
- 即使 OS 版本本身符合要求,一些企业托管设备也会阻止所需的设置步骤。
授予沙箱读取权限
Section titled “授予沙箱读取权限”当命令因 Windows 沙箱无法读取某个目录而失败时,请使用:
/sandbox-add-read-dir C:\absolute\directory\path该路径必须是一个现有的绝对目录。命令成功后,在当前会话期间,之后于沙箱中运行的命令即可读取该目录。
默认使用原生 Windows 沙箱。当你需要 Linux 原生工具、你的工作流已经在 WSL 中,或 WSL2, 两种原生 Windows 沙箱模式都无法满足你的需求时,请选择。
故障排除和 FAQ
Section titled “故障排除和 FAQ”如果你正在排查一台受管 Windows 机器,请先查看原生 沙箱模式、Windows 版本,以及 Codex显示的任何策略错误。大多数原生 Windows 支持问题来自沙箱设置、登录权限或文件系统 权限,而不是编辑器本身。
我的原生沙箱设置失败了
如果 Codex 无法完成 elevated 沙箱设置,最常见原因
包括:
- 拒绝了 Windows UAC 或管理员提示;
- 计算机不允许创建本地用户或组;
- 计算机不允许更改防火墙规则;
- 计算机阻止沙箱用户所需的登录权限;
- 或其他企业策略阻止了设置流程的某个部分。
可以尝试:
- 请再次尝试
elevated沙箱设置,并在你的环境允许时批准管理员提示 。 - 如果你的公司笔记本阻止此操作,请询问你的 IT 团队该机器 是否允许管理员批准的本地 user/group 创建、防火墙 配置,以及所需的沙箱用户登录权限。
- 如果默认设置仍然失败,请使用
unelevated沙箱,以便你可以 在问题调查期间继续工作。
Codex 将我切换到了 unelevated 沙箱
这意味着 Codex 无法在你的 elevated 机器上完成更强的
沙箱设置。
- Codex 仍然可以在沙箱模式下运行。
- 它仍会应用基于 ACL的文件系统边界,但不会使用
中的独立沙箱用户边界,并且网络
elevated隔离 更弱。 - 这是一个有用的备用方案,但不是首选的长期企业 配置。
如果你使用的是受管企业笔记本,最佳长期修复通常是
在你的 elevated 团队帮助下让 IT 沙箱正常工作。
我看到了 Windows 错误 1385
如果沙箱命令失败并显示错误 1385,说明 Windows 拒绝了
沙箱用户启动命令所需的登录类型。
实际上,这通常意味着 Codex 已成功创建沙箱用户, 但 Windows 策略仍阻止这些用户启动沙箱 命令。
可以采取以下措施:
- 请询问你的 IT 团队设备策略是否向 沙箱用户授予了所需的登录权限 Codex-created 。
- 如果问题只影响部分 OU 机器或团队,请比较组策略或 差异。
- 如果你需要立即继续工作,请使用
unelevated沙箱,同时 调查策略问题。 - 请发送
CODEX_HOME/.sandbox/sandbox.log以及你的 Windows 版本和一段 简短的故障描述。
Codex 警告某些文件夹可由 Everyone 写入
Codex 可能会警告某些文件夹可由 Everyone 写入。
如果你看到此警告,说明这些文件夹的 Windows 权限过宽, 沙箱无法完全保护它们。
可以采取以下措施:
- 查看警告中 Codex 列出的文件夹。
- 如果在
Everyone你的环境中适用,请移除这些文件夹的 写入权限。 - 在这些权限 Codex 修正后,重启 或重新运行沙箱设置。
如果不确定如何更改这些权限,请向 IT 团队寻求帮助。
沙箱中的命令无法访问网络
某些 Codex 聊天会根据所使用的权限模式, 有意在没有出站网络访问的情况下运行。
如果任务因无法访问网络而失败:
- 检查该任务是否本应在禁用网络的情况下运行。
- 如果你预期有网络访问,请重启 Codex 并重试。
- 如果问题持续发生,请收集沙箱日志,以便团队检查 该机器是否处于部分或损坏的沙箱状态。
沙箱之前可以正常工作,后来停止了
这可能发生在以下情况之后:
- 移动仓库或工作区;
- 更改计算机权限;
- 更改 Windows 策略;
- 或更改其他系统配置。
可以尝试:
- 重启 Codex。
- 再次尝试
elevated沙箱设置。 - 如果无法修复,请使用
unelevated沙箱作为临时 备用方案。 - 收集沙箱日志以供审查。
我需要将诊断信息发送给 OpenAI
如果问题仍未解决,请发送:
CODEX_HOME/.sandbox/sandbox.log
同时提供以下信息也会有所帮助:
- 简要描述你尝试执行的操作;
elevated沙箱是否失败,或是否使用了unelevated沙箱;- 应用中显示的任何错误消息;
- 是否看到
1385或其他 Windows 或 PowerShell 错误; - 以及你使用的是 Windows 11 还是 Windows 10。
请勿发送:
CODEX_HOME/.sandbox-secrets/的内容
IDE 扩展已安装但没有响应
你的系统可能缺少 C++ 开发工具,而某些原生依赖项需要这些工具:
- Visual Studio Build Tools(C++ 工作负载)
- Microsoft Visual C++ Redistributable (x64)
- 使用
winget,运行winget install --id Microsoft.VisualStudio.2022.BuildTools -e
安装完成后,完全重启 VS Code。