Bac à sable Windows

Bac à sable Windows

Configurez et dépannez le bac à sable Codex natif sous Windows

Utilisez Codex sous Windows avec l’application de bureau ChatGPT, la CLI ou l’extension IDE.

L’application de bureau ChatGPT sous Windows prend en charge les principaux workflows, tels que les discussions parallèles, les worktrees, les tâches planifiées, les fonctionnalités Git, le navigateur intégré, les aperçus de fichiers, les plugins et les skills.

L’application peut s’exécuter nativement dans PowerShell avec un bac à sable Windows sans nécessiter WSL ni machine virtuelle. Codex reste ainsi intégré aux flux de travail natifs de Windows tout en appliquant des autorisations limitées pour le système de fichiers et le réseau.

Pour une installation en entreprise, consultez le Guide de déploiement Windows.

Utilisez l’application de bureau ChatGPT sur WindowsTravaillez sur plusieurs projets, menez des conversations en parallèle et examinez les résultats au même endroit avec l’application Windows native.

Codex prend en charge trois implémentations de bac à sable sous Windows :

  • mxc : le bac à sable recommandé sur les appareils Windows compatibles. Utilise l’isolation native des processus sans configuration approuvée par un administrateur, comptes Windows supplémentaires ni règles de pare-feu locales.
  • elevated : la solution de repli historique à privilégier lorsque MXC est indisponible ou désactivé. Nécessite une configuration approuvée par un administrateur. Les commandes du bac à sable s’exécutent sans privilèges d’administrateur.
  • unelevated : Une solution de repli historique lorsque la configuration avec élévation de privilèges est indisponible et que la politique de l’organisation l’autorise. Offre une isolation réseau plus faible que elevated et ne prend pas en charge les chemins interdits en lecture.

Configurer le bac à sable Windows

Le bac à sable Windows applique les autorisations actives du système de fichiers et du réseau aux commandes et à leurs processus enfants. Le profil d’autorisations détermine quels chemins sont accessibles en lecture ou en écriture et si l’accès réseau est autorisé. La politique d’approbation contrôle séparément les cas où Codex demande à exécuter des commandes avec des droits d’accès supplémentaires. Consultez Bac à sable et approbations.

Activer MXC

L’application de bureau privilégie automatiquement MXC pour les comptes grand public lorsque l’appareil le prend en charge. Pour les déploiements en entreprise ou l’utilisation autonome de la CLI, vous pouvez activer le même comportement avec la configuration ci-dessous.

Dans config.toml :

[features]
prefer_mxc = true

Avec prefer_mxc = true, Codex utilise MXC pour les commandes Windows lorsque l’appareil et la politique le permettent. Sinon, il utilise le processus existant de sélection et de configuration des implémentations historiques.

Dans les entreprises où la compatibilité des appareils ou la politique varie, conservez windows.sandbox défini sur l’implémentation historique autorisée par votre organisation, elevated ou unelevated, comme solution de repli.

Les administrateurs peuvent distribuer cette configuration par défaut ou imposer features.prefer_mxc = true via requirements.toml. Les deux approches autorisent le recours à une implémentation historique. Consultez la configuration gérée pour comprendre la différence entre valeurs par défaut et exigences.

Maintenir MXC désactivé

Pour empêcher l’utilisation de MXC dans votre organisation, ajoutez ceci à votre fichier géré requirements.toml :

[windows]
allow_mxc = false

Cela bloque à la fois la sélection automatique de MXC et la sélection explicite via windows.sandbox = "mxc". Les paramètres et exigences existants des bacs à sable historiques restent applicables.

Compatibilité de MXC

L’hôte doit déjà disposer des fonctionnalités Microsoft Execution Containers (MXC) requises, que Microsoft déploie sur les appareils Windows 11. Microsoft a introduit l’isolation des processus MXC dans Windows 11 24H2 (build 26100.9278) et 25H2 (build 26200.9278). Utilisez la commande ci-dessous pour vérifier la prise en charge de MXC sur votre appareil.

Dans Codex CLI 0.162.0 et versions ultérieures, vous pouvez tester MXC pour une seule commande sans modifier la sélection du bac à sable enregistrée. Depuis le répertoire de votre projet, exécutez :

codex -c windows.sandbox=mxc sandbox --include-managed-config --permission-profile :workspace -- cmd.exe /d /c echo MXC_OK
$LASTEXITCODE

La sortie attendue est MXC_OK, avec le code de sortie 0. Cela vérifie le lancement des commandes avec le profil d’autorisations de l’espace de travail et les exigences gérées.

La sélection explicite via windows.sandbox = "mxc" échoue si les fonctionnalités natives requises sont indisponibles ou si la politique bloque MXC.

Tenez compte des limites de compatibilité suivantes :

  • La gestion du réseau nécessite que allow_local_binding = true soit effectivement appliqué. MXC autorise les connexions vers et depuis les services sur l’interface de bouclage de l’hôte. Les règles de domaine du proxy continuent de s’appliquer au trafic qui transite par celui-ci, mais les vérifications supplémentaires du proxy concernant les destinations sur les réseaux privés sont supprimées.
  • Les processus enfants restants s’arrêtent lorsque la commande au premier plan se termine. Testez les workflows qui reposent sur des serveurs de développement détachés.
  • Les motifs glob d’interdiction de lecture utilisent les fichiers correspondants au démarrage de chaque processus exécuté dans le bac à sable, comme sous Linux et WSL. Les fichiers correspondants créés ensuite restent lisibles par ce processus en cours d’exécution si ses autres autorisations permettent d’y accéder. Les shells, scripts, processus de surveillance et serveurs de développement de longue durée conservent cet instantané pendant toute leur durée de vie, et non pendant toute la session Codex. Consultez le moment d’évaluation des motifs glob d’interdiction de lecture.

Configurer une solution de repli historique

Sélectionnez l’implémentation de repli dans config.toml :

[windows]
sandbox = "elevated" # or "unelevated"

elevated est la solution de repli historique à privilégier. Elle utilise des comptes dédiés au bac à sable avec des privilèges réduits, des restrictions d’accès au système de fichiers, des règles de pare-feu et les modifications de politique locale nécessaires aux commandes qui s’exécutent dans le bac à sable.

Comme MXC, elevated énumère les fichiers correspondant aux motifs glob d’interdiction de lecture au démarrage de chaque processus exécuté dans le bac à sable. Les fichiers correspondants créés ensuite restent lisibles par ce processus en cours d’exécution si ses autres autorisations permettent d’y accéder. Consultez le moment d’évaluation des motifs glob d’interdiction de lecture pour connaître les conséquences sur les processus de longue durée.

unelevated est une solution de repli historique. Elle exécute les commandes avec un jeton Windows restreint dérivé de votre utilisateur actuel, applique des restrictions d’accès au système de fichiers fondées sur les ACL et utilise des contrôles hors ligne au niveau de l’environnement à la place de la règle de pare-feu dédiée à l’utilisateur hors ligne. Elle offre une isolation réseau plus faible que elevated et ne prend pas en charge les chemins interdits en lecture, mais reste utile lorsque la configuration approuvée par un administrateur est bloquée par la politique locale ou celle de l’entreprise.

Utilisez MXC lorsque l’appareil et la politique le permettent. Sinon, privilégiez elevated, avec unelevated comme solution de repli secondaire.

Les administrateurs d’entreprise peuvent limiter les implémentations historiques de bac à sable que Codex peut utiliser via requirements.toml :

[windows]
allowed_sandbox_implementations = ["elevated"]

Cet exemple autorise elevated et empêche le repli vers unelevated. Il ne restreint pas mxc lorsque MXC est disponible. Les autres exigences gérées relatives aux autorisations et au réseau restent applicables. Pour autoriser les deux implémentations historiques, incluez les deux valeurs ; Codex privilégie elevated lorsqu’aucun mode n’est sélectionné.

Consultez la référence de requirements.toml pour connaître les valeurs prises en charge. Pour bloquer également MXC, utilisez l’exigence distincte windows.allow_mxc.

Par défaut, les deux modes historiques de bac à sable utilisent également un bureau privé pour renforcer l’isolation de l’interface utilisateur.

Préparation du bac à sable historique avec élévation de privilèges par le service informatique

Pour les employés sans droits d’administrateur local, le service informatique peut installer la CLI et préparer le bac à sable avec élévation de privilèges avant que l’employé ne lance Codex. Depuis un processus de déploiement exécuté avec des privilèges élevés, exécutez :

codex sandbox setup --elevated --user 'DOMAIN\alice' --codex-home 'C:\Users\alice\.codex'

Remplacez l’identité et le chemin par l’identité Windows de l’employé et son CODEX_HOME. La commande lit la configuration de cet utilisateur, prépare le bac à sable et enregistre windows.sandbox = "elevated". L’employé exécute ensuite Codex depuis un terminal normal.

Autorisations du bac à sable

Matrice des versions de Windows

Version de Windows Niveau de prise en charge Remarques
Windows 11 Recommandé Meilleure base pour Codex sous Windows. Utilisez cette version si vous standardisez un déploiement en entreprise.
Version récente et entièrement mise à jour de Windows 10 Prise en charge au mieux Peut fonctionner, mais reste moins fiable que Windows 11. Sous Windows 10, Codex dépend d’une prise en charge moderne de la console, notamment de ConPTY. En pratique, Windows 10 version 1809 ou ultérieure est requis.
Anciennes versions de Windows 10 Non recommandé Elles sont plus susceptibles de ne pas disposer de composants de console requis tels que ConPTY et d’échouer dans les environnements d’entreprise.

Hypothèses supplémentaires concernant l’environnement :

  • winget doit être disponible. S’il est absent, mettez Windows à jour ou installez Windows Package Manager avant de configurer Codex.
  • L’ancien bac à sable elevated nécessite une configuration approuvée par un administrateur.
  • Certains appareils gérés par l’entreprise bloquent les étapes de configuration requises même lorsque la version du système d’exploitation est compatible.
  • MXC nécessite en outre les fonctionnalités natives décrites dans Compatibilité de MXC ; cette matrice ne permet pas d’établir la disponibilité de MXC sur un appareil donné.

Vérifier l’accès en lecture du bac à sable

Lorsqu’une commande ne peut pas lire un répertoire, vérifiez le profil d’autorisations actif, les exigences gérées et les autorisations des fichiers Windows. Dans la CLI, utilisez /status et /debug-config pour examiner la session et la configuration actives. Demandez à votre administrateur d’examiner une restriction gérée plutôt que de désactiver le bac à sable.

Utilisez par défaut le bac à sable natif de Windows. Choisissez WSL si vous avez besoin d’outils natifs de Linux, si votre flux de travail repose déjà sur WSL2 ou si les implémentations natives de Windows disponibles ne répondent pas à vos besoins.

Dépannage et FAQ

Pour dépanner une machine Windows gérée, commencez par vérifier le mode du bac à sable natif, la version de Windows et les éventuelles erreurs de stratégie affichées par Codex. Pour MXC, vérifiez la compatibilité et la stratégie réseau effective. Les problèmes du bac à sable historique peuvent provenir de la configuration, des droits d’ouverture de session ou des autorisations du système de fichiers.

La configuration de mon bac à sable historique a échoué

Si Codex ne parvient pas à terminer la configuration du bac à sable elevated, les causes les plus courantes sont les suivantes :

  • l’invite UAC de Windows ou l’invite de l’administrateur a été refusée ;
  • la machine n’autorise pas la création d’utilisateurs ou de groupes locaux ;
  • la machine n’autorise pas la modification des règles du pare-feu ;
  • la machine bloque les droits d’ouverture de session requis par les utilisateurs du bac à sable ;
  • ou une autre stratégie d’entreprise bloque une partie du processus de configuration.

Solutions à essayer :

  1. Relancez la configuration du bac à sable elevated et acceptez la demande d’autorisation administrateur si votre environnement le permet.
  2. Si votre ordinateur portable professionnel bloque cette opération, demandez à votre équipe informatique si la machine autorise une configuration approuvée par un administrateur pour la création d’utilisateurs et de groupes locaux, la configuration du pare-feu et les droits d’ouverture de session requis pour les utilisateurs du bac à sable.
  3. Si la configuration échoue toujours et que la stratégie gérée le permet, utilisez unelevated pendant l’analyse du problème.

Codex m’a fait passer au bac à sable sans élévation de privilèges

L’implémentation unelevated peut être sélectionnée dans la configuration ou servir de solution de repli lorsque la configuration de elevated n’est pas possible.

  • Codex peut toujours s’exécuter dans un mode en bac à sable.
  • Il applique toujours des limites au système de fichiers fondées sur les ACL, mais n’utilise pas la limite distincte des utilisateurs du bac à sable fournie par elevated et son isolation du réseau est moins robuste.
  • Il s’agit d’une solution de secours utile, mais pas de la configuration d’entreprise à long terme recommandée.

Pour un ordinateur portable d’entreprise géré, vérifiez la compatibilité de MXC en premier lieu. Si MXC est indisponible ou désactivé, demandez à votre équipe informatique de mettre en place elevated.

L’erreur Windows 1385 s’affiche

Si les commandes exécutées dans le bac à sable échouent avec l’erreur 1385, Windows refuse le type d’ouverture de session dont l’utilisateur du bac à sable a besoin pour lancer la commande.

En pratique, cela signifie généralement que Codex a créé les utilisateurs du bac à sable correctement, mais que la stratégie Windows empêche toujours ces utilisateurs de lancer des commandes dans le bac à sable.

Procédure à suivre :

  1. Demandez à votre équipe informatique si la stratégie de l’appareil accorde les droits d’ouverture de session requis aux utilisateurs du bac à sable créés par Codex.
  2. Comparez les différences de stratégie de groupe ou d’OU si le problème ne touche que certaines machines ou équipes.
  3. Si vous devez continuer à travailler immédiatement, utilisez le bac à sable unelevated pendant l’examen du problème de stratégie.
  4. Envoyez CODEX_HOME/.sandbox/sandbox.log avec votre version de Windows et une brève description de l’échec.

Codex avertit que certains dossiers sont accessibles en écriture par Everyone

Codex peut signaler que certains dossiers sont accessibles en écriture par Everyone.

Si cet avertissement s’affiche, les autorisations Windows de ces dossiers sont trop étendues pour que le bac à sable puisse les protéger complètement.

Procédure à suivre :

  1. Examinez les dossiers répertoriés par Codex dans l’avertissement.
  2. Retirez l’accès en écriture de Everyone à ces dossiers si cela convient à votre environnement.
  3. Redémarrez Codex ou relancez la configuration du bac à sable après avoir corrigé ces autorisations.

Si vous ne savez pas comment modifier ces autorisations, demandez de l’aide à votre équipe informatique.

Les commandes exécutées dans le bac à sable ne peuvent pas accéder au réseau

Certaines discussions Codex sont volontairement exécutées sans accès réseau sortant, selon le mode d’autorisation utilisé.

Si une tâche échoue parce qu’elle ne peut pas accéder au réseau :

  1. Vérifiez si la tâche était censée s’exécuter avec le réseau désactivé.
  2. Si vous vous attendiez à disposer d’un accès réseau, redémarrez Codex et réessayez.
  3. Si le problème persiste, collectez le journal du bac à sable afin que l’équipe puisse vérifier si la machine se trouve dans un état partiel ou défectueux du bac à sable.

Le bac à sable fonctionnait auparavant, puis a cessé de fonctionner

Cela peut se produire après :

  • le déplacement d’un dépôt ou d’un espace de travail ;
  • la modification des autorisations de la machine ;
  • la modification des stratégies Windows ;
  • ou d’autres modifications de la configuration du système.

Solutions à essayer :

  1. Redémarrez Codex.
  2. Pour MXC, relancez le test de compatibilité et vérifiez la politique réseau effective. Pour l’ancienne implémentation elevated, réessayez de configurer le bac à sable.
  3. Si un ancien bac à sable est nécessaire et que la politique gérée l’autorise, utilisez unelevated comme solution de repli temporaire.
  4. Récupérez le journal du bac à sable pour examen.

Je dois envoyer des informations de diagnostic à OpenAI

Si les problèmes persistent, envoyez :

  • CODEX_HOME/.sandbox/sandbox.log

Il est également utile d’inclure :

  • une brève description de ce que vous tentiez de faire,
  • l’implémentation sélectionnée : mxc, elevated ou unelevated,
  • tout message d’erreur affiché dans l’application,
  • si vous avez vu 1385 ou une autre erreur Windows ou PowerShell,
  • votre numéro de build Windows,
  • et si vous utilisez Windows 11 ou Windows 10.

N’envoyez pas :

  • le contenu de CODEX_HOME/.sandbox-secrets/

L’extension IDE est installée, mais ne répond pas

Il se peut que les outils de développement C++, requis par certaines dépendances natives, soient absents de votre système :

  • Visual Studio Build Tools (charge de travail C++)
  • Microsoft Visual C++ Redistributable (x64)
  • Avec winget, exécutez winget install --id Microsoft.VisualStudio.2022.BuildTools -e

Redémarrez ensuite complètement VS Code après l’installation.