本文由 gwozai 整理。ChatGPT / Codex 已经装上,打开后卡在「完成 Windows 设置」,红字 helper_failed,点「是」却没有真正的 Windows UAC。问题通常不在安装包,而在用户目录里的沙盒权限。
现象
ChatGPT 桌面端打开后停在「完成 Windows 设置」页面,红字提示:
Windows 安装未完成 · helper_failed

- 页面中间有「是 / 否」权限框,但点了不会弹出真正的 Windows UAC。
- 点「重试 Windows 设置」立刻失败,没有系统弹窗。
- 「继续受限访问」也无法正常进入完整功能。
页面上的权限框只是示意图,不是系统弹窗。真正失败原因在本地沙盒目录权限。
原因
ChatGPT / Codex 在 Windows 上需要一次性配置沙盒。安装过程会创建目录:
%USERPROFILE%\.codex\.sandbox-bin
这个目录在提权安装时被建成 Administrators 所有。当前用户往往只有修改权 (M),没有改 ACL 的权限(WRITE_DAC)。
之后程序用普通权限去锁定该目录,调用 SetNamedSecurityInfoW 改安全描述符,Windows 返回错误 5(拒绝访问)。界面就把这次失败显示成 helper_failed。
| 项目 | 说明 |
|---|---|
| 失败目录 | %USERPROFILE%\.codex\.sandbox-bin |
| 错误码 | 5 = ERROR_ACCESS_DENIED(拒绝访问) |
| 日志关键字 | helper_sandbox_lock_failed |
| 修复前所有者 | BUILTIN\Administrators |
| 修复前用户权限 | 当前用户仅有 (OI)(CI)(M) 修改权 |
| 修复后 | 所有者改回当前用户,并授予完全控制 (F) |
现场一例:机器用户 XXW\xiaxi,目录实际是 C:\Users\xiaxi\.codex\.sandbox-bin。
关键日志
setup error: helper_sandbox_lock_failed: lock sandbox bin dir
C:\Users\xiaxi\.codex\.sandbox-bin failed:
SetNamedSecurityInfoW sandbox dir failed: 5
codex.exe setup refresh: exited with status ExitStatus(ExitStatus(1))
解决方法
在出问题的那台 Windows 上打开 PowerShell,按下面顺序执行。不要再点页面里的「是」。
第 1 步:确认权限(普通 PowerShell)
icacls "$env:USERPROFILE\.codex\.sandbox-bin"; (Get-Acl "$env:USERPROFILE\.codex\.sandbox-bin").Owner
若 Owner 显示 BUILTIN\Administrators,且当前用户只有 (M),即可确认是本问题。
第 2 步:修复权限
用「以管理员身份运行」的 PowerShell 执行:
Get-Process ChatGPT,Codex -ErrorAction SilentlyContinue | Stop-Process -Force
$p="$env:USERPROFILE\.codex\.sandbox-bin"
New-Item -ItemType Directory -Force -Path $p | Out-Null
takeown /f $p /a
icacls $p /grant "${env:USERNAME}:(OI)(CI)F"
takeown /f $p
Remove-Item "$env:USERPROFILE\.codex\.sandbox\setup_error.json" -ErrorAction SilentlyContinue
第 3 步:重新打开 ChatGPT
权限改完后直接重新打开 ChatGPT。不要再点示意图里的「是 / 否」。沙盒锁定成功后,设置页会消失,进入正常界面。
如果仍停在设置页,可在管理员 PowerShell 再执行:
codex sandbox setup --elevated --current-user
没有 codex 命令时可以跳过这一条,只做第 2 步后重开应用即可。
处理过程(现场)
| 步骤 | 做法 | 结论 |
|---|---|---|
| 1 | 看界面报错 | helper_failed,无真实 UAC,排除「没点允许」 |
| 2 | 读 sandbox 日志 | 定位到 .sandbox-bin 改 ACL 失败,错误码 5 |
| 3 | icacls 核对目录权限 |
所有者是 Administrators,xiaxi 只有修改权 |
| 4 | takeown + icacls 修复 |
所有权交还 xiaxi,授予完全控制 (F) |
| 5 | 删除 setup_error.json 并重开 |
设置完成,问题消失 |
以后再遇到怎么查日志
不要自己翻文件夹,在 PowerShell 里执行下面一行,看最新日志即可:
Get-ChildItem "$env:USERPROFILE\.codex\.sandbox" -File | Sort-Object LastWriteTime -Descending | Select-Object -First 3 | ForEach-Object { "`n==== $($_.Name) ===="; Get-Content $_.FullName -Tail 60 }
注意
- 不要删除整个
.codex目录,会话和配置都在里面。 - 不要单独运行
codex-windows-sandbox-setup.exe,它必须由 ChatGPT 带着参数启动。 - 重装应用通常没用,因为坏的是用户目录权限,不在安装包里。
- 页面里的「是 / 否」点了也不会弹出系统 UAC,不要在那一页空点。
- 这是 Windows 沙盒目录权限问题,和 Mac 上的 Codex 配置无关。
核心结论: 把被管理员组占用的 .sandbox-bin 交还给当前用户,ChatGPT 才能完成 Windows 沙盒设置。