Песочница Windows
Песочница Windows
Настройка и устранение неполадок нативной песочницы Codex в Windows
Используйте Codex в Windows с нативным настольным приложением ChatGPT, CLI или расширением IDE.
Настольное приложение ChatGPT для Windows поддерживает основные рабочие процессы, включая параллельные чаты, рабочие деревья, запланированные задачи, функции Git, встроенный браузер, предварительный просмотр файлов, плагины и навыки.
Приложение может работать непосредственно в PowerShell с песочницей Windows без WSL или виртуальной машины. Это позволяет использовать Codex в привычной среде Windows с ограниченными правами доступа к файловой системе и сети.
Сведения об установке в организации см. в руководстве по развёртыванию в Windows.
Codex поддерживает три реализации песочницы для Windows:
mxc: рекомендуемая песочница для совместимых устройств Windows. Использует встроенную изоляцию процессов без настройки, требующей одобрения администратора, дополнительных учётных записей Windows или локальных правил брандмауэра.elevated: предпочтительный резервный вариант на основе прежней реализации, когда MXC недоступен или отключён. Требует настройки с одобрением администратора. Команды в песочнице выполняются без прав администратора.unelevated: Резервный вариант на основе прежней реализации, когда настройка с повышенными привилегиями недоступна и политика организации разрешает его использование. Обеспечивает более слабую сетевую изоляцию, чемelevated, и не поддерживает пути с запретом чтения.
Настройка песочницы Windows
Песочница Windows обеспечивает соблюдение действующих разрешений на доступ к файловой системе и сети для команд и их дочерних процессов. Профиль разрешений определяет, какие пути доступны для чтения или записи и разрешён ли доступ к сети. Политика подтверждений отдельно определяет, когда Codex запрашивает разрешение на выполнение команд с расширенным доступом. См. раздел «Песочница и подтверждения».
Включение MXC
Для личных учётных записей настольное приложение автоматически отдаёт предпочтение MXC, если устройство его поддерживает. При корпоративном развёртывании или отдельном использовании CLI вы можете включить такое же поведение с помощью приведённой ниже конфигурации.
В config.toml:
[features]
prefer_mxc = trueПри prefer_mxc = true Codex использует MXC для команд Windows, если устройство поддерживает его, а политика допускает его использование.
В противном случае используется существующая процедура выбора и настройки прежней реализации.
В организациях, где поддержка на устройствах или политики различаются, сохраните в windows.sandbox разрешённую в вашей организации прежнюю реализацию, elevated или unelevated, в качестве резервного варианта.
Администраторы могут распространять эту конфигурацию как настройку по умолчанию или принудительно задавать features.prefer_mxc = true через requirements.toml. Оба способа допускают переход к прежней реализации. Различия между настройками по умолчанию и требованиями описаны в разделе «Централизованное управление конфигурацией».
Запрет использования MXC
Чтобы запретить использование MXC в вашей организации, добавьте следующее в централизованно управляемый файл
requirements.toml:
[windows]
allow_mxc = falseЭто блокирует как автоматический выбор MXC, так и явное указание windows.sandbox = "mxc". Существующие настройки и требования для прежних реализаций песочницы продолжают действовать.
Совместимость MXC
На хосте уже должны быть доступны необходимые возможности Microsoft Execution Containers (MXC), которые Microsoft постепенно внедряет на устройствах Windows 11. Microsoft представила изоляцию процессов MXC в Windows 11 24H2 (сборка 26100.9278) и 25H2 (сборка 26200.9278). Используйте приведённую ниже команду, чтобы проверить поддержку MXC на вашем устройстве.
В Codex CLI 0.162.0 и более поздних версиях вы можете проверить MXC для одной команды, не меняя сохранённый выбор песочницы. В каталоге проекта выполните:
codex -c windows.sandbox=mxc sandbox --include-managed-config --permission-profile :workspace -- cmd.exe /d /c echo MXC_OK
$LASTEXITCODEОжидаемый вывод — MXC_OK, код завершения — 0. Это проверяет запуск команды с профилем разрешений рабочей области и централизованно заданными требованиями.
Явный выбор windows.sandbox = "mxc" приводит к ошибке, если необходимые встроенные возможности недоступны или политика блокирует MXC.
Учитывайте следующие ограничения совместимости:
- Для управляемого сетевого доступа требуется, чтобы действовало значение
allow_local_binding = true. MXC разрешает подключения к службам на петлевом интерфейсе хоста и от них. Правила прокси для доменов по-прежнему применяются к трафику, проходящему через прокси, но дополнительные проверки адресов назначения в частной сети на стороне прокси снимаются. - Оставшиеся дочерние процессы завершаются при завершении команды переднего плана. Проверьте рабочие процессы, которые зависят от отсоединённых серверов разработки.
- Как и в Linux и WSL, glob-шаблоны запрета чтения учитывают файлы, соответствующие им на момент запуска каждого процесса в песочнице. Созданные позже файлы, соответствующие шаблонам, остаются доступными для чтения этому запущенному процессу, если остальные его разрешения допускают доступ. Длительно работающие оболочки, скрипты, процессы наблюдения и серверы разработки сохраняют этот снимок на всё время своей работы, а не на весь сеанс Codex. См. момент определения совпадений для glob-шаблонов запрета чтения.
Настройка прежней реализации как резервного варианта
Выберите резервную реализацию в config.toml:
[windows]
sandbox = "elevated" # or "unelevated"elevated — предпочтительный резервный вариант на основе прежней реализации. Он использует выделенные учётные записи песочницы с пониженными привилегиями, ограничения доступа к файловой системе, правила брандмауэра и изменения локальных политик, необходимые для команд, выполняемых в песочнице.
Как и MXC, elevated определяет файлы, соответствующие glob-шаблонам запрета чтения, при запуске каждого процесса в песочнице. Созданные позже файлы, соответствующие шаблонам, остаются доступными для чтения этому запущенному процессу, если остальные его разрешения допускают доступ. О последствиях для длительно работающих процессов см. в разделе Момент определения совпадений для glob-шаблонов запрета чтения.
unelevated — резервный вариант на основе прежней реализации. Он выполняет команды с ограниченным токеном Windows, созданным на основе вашей текущей учётной записи, применяет ограничения доступа к файловой системе на основе ACL и использует средства отключения сети на уровне окружения вместо специального правила брандмауэра для учётной записи без сетевого доступа. Он обеспечивает более слабую сетевую изоляцию, чем elevated, и не поддерживает запрет чтения по заданным путям, но остаётся полезным, когда настройка с одобрением администратора заблокирована локальной или корпоративной политикой.
Используйте MXC, если устройство его поддерживает, а политика допускает его использование. В противном случае отдавайте предпочтение elevated, используя unelevated как дополнительный резервный вариант.
Администраторы организации могут ограничить набор прежних реализаций песочницы,
которые Codex может использовать, через requirements.toml:
[windows]
allowed_sandbox_implementations = ["elevated"]В этом примере разрешён elevated и запрещён переход к unelevated. Он не ограничивает mxc, когда MXC доступен. Другие централизованно заданные требования к разрешениям и сети по-прежнему действуют. Чтобы разрешить обе прежние реализации, укажите оба значения; если режим не выбран, Codex отдаёт предпочтение elevated.
Поддерживаемые значения см. в справочнике по requirements.toml. Чтобы также заблокировать MXC, используйте отдельное требование windows.allow_mxc.
По умолчанию оба прежних режима песочницы также используют отдельный рабочий стол для усиленной изоляции пользовательского интерфейса.
Подготовка прежней песочницы elevated силами ИТ-отдела
Для сотрудников без локальных прав администратора ИТ-отдел может установить CLI и подготовить песочницу elevated до первого запуска Codex сотрудником. Из процесса развёртывания с повышенными правами выполните:
codex sandbox setup --elevated --user 'DOMAIN\alice' --codex-home 'C:\Users\alice\.codex'Замените имя пользователя и путь на имя пользователя сотрудника в Windows и его CODEX_HOME. Команда считывает конфигурацию этого пользователя, подготавливает песочницу и сохраняет windows.sandbox = "elevated". Затем сотрудник запускает Codex из обычного терминала.
Разрешения песочницы
Матрица версий Windows
| Версия Windows | Уровень поддержки | Примечания |
|---|---|---|
| Windows 11 | Рекомендуется | Оптимальная базовая версия для Codex в Windows. Используйте ее при стандартизации корпоративного развертывания. |
| Актуальная, полностью обновленная Windows 10 | По мере возможности | Может работать, но менее надежна, чем Windows 11. В Windows 10 Codex зависит от поддержки современных консолей, включая ConPTY. На практике требуется Windows 10 версии 1809 или новее. |
| Более старые сборки Windows 10 | Не рекомендуется | В них чаще отсутствуют необходимые компоненты консоли, такие как ConPTY, и чаще возникают сбои в корпоративных средах. |
Дополнительные требования к окружению:
wingetдолжен быть доступен. Если он отсутствует, обновите Windows или установите Windows Package Manager перед настройкой Codex.- Устаревшая песочница
elevatedтребует настройки, одобренной администратором. - На некоторых устройствах под корпоративным управлением необходимые шаги настройки блокируются, даже если версия ОС соответствует требованиям.
- MXC дополнительно требует встроенных возможностей, описанных в разделе «Совместимость MXC»; эта матрица не подтверждает доступность MXC на конкретном устройстве.
Проверка доступа на чтение в песочнице
Если команда не может прочитать каталог, проверьте действующий профиль разрешений,
централизованно заданные требования и права доступа к файлам Windows. В CLI используйте /status
и /debug-config для проверки текущего сеанса и конфигурации. Попросите
администратора пересмотреть централизованно заданное ограничение вместо отключения песочницы.
По умолчанию используйте нативную песочницу Windows. Выбирайте WSL, если вам нужны инструменты Linux, ваш рабочий процесс уже организован в WSL2 или доступные нативные реализации для Windows не отвечают вашим потребностям.
Устранение неполадок и часто задаваемые вопросы
При устранении неполадок на управляемом компьютере с Windows начните с проверки режима нативной песочницы, версии Windows и ошибок политик, которые показывает Codex. Для MXC проверьте совместимость и действующую сетевую политику. Проблемы с устаревшей песочницей могут быть связаны с настройкой, правами входа или разрешениями файловой системы.
Не удалось настроить устаревшую песочницу
Если Codex не удается завершить настройку песочницы elevated, наиболее распространенными причинами
являются:
- запрос Windows UAC или запрос прав администратора был отклонен;
- на компьютере запрещено создавать локальных пользователей или группы;
- на компьютере запрещено изменять правила брандмауэра;
- на компьютере заблокированы права на вход, необходимые пользователям песочницы;
- другая корпоративная политика блокирует часть процесса настройки.
Что можно сделать:
- Повторите настройку песочницы
elevatedи подтвердите запрос прав администратора, если это разрешено в вашей среде. - Если корпоративный ноутбук блокирует настройку, уточните у ИТ-отдела, разрешена ли на нём настройка с одобрения администратора, включающая создание локальных пользователей и групп, настройку брандмауэра и предоставление необходимых прав входа пользователям песочницы.
- Если настройка по-прежнему не удаётся и управляемая политика это разрешает, используйте
unelevated, пока специалисты разбираются в проблеме.
Codex переключил меня на песочницу без повышения привилегий
Реализация unelevated может быть выбрана в конфигурации или использоваться как
резервный вариант, когда настройка elevated недоступна.
- Codex по-прежнему может работать в режиме песочницы.
- Границы файловой системы на основе ACL по-прежнему применяются, однако отдельная
граница пользователя песочницы из
elevatedне используется, а изоляция сети менее надежна. - Это полезный резервный вариант, но не предпочтительная долгосрочная корпоративная конфигурация.
На управляемом корпоративном ноутбуке сначала проверьте совместимость с MXC.
Если MXC недоступна или отключена, попросите ИТ-отдел настроить
elevated.
Отображается ошибка Windows 1385
Если команды в песочнице завершаются с ошибкой 1385, Windows запрещает тип входа,
который необходим пользователю песочницы для запуска команды.
На практике это обычно означает, что Codex успешно создал пользователей песочницы, но политика Windows по-прежнему не позволяет этим пользователям запускать команды в песочнице.
Что делать:
- Уточните у ИТ-отдела, предоставляет ли политика устройства необходимые права на вход созданным Codex пользователям песочницы.
- Сравните различия в групповой политике или OU, если проблема затрагивает только отдельные компьютеры или команды.
- Если необходимо немедленно продолжить работу, используйте песочницу
unelevated, пока исследуется проблема с политикой. - Отправьте
CODEX_HOME/.sandbox/sandbox.logвместе с версией Windows и кратким описанием сбоя.
Codex предупреждает, что некоторые папки доступны для записи группе Everyone
Codex может предупреждать, что некоторые папки доступны для записи группе Everyone.
Если вы видите это предупреждение, разрешения Windows для этих папок слишком широки, чтобы песочница могла обеспечить их полную защиту.
Что делать:
- Проверьте папки, перечисленные Codex в предупреждении.
- Удалите у
Everyoneдоступ на запись в эти папки, если это допустимо в вашем окружении. - Перезапустите Codex или повторно выполните настройку песочницы после исправления этих разрешений.
Если вы не знаете, как изменить эти разрешения, обратитесь за помощью в ИТ-отдел.
Команды в песочнице не могут подключиться к сети
Некоторые чаты Codex намеренно запускаются без исходящего доступа к сети — это зависит от используемого режима разрешений.
Если задача завершается с ошибкой из-за отсутствия доступа к сети:
- Проверьте, должна ли задача выполняться с отключенной сетью.
- Если вы ожидали доступ к сети, перезапустите Codex и повторите попытку.
- Если проблема сохраняется, соберите журнал песочницы, чтобы команда могла проверить, не находится ли песочница компьютера в частично настроенном или неисправном состоянии.
Песочница раньше работала, а затем перестала
Это может произойти после:
- перемещения репозитория или рабочего пространства;
- изменения разрешений компьютера;
- изменения политик Windows;
- других изменений конфигурации системы.
Что можно сделать:
- Перезапустите Codex.
- Для MXC повторите проверку совместимости и проверьте
действующую сетевую политику. Для устаревшей реализации
elevatedпопробуйте настроить песочницу ещё раз. - Если нужна устаревшая песочница и централизованная политика разрешает её использование, используйте
unelevatedкак временный запасной вариант. - Соберите журнал песочницы для анализа.
Мне нужно отправить диагностические данные в OpenAI
Если проблемы сохраняются, отправьте:
CODEX_HOME/.sandbox/sandbox.log
Также полезно приложить:
- краткое описание того, что вы пытались сделать;
- выбранную реализацию:
mxc,elevatedилиunelevated; - все сообщения об ошибках, показанные в приложении;
- сведения о том, появлялась ли ошибка
1385или другая ошибка Windows или PowerShell; - номер сборки Windows;
- сведения о том, используете ли вы Windows 11 или Windows 10.
Не отправляйте:
- содержимое
CODEX_HOME/.sandbox-secrets/
Расширение IDE установлено, но не отвечает
В вашей системе могут отсутствовать средства разработки C++, необходимые некоторым нативным зависимостям:
- Visual Studio Build Tools (рабочая нагрузка C++)
- Microsoft Visual C++ Redistributable (x64)
- С помощью
wingetвыполнитеwinget install --id Microsoft.VisualStudio.2022.BuildTools -e
После установки полностью перезапустите VS Code.