﻿---
title: "Windows 沙箱默认进专用桌面，看不见窗口再关"
summary: "elevated 和 unelevated 都默认 sandbox_private_desktop = true。沙箱 GUI 和 Computer Use 枚举不到交互桌面时才改 false，然后彻底退出 ChatGPT / Codex。"
category: sandbox
level: intermediate
surfaces: [cli, app, ide]
tags: ["Windows", "sandbox", "Computer Use"]
canonical: /tips/windows-sandbox-private-desktop/
---

# Windows 沙箱默认进专用桌面，看不见窗口再关

elevated 和 unelevated 都默认 sandbox_private_desktop = true。沙箱 GUI 和 Computer Use 枚举不到交互桌面时才改 false，然后彻底退出 ChatGPT / Codex。

原生 Windows 沙箱把最终的子进程放到专用桌面，不跟你的交互桌面 `Winsta0\Default` 共用。`elevated` 和 `unelevated` 都这样。源码缺省是 `true`，`config.toml` 样例经常不写这个键，看起来像「没配」。

```toml
[windows]
sandbox = "elevated"
# 默认就是 true，不必写。只有要兼容旧行为才关：
# sandbox_private_desktop = false
```

专用桌面名字类似 `Winsta0\CodexSandboxDesktop-...`。沙箱里启动的记事本、安装向导你看不到、截不到，这是 UI 隔离，不是沙箱坏了。不要为了让窗口弹到你面前就把键关掉。

该关的情况：Computer Use 的 `list_windows` / EnumWindows 找到 0 个窗口，或必须跑在交互桌面的旧工具。这时才写：

```toml
[windows]
sandbox = "elevated"
sandbox_private_desktop = false
```

写进 `%USERPROFILE%\.codex\config.toml`。改完退出所有 `ChatGPT.exe` 和 Codex 进程再开；只新开会话不够，专用桌面和管道是桌面应用进程建的。关了以后文件系统和防火墙边界还在，只是放弃同一桌面的窗口隔离。

这修不了 OpenSSH Session 0 里 elevated 引导失败。引导进程还没起来时，改这个键没用。企业要钉死，写云托管 `requirements.toml` 的 `[windows] sandbox_private_desktop`，不是只写用户 config。`allowed_sandbox_implementations` 只管 elevated / unelevated，不管桌面。

## 来源

- [OpenAI · Windows sandbox](https://learn.chatgpt.com/docs/windows/windows-sandbox)
- [OpenAI · Configuration reference](https://learn.chatgpt.com/docs/config-file/config-reference)
- [openai/codex#37043](https://github.com/openai/codex/issues/37043)
