Codex Windows版弹出“完成Windows设置以继续”,点过允许后却回到“Windows设置未完成”,下面只剩helper_failed;也有人进入项目后所有命令都报setup refresh had errors。这两类现象都发生在命令真正执行以前,但不代表它们一定是同一个根因。
先把helper_failed当成“设置助手没有完成”的汇总标签,不要直接照抄网上某一条删目录、改ACL或关闭防火墙的命令。当前官方Windows沙盒已经同时包含MXC和两种旧版实现;不同设备、版本与组织策略走的路径不同,先确认模式才能排查。
本文涉及的MXC探测能力需要 Codex CLI 0.162.0 或更新版本;先运行 codex --version 确认,旧版不支持对应探测时应先按官方安装路径升级。PowerShell单引号中的路径使用单个反斜线,不使用JSON转义写法。
先判断是下载问题,还是沙盒设置问题
| 现象 | 问题层 | 先做什么 |
|---|---|---|
| 应用还没装好,Microsoft Store或MSIX报错 | 下载与安装 | 转到微软商店打不开时的MSIX安装 |
| 应用能打开,但卡在“完成Windows设置” | 沙盒初始化 | 记录完整错误、版本与当前模式 |
| 界面能进入,任何命令都在启动前失败 | 沙盒刷新或命令启动 | 保存sandbox.log,用最小命令复现 |
明确出现Windows错误1385 |
登录权限策略 | 停止反复重装,交给IT核对策略 |
| 只有IDE扩展无响应 | IDE依赖或扩展环境 | 按官方文档检查C++运行依赖并完全重启IDE |
安装问题和沙盒问题可以同时存在,但处理顺序不同。应用已经能显示项目和聊天界面时,重新下载MSIX通常不会修复企业策略或沙盒登录权限。
第一步:保存现场,不要先清空配置
完整退出Codex,再记录下面几项:
- Windows 10/11的版本与内部版本号;
- Codex桌面端、CLI或IDE扩展的版本;
- 原始错误全文,包括
helper_failed之前或之后的错误码; - 当前项目路径,以及问题是否只在某个项目出现;
- 当前沙盒实现是
mxc、elevated还是unelevated; - 问题发生前是否刚更新Codex、移动项目、改变权限或更新组织策略。
官方建议保留下面的日志:
CODEX_HOME/.sandbox/sandbox.log
如果没有改过CODEX_HOME,Windows通常可在PowerShell这样确认:
$sandboxLog = Join-Path $HOME ".codex\\.sandbox\\sandbox.log"
Test-Path -LiteralPath $sandboxLog
日志可能包含用户名、项目路径和错误细节。对外提供前先脱敏;不要发送CODEX_HOME/.sandbox-secrets/里的任何内容,也不要把API Key贴进公开Issue。
第二步:优先检查MXC是否兼容
OpenAI当前把mxc列为兼容Windows设备上的推荐实现。它不需要管理员批准的旧版设置,也不会额外创建沙盒账号、修改宿主文件权限或添加本地防火墙规则。
在Windows 11目标项目目录中,可以按官方文档做一次不改保存配置的探针:
codex -c windows.sandbox=mxc sandbox --include-managed-config --permission-profile :workspace -- cmd.exe /d /c echo MXC_OK
$LASTEXITCODE
预期结果是输出MXC_OK,退出码为0。这只证明最小命令能启动;正式使用前仍要测试允许读取、允许写入、应被拒绝的路径、PowerShell和实际网络策略。
如果设备与组织策略允许使用MXC,可以在用户config.toml中启用优先选择,同时保留组织允许的旧版回退:
[features]
prefer_mxc = true
[windows]
sandbox = "elevated"
不要仅因Windows版本号满足就断定MXC一定兼容。探针失败时保留完整错误,检查托管策略是否禁用MXC;显式选择mxc但能力不可用时,不会自动重试旧版沙盒。
第三步:旧版elevated失败时检查UAC与组织策略
MXC不可用或被策略禁用时,elevated是官方建议的旧版回退。它的首次设置需要管理员批准,并会使用专门的低权限沙盒用户、文件权限边界、防火墙规则和本地策略。
如果设置窗口没有出现、被取消,或者批准后仍失败,按这个顺序检查:
- 完全退出Codex,重新触发设置,并确认UAC窗口没有被点“否”或被其他窗口遮住。
- 公司或学校设备先问IT:是否允许创建本地用户/组、修改本地防火墙规则,以及授予沙盒用户启动命令所需的登录权限。
- 对比问题设备与正常设备的Windows策略、OU和安全软件策略,不要凭一个错误标签批量改权限。
- 由管理员统一部署时,按官方文档使用elevated provisioning命令,并替换为真实用户与
CODEX_HOME:
codex sandbox setup --elevated --user 'DOMAIN\alice' --codex-home 'C:\Users\alice\.codex'
这条命令面向管理员部署,不要把示例用户名和路径原样执行。普通个人设备优先让当前Codex流程完成设置;受管设备应由IT决定是否符合组织政策。
第四步:看到1385就转到登录权限策略
如果原始错误中明确出现1385,官方解释是Windows拒绝了沙盒用户启动命令所需的登录类型。常见状态是沙盒用户已经创建,但组策略仍阻止它运行命令。
此时继续卸载、重装或反复点“重试”通常不会改变策略。应让IT核对:
- 设备或用户所在OU是否与正常机器不同;
- Codex创建的沙盒用户是否获得所需登录权;
- 安全基线是否在下一次策略刷新时重新覆盖本地修改;
- 组织是否允许临时使用
unelevated。
unelevated仍有基于ACL的文件边界,但网络隔离弱于elevated,也不支持拒绝读取路径。它只能是策略允许下的临时回退,不应被描述成与MXC或elevated完全等价。
什么时候考虑WSL2
WSL2适合依赖Linux工具链、项目本来就在Linux环境,或可用的Windows原生沙盒无法满足工作流时。它不是helper_failed的无条件修复:
- 项目、依赖和命令都在Windows时,先排查原生沙盒更直接;
- 项目本来就在WSL2中,保持代码和工具链在同一Linux文件系统更合适;
- 公司策略同时限制WSL2时,切换不会绕过组织要求;
- 不要把同一项目在Windows与WSL路径之间来回移动后继续使用旧权限结论。
不要用这些高风险“通用修复”
- 不要删除整个
.codex目录;先保留配置、会话状态和诊断证据。 - 不要对用户目录或系统目录执行递归
Full Control、夺取所有权或宽泛ACL重置。 - 不要关闭Windows Defender、防火墙、签名验证或组织安全软件来“试一下”。
- 不要复制来源不明的沙盒helper程序或DLL替换应用文件。
- 不要把网上个案中的注册表、组策略和本地用户命令直接套到公司设备。
如果日志指向某个生成目录损坏,也应先备份证据、确认准确目标和官方/维护者建议,再做可回退的局部处理;不能从helper_failed四个字直接推导出“删目录”。
最后这样验证才算修复
先在一个没有敏感数据的测试目录运行只读小任务,例如列出文件名并返回数量。成功标准不是设置弹窗消失,而是:
- 沙盒内命令能真正启动并返回退出码
0; - 允许读取的测试文件可读;
- 工作区允许写入的位置可写;
- 配置为拒绝的路径仍然被拒绝;
- 网络行为符合当前权限配置;
- 重启Codex后不会再次进入同一设置循环;
- 新的
sandbox.log没有重复记录同一初始化错误。
若仍失败,整理Windows版本、Codex版本、沙盒实现、完整错误、复现步骤和脱敏日志,再提交给IT或OpenAI支持。这样比一句“helper_failed,重装也没用”更容易定位到真正的故障层。
相关教程
应用本身还没装好,先看Codex下载安装教程;需要确认用户配置、项目配置和当前读取层,继续看Codex config.toml路径与生效检查。修复完成后先在测试目录做小任务,不要直接拿生产项目验证。
资料来源
- OpenAI:Windows sandbox
用于核对MXC、elevated、unelevated的当前定位、MXC探针、1385原因、日志位置与官方排查边界。
- OpenAI:Windows Subsystem for Linux
用于核对何时应把WSL2作为Linux原生工作流选择,而不是把它当成所有Windows故障的通用修复。
- OpenAI Codex issue #48759
近一个月的实际报告,说明setup refresh错误可能发生在命令启动前;个案步骤不作为通用修复。
- OpenAI Codex issue #34329
Windows 10桌面应用设置失败的实际报告,用于补充受影响场景,不替代官方文档。
FAQ
helper_failed是不是说明Codex安装包坏了?
不能这样判断。它可能来自沙盒选择、旧版elevated设置、UAC、登录权限、文件权限或组织策略。先看完整错误与sandbox.log,再决定是否涉及安装包。
可以直接删除整个.codex目录重新开始吗?
不建议。该目录可能包含配置、会话状态和诊断信息。先备份并只读检查日志;没有明确根因和回退方案时,不要删除整个目录或批量重置权限。
Windows错误1385怎么处理?
官方说明该错误表示Windows拒绝沙盒用户启动命令所需的登录类型。公司设备应由IT核对相关组策略或OU差异;策略允许时才考虑临时使用unelevated。
MXC、elevated和unelevated应该选哪个?
兼容且策略允许时优先MXC;MXC不可用时优先elevated;unelevated只作为组织策略允许下的旧版回退,它的网络隔离更弱且不支持拒绝读取路径。
怎样确认问题真的修好了?
在目标工作区运行一个只读小命令,确认能启动且退出码为0;再验证可写目录能写、受限目录仍被拒绝。只看到设置窗口消失不算完成。
下一步
如果你已经了解了基本用法,可以继续阅读下面的教程和实用技巧:



