原生 Windows 沙箱与排障
配置 elevated、管理实施方式限制,检查错误 1385 和目录读取权限。
原生 Windows 使用 PowerShell 与 Windows 沙箱;需要 Linux 工具和权限模型时可用WSL2。官方推荐 Windows 11,充分更新的 Windows 10 为 best effort,实际需现代 console/ConPTY 支持。
两种实施方式
[windows]
sandbox = "elevated"elevated 使用专用低权限用户、文件权限边界、防火墙与必要本地策略;unelevated 使用当前用户派生的受限 token、ACL 和环境层离线控制,网络隔离较弱。管理员设置不可用时可作为备用,但组织 requirements 可能只允许 elevated。
管理员可在 requirements.toml 使用 windows.allowed_sandbox_implementations=["elevated"] 限制实现。两种模式默认使用 private desktop;sandbox_private_desktop=false 是兼容旧 Winsta0\Default 的设置,不是日常必选项。
目录读取失败
当前会话可运行:
/sandbox-add-read-dir C:\absolute\directory\path路径必须是存在的绝对目录,成功后后续沙箱命令获得该目录读取权限。它不表示可任意写入,也不替代管理员要求。
Elevated setup 失败
核对是否拒绝 UAC、设备是否允许创建本地用户/组、修改防火墙和授予沙箱用户所需 logon rights。企业设备应由 IT 确认这些设置,不能仅根据 Windows 版本判断能够完成 setup。
错误 1385 表示 Windows 拒绝启动命令所需的登录类型;沙箱用户可能已经创建成功。比较受影响设备的组策略或 OU,收集 CODEX_HOME/.sandbox/sandbox.log、系统版本和简短复现步骤。
ACL 与网络
Everyone 可写目录警告说明权限过宽,核查列出的目录,适当收窄后重启或重跑 setup。网络失败先确认任务是否预期离线,若本应联网则检查策略与沙箱是否处于不完整状态,再提供日志。
不要把 unelevated 与 elevated 当作同等隔离强度;需要 Linux 行为的工作流应按 WSL2 指南验证。