Windows 沙箱
設定和排查 Windows 上的原生 Codex 沙箱
在 Windows 上,可以通過原生 ChatGPT 桌面應用、CLI 或 IDE 擴充套件使用 Codex。
Windows 版 ChatGPT 桌面應用支援並行聊天、工作樹、定時任務、Git、內建瀏覽器、檔案預覽、plugins 和 skills 等核心工作流程。
應用可以在 PowerShell 中原生執行,並使用 Windows 沙箱,無需依賴 WSL 或虛擬機器。這樣既能保留 Windows 原生工作流程,也能限制檔案系統和網路權限。

在 Windows 上使用 ChatGPT 桌面應用:通過原生 Windows 應用跨專案工作、並行執行聊天,並在一個介面中審查結果。
原生 Windows 沙箱有兩種模式:
- 使用更強的
elevated沙箱在 Windows 上原生執行。 - 使用回退的
unelevated沙箱在 Windows 上原生執行。
設定 Windows 沙箱
在 Windows 原生執行 Codex 時,智能體模式會使用 Windows 沙箱,阻止對工作資料夾之外的檔案進行寫入,並避免在未經明確核准時存取網路。
可以在 config.toml 中設定兩種原生沙箱模式:
[windows]
sandbox = "elevated" # or "unelevated"elevated 是首選原生 Windows 沙箱。它使用專門的低權限沙箱使用者、檔案系統權限邊界、防火牆規則,以及執行沙箱命令所需的本機策略改動。
unelevated 是回退方案。它根據當前使用者建立受限 Windows token,使用基於 ACL 的檔案系統邊界,並通過環境級離線控制替代專用離線使用者的防火牆規則。它比 elevated 弱,但當本機或企業策略阻止管理員核准的設定時,仍可繼續使用。
如果兩種模式都可用,請選擇 elevated。如果預設原生沙箱在當前環境中不可用,可以暫時使用 unelevated,同時排查設定問題。
企業管理員可以通過 requirements.toml 限制允許使用的原生沙箱實現:
[windows]
allowed_sandbox_implementations = ["elevated"]這個範例要求使用 elevated,並禁止回退到 unelevated。如果允許兩種實現,請同時列出兩個值;未選擇具體模式時,Codex 會優先使用 elevated。支援的值見 requirements.toml 參考。
預設情況下,兩種沙箱還會使用 private desktop(專用桌面)來加強 UI 隔離。只有確實需要相容舊版 Winsta0\Default 行為時,才設定 windows.sandbox_private_desktop = false。
沙箱權限
Windows 版本矩陣
| Windows 版本 | 支援級別 | 說明 |
|---|---|---|
| Windows 11 | 推薦 | Windows 上使用 Codex 的最佳基線。企業統一部署時應優先選擇。 |
| 最近且已完全更新的 Windows 10 | 盡力支援 | 可靠性低於 Windows 11,並依賴 ConPTY 等現代控制台支援;實際需要 Windows 10 1809 或更高版本。 |
| 較舊的 Windows 10 build | 不推薦 | 更可能缺少 ConPTY 等控制台元件,也更容易在企業環境中失敗。 |
其他環境前提:
- 系統應提供
winget。如果缺失,請更新 Windows 或先安裝 Windows Package Manager。 - 推薦的原生沙箱需要管理員核准設定。
- 部分企業受管裝置即使作業系統版本符合要求,也會阻止必要的設定步驟。
授予沙箱讀取權限
當命令因為 Windows 沙箱無法讀取某個目錄而失敗時,使用:
/sandbox-add-read-dir C:\absolute\directory\path路徑必須是已經存在的絕對目錄。命令成功後,當前會話中後續執行在沙箱裡的命令可以讀取該目錄。
預設優先使用原生 Windows 沙箱。當工作流程依賴 Linux 原生工具、已經位於 WSL2 中,或兩種原生沙箱都無法滿足需求時,再選擇 WSL。
故障排查與 FAQ
排查受管理 Windows 裝置時,先確認原生沙箱模式、Windows 版本,以及 Codex 顯示的策略錯誤。大多數原生 Windows 支援問題來自沙箱設定、登入權限或檔案系統權限,而不是編輯器本身。
原生沙箱設定失敗
Codex 無法完成 elevated 沙箱設定時,常見原因包括:
- 拒絕了 Windows UAC 或管理員提示。
- 機器不允許建立本機使用者或群組。
- 機器不允許修改防火牆規則。
- 機器阻止沙箱使用者所需的登入權限。
- 其他企業策略阻止了設定流程。
建議按以下順序處理:
- 再次執行
elevated沙箱設定,並在環境允許時核准管理員提示。 - 如果公司裝置阻止設定,請讓 IT 團隊確認是否允許管理員核准本機使用者或群組建立、防火牆設定,以及沙箱使用者所需的登入權限。
- 預設設定仍失敗時,先使用
unelevated繼續工作,同時調查問題。
Codex 切換到了 unelevated 沙箱
這表示 Codex 無法完成更強的 elevated 設定:
- Codex 仍可以在沙箱模式下執行。
- 它仍會應用基於 ACL 的檔案系統邊界,但不再使用獨立沙箱使用者邊界,網路隔離也更弱。
- 該模式適合作為回退,但不應作為長期企業設定的首選。
在受管理企業裝置上,長期方案通常是讓 IT 團隊協助修復 elevated 沙箱設定。
出現 Windows error 1385
如果沙箱命令以錯誤 1385 失敗,說明 Windows 拒絕了沙箱使用者啟動命令所需的登入類型。通常 Codex 已成功建立沙箱使用者,但 Windows 策略仍阻止它們啟動沙箱命令。
處理方式:
- 讓 IT 團隊確認裝置策略是否向 Codex 建立的沙箱使用者授予所需登入權限。
- 如果問題隻影響部分機器或團隊,比較組策略或 OU 差異。
- 如需立即繼續工作,在調查期間使用
unelevated。 - 提交
CODEX_HOME/.sandbox/sandbox.log,並附上 Windows 版本和簡短故障說明。
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++ workload)
- Microsoft Visual C++ Redistributable(x64)
- 使用
winget安裝:winget install --id Microsoft.VisualStudio.2022.BuildTools -e
安裝後請完全重啟 VS Code。