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.
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 queelevatedet 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 = trueAvec 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 = falseCela 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
$LASTEXITCODELa 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 = truesoit 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 :
wingetdoit être disponible. S’il est absent, mettez Windows à jour ou installez Windows Package Manager avant de configurer Codex.- L’ancien bac à sable
elevatedné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 :
- Relancez la configuration du bac à sable
elevatedet acceptez la demande d’autorisation administrateur si votre environnement le permet. - 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.
- Si la configuration échoue toujours et que la stratégie gérée le permet, utilisez
unelevatedpendant 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
elevatedet 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 :
- 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.
- Comparez les différences de stratégie de groupe ou d’OU si le problème ne touche que certaines machines ou équipes.
- Si vous devez continuer à travailler immédiatement, utilisez le bac à sable
unelevatedpendant l’examen du problème de stratégie. - Envoyez
CODEX_HOME/.sandbox/sandbox.logavec 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 :
- Examinez les dossiers répertoriés par Codex dans l’avertissement.
- Retirez l’accès en écriture de
Everyoneà ces dossiers si cela convient à votre environnement. - 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 :
- Vérifiez si la tâche était censée s’exécuter avec le réseau désactivé.
- Si vous vous attendiez à disposer d’un accès réseau, redémarrez Codex et réessayez.
- 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 :
- Redémarrez Codex.
- 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. - Si un ancien bac à sable est nécessaire et que la politique gérée l’autorise, utilisez
unelevatedcomme solution de repli temporaire. - 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,elevatedouunelevated, - tout message d’erreur affiché dans l’application,
- si vous avez vu
1385ou 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écutezwinget install --id Microsoft.VisualStudio.2022.BuildTools -e
Redémarrez ensuite complètement VS Code après l’installation.