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

现象

ChatGPT 桌面端打开后停在「完成 Windows 设置」页面,红字提示:

Windows 安装未完成 · helper_failed

完成 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 沙盒设置。