Windows-Sandbox

Windows-Sandbox

Konfigurieren Sie die native Codex-Sandbox unter Windows und beheben Sie Probleme damit

Verwenden Sie Codex unter Windows mit der nativen ChatGPT-Desktop-App, der CLI oder der IDE-Erweiterung.

Die ChatGPT-Desktop-App unter Windows unterstützt zentrale Workflows wie parallele Chats, Worktrees, geplante Aufgaben, Git-Funktionen, den integrierten Browser, Dateivorschauen, Plugins und Skills.

Die App kann nativ in PowerShell mit einer Windows-Sandbox ausgeführt werden, ohne WSL oder eine virtuelle Maschine vorauszusetzen. So bleibt Codex in nativen Windows-Arbeitsabläufen und setzt zugleich begrenzte Dateisystem- und Netzwerkberechtigungen durch.

Informationen zur Installation in Unternehmen finden Sie im Windows-Bereitstellungsleitfaden.

Die ChatGPT-Desktop-App unter Windows verwendenArbeiten Sie mit der nativen Windows-App projektübergreifend, führen Sie parallele Chats und prüfen Sie Ergebnisse an einem Ort.

Codex unterstützt drei Windows-Sandbox-Implementierungen:

  • mxc: Die empfohlene Sandbox auf kompatiblen Windows-Geräten. Verwendet native Prozessisolation ohne eine von einem Administrator genehmigte Einrichtung, zusätzliche Windows-Konten oder lokale Firewallregeln.
  • elevated: Die bevorzugte ältere Ausweichlösung, wenn MXC nicht verfügbar oder deaktiviert ist. Erfordert eine von einem Administrator genehmigte Einrichtung. Befehle in der Sandbox werden ohne Administratorrechte ausgeführt.
  • unelevated: Eine ältere Ausweichlösung, wenn die Einrichtung mit erhöhten Rechten nicht verfügbar ist und die Richtlinien der Organisation dies zulassen. Bietet eine schwächere Netzwerkisolierung als elevated und unterstützt keine Pfade mit verweigertem Lesezugriff.

Windows-Sandbox konfigurieren

Die Windows-Sandbox setzt die aktiven Dateisystem- und Netzwerkberechtigungen für Befehle und deren untergeordnete Prozesse durch. Das Berechtigungsprofil legt fest, welche Pfade lesbar oder beschreibbar sind und ob Netzwerkzugriff erlaubt ist. Die Genehmigungsrichtlinie steuert unabhängig davon, wann Codex die Ausführung von Befehlen mit erweiterten Zugriffsrechten anfragt. Siehe Sandbox und Genehmigungen.

MXC aktivieren

Die Desktop-App bevorzugt bei Privatkundenkonten automatisch MXC, sofern das Gerät dies unterstützt. Für Unternehmensbereitstellungen oder die eigenständige Nutzung der CLI können Sie dasselbe Verhalten mit der folgenden Konfiguration aktivieren.

In config.toml:

[features]
prefer_mxc = true

Mit prefer_mxc = true verwendet Codex MXC für Windows-Befehle, sofern das Gerät und die Richtlinie dies unterstützen. Andernfalls verwendet es den bestehenden Auswahl- und Einrichtungsablauf für die älteren Implementierungen.

In Unternehmen mit unterschiedlicher Geräteunterstützung oder unterschiedlichen Richtlinien sollten Sie windows.sandbox weiterhin auf die von Ihrer Organisation zugelassene ältere Implementierung setzen, also elevated oder unelevated, als Ausweichlösung.

Administratoren können diese Konfiguration als Standardeinstellung verteilen oder features.prefer_mxc = true über requirements.toml erzwingen. Beide Varianten erlauben eine ältere Ausweichlösung. Unter Zentral verwaltete Konfiguration erfahren Sie, wie sich Standardeinstellungen und verbindliche Vorgaben unterscheiden.

MXC deaktiviert lassen

Um die Nutzung von MXC in Ihrer Organisation zu verhindern, fügen Sie Folgendes zu Ihrer zentral verwalteten requirements.toml hinzu:

[windows]
allow_mxc = false

Dies blockiert sowohl die automatische Auswahl von MXC als auch die explizite Einstellung windows.sandbox = "mxc". Bestehende Einstellungen und Vorgaben für die älteren Sandbox-Implementierungen gelten weiterhin.

MXC-Kompatibilität

Der Host muss bereits über die erforderlichen Funktionen von Microsoft Execution Containers (MXC) verfügen, die Microsoft für Windows-11-Geräte ausrollt. Microsoft hat die MXC-Prozessisolation in Windows 11 24H2 (Build 26100.9278) und 25H2 (Build 26200.9278) eingeführt. Prüfen Sie mit dem folgenden Befehl die MXC-Unterstützung auf Ihrem Gerät.

Ab Codex CLI 0.162.0 können Sie MXC für einen einzelnen Befehl testen, ohne die gespeicherte Sandbox-Auswahl zu ändern. Führen Sie in Ihrem Projektverzeichnis Folgendes aus:

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

Erwartet werden die Ausgabe MXC_OK und der Exitcode 0. Damit wird der Befehlsstart mit dem Berechtigungsprofil für den Arbeitsbereich und den zentral verwalteten Vorgaben geprüft.

Die explizite Auswahl von windows.sandbox = "mxc" schlägt fehl, wenn die erforderlichen nativen Funktionen nicht verfügbar sind oder die Richtlinie MXC blockiert.

Beachten Sie diese Kompatibilitätseinschränkungen:

  • Die verwaltete Netzwerksteuerung erfordert ein wirksames allow_local_binding = true. MXC erlaubt Verbindungen zu und von Diensten auf der Loopback-Schnittstelle des Hosts. Die Domainregeln des Proxys gelten weiterhin für den über den Proxy geleiteten Datenverkehr, aber die zusätzlichen Prüfungen des Proxys für Ziele in privaten Netzwerken entfallen.
  • Verbleibende Kindprozesse werden beendet, wenn der Vordergrundbefehl endet. Testen Sie Workflows, die auf entkoppelte Entwicklungsserver angewiesen sind.
  • Globs zur Verweigerung des Lesezugriffs berücksichtigen wie unter Linux und WSL die Dateien, die beim Start des jeweiligen Sandbox-Prozesses übereinstimmen. Später erstellte passende Dateien bleiben für diesen laufenden Prozess lesbar, sofern seine übrigen Berechtigungen den Zugriff erlauben. Langlebige Shells, Skripte, Watcher und Entwicklungsserver behalten diesen Stand für ihre gesamte Laufzeit bei, nicht für die gesamte Codex-Sitzung. Siehe Zeitpunkt der Auswertung von Globs zur Verweigerung des Lesezugriffs.

Eine ältere Ausweichlösung konfigurieren

Wählen Sie die Ausweichimplementierung in config.toml aus:

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

elevated ist die bevorzugte ältere Ausweichlösung. Sie verwendet dedizierte Sandbox-Benutzer mit eingeschränkten Rechten, Berechtigungsgrenzen im Dateisystem, Firewallregeln und lokale Richtlinienänderungen, die für die in der Sandbox ausgeführten Befehle erforderlich sind.

Wie MXC ermittelt elevated beim Start jedes Sandbox-Prozesses die Dateien, die mit den Globs zur Verweigerung des Lesezugriffs übereinstimmen. Später erstellte passende Dateien bleiben für diesen laufenden Prozess lesbar, sofern seine übrigen Berechtigungen den Zugriff erlauben. Die Auswirkungen auf langlebige Prozesse finden Sie unter Zeitpunkt der Auswertung von Globs zur Verweigerung des Lesezugriffs.

unelevated ist eine ältere Ausweichlösung. Sie führt Befehle mit einem eingeschränkten Windows-Token aus, das von Ihrem aktuellen Benutzer abgeleitet wird, wendet ACL-basierte Dateisystemgrenzen an und verwendet Offline-Kontrollen auf Umgebungsebene anstelle der dedizierten Firewallregel für Offline-Benutzer. Sie bietet eine schwächere Netzwerkisolierung als elevated und unterstützt keine Pfade mit verweigertem Lesezugriff, ist aber dennoch nützlich, wenn die von einem Administrator genehmigte Einrichtung durch lokale oder Unternehmensrichtlinien blockiert wird.

Verwenden Sie MXC, sofern das Gerät und die Richtlinie dies unterstützen. Bevorzugen Sie andernfalls elevated und nutzen Sie unelevated als nachrangige Ausweichlösung.

Unternehmensadministratoren können einschränken, welche älteren Sandbox-Implementierungen Codex verwenden darf, und zwar über requirements.toml:

[windows]
allowed_sandbox_implementations = ["elevated"]

Dieses Beispiel erlaubt elevated und verhindert den Rückgriff auf unelevated. Es schränkt mxc nicht ein, wenn MXC verfügbar ist. Andere zentral verwaltete Berechtigungs- und Netzwerkvorgaben gelten weiterhin. Um beide älteren Implementierungen zuzulassen, geben Sie beide Werte an; Codex bevorzugt elevated, wenn kein Modus ausgewählt ist.

Die unterstützten Werte finden Sie in der Referenz zu requirements.toml. Um auch MXC zu blockieren, verwenden Sie die separate Vorgabe windows.allow_mxc.

Standardmäßig verwenden beide älteren Sandbox-Modi außerdem einen privaten Desktop für eine stärkere UI-Isolierung.

Bereitstellung der älteren elevated-Sandbox durch die IT

Für Mitarbeitende ohne lokale Administratorrechte kann die IT die CLI installieren und die elevated-Sandbox einrichten, bevor die Mitarbeitenden Codex starten. Führen Sie aus einem Bereitstellungsprozess mit erhöhten Rechten Folgendes aus:

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

Ersetzen Sie die Identität und den Pfad durch die Windows-Identität und CODEX_HOME des Mitarbeiters. Der Befehl liest die Konfiguration dieses Benutzers, richtet die Sandbox ein und speichert windows.sandbox = "elevated". Anschließend führt der Mitarbeiter Codex in einem normalen Terminal aus.

Sandbox-Berechtigungen

Windows-Versionsmatrix

Windows-Version Unterstützungsgrad Hinweise
Windows 11 Empfohlen Beste Ausgangsbasis für Codex unter Windows. Verwenden Sie diese Version, wenn Sie eine unternehmensweite Bereitstellung standardisieren.
Aktuelles, vollständig aktualisiertes Windows 10 Nach bestem Bemühen Kann funktionieren, ist jedoch weniger zuverlässig als Windows 11. Unter Windows 10 ist Codex auf moderne Konsolenunterstützung einschließlich ConPTY angewiesen. In der Praxis ist Windows 10, Version 1809 oder neuer, erforderlich.
Ältere Windows-10-Builds Nicht empfohlen Bei ihnen fehlen mit höherer Wahrscheinlichkeit erforderliche Konsolenkomponenten wie ConPTY, und sie führen in Unternehmensumgebungen häufiger zu Fehlern.

Zusätzliche Voraussetzungen für die Umgebung:

  • winget sollte verfügbar sein. Falls es fehlt, aktualisieren Sie Windows oder installieren Sie den Windows Package Manager, bevor Sie Codex einrichten.
  • Die ältere elevated-Sandbox erfordert eine vom Administrator genehmigte Einrichtung.
  • Manche zentral im Unternehmen verwalteten Geräte blockieren die erforderlichen Einrichtungsschritte, selbst wenn die Betriebssystemversion an sich geeignet ist.
  • MXC erfordert zusätzlich die nativen Funktionen, die unter MXC-Kompatibilität beschrieben sind; diese Matrix belegt nicht, dass MXC auf einem bestimmten Gerät verfügbar ist.

Lesezugriff der Sandbox prüfen

Wenn ein Befehl ein Verzeichnis nicht lesen kann, prüfen Sie das aktive Berechtigungsprofil, die zentral verwalteten Vorgaben und die Windows-Dateiberechtigungen. Verwenden Sie in der CLI /status und /debug-config, um die aktive Sitzung und Konfiguration zu prüfen. Bitten Sie Ihren Administrator, eine zentral verwaltete Einschränkung zu überprüfen, statt die Sandbox zu deaktivieren.

Verwenden Sie standardmäßig die native Windows-Sandbox. Wählen Sie WSL, wenn Sie Linux-native Werkzeuge benötigen, Ihr Workflow bereits in WSL2 angesiedelt ist oder die verfügbaren nativen Windows-Implementierungen Ihre Anforderungen nicht erfüllen.

Problembehebung und FAQ

Beginnen Sie bei der Fehlerbehebung auf einem verwalteten Windows-Rechner mit dem nativen Sandbox-Modus, der Windows-Version und etwaigen von Codex angezeigten Richtlinienfehlern. Prüfen Sie bei MXC die Kompatibilität und die wirksame Netzwerkrichtlinie. Probleme mit der Legacy-Sandbox können durch die Einrichtung, Anmelderechte oder Dateisystemberechtigungen entstehen.

Die Einrichtung meiner Legacy-Sandbox ist fehlgeschlagen

Wenn Codex die Einrichtung der elevated-Sandbox nicht abschließen kann, sind die häufigsten Ursachen:

  • Die Windows-UAC- oder Administratorabfrage wurde abgelehnt,
  • der Computer erlaubt das Erstellen lokaler Benutzer oder Gruppen nicht,
  • der Computer erlaubt keine Änderungen an Firewall-Regeln,
  • der Computer blockiert die von den Sandbox-Benutzern benötigten Anmelderechte,
  • oder eine andere Unternehmensrichtlinie blockiert einen Teil des Einrichtungsvorgangs.

Mögliche Lösungsansätze:

  1. Versuchen Sie erneut, die Sandbox elevated einzurichten, und bestätigen Sie die Administratorabfrage, sofern Ihre Umgebung dies zulässt.
  2. Wenn Ihr Firmenlaptop dies blockiert, fragen Sie Ihr IT-Team, ob der Rechner eine vom Administrator genehmigte Einrichtung zur Erstellung lokaler Benutzer und Gruppen, zur Firewallkonfiguration und zur Vergabe der erforderlichen Anmelderechte für Sandbox-Benutzer zulässt.
  3. Wenn die Einrichtung weiterhin fehlschlägt und die verwaltete Richtlinie es zulässt, verwenden Sie unelevated, während das Problem untersucht wird.

Codex hat mich auf die Sandbox ohne erhöhte Rechte umgestellt

Die Implementierung unelevated kann in der Konfiguration ausgewählt oder als Ausweichlösung verwendet werden, wenn die Einrichtung von elevated nicht verfügbar ist.

  • Codex kann weiterhin in einem Sandbox-Modus ausgeführt werden.
  • Es gelten weiterhin ACL-basierte Dateisystemgrenzen, die separate Sandbox-Benutzergrenze von elevated wird jedoch nicht verwendet, und die Netzwerkisolierung ist schwächer.
  • Dies ist eine nützliche Ausweichlösung, aber nicht die bevorzugte langfristige Konfiguration für Unternehmen.

Prüfen Sie bei einem verwalteten Firmenlaptop zunächst die MXC-Kompatibilität. Wenn MXC nicht verfügbar oder deaktiviert ist, bitten Sie Ihr IT-Team, Folgendes bereitzustellen: elevated.

Windows-Fehler 1385 wird angezeigt

Wenn Sandbox-Befehle mit dem Fehler 1385 fehlschlagen, verweigert Windows den Anmeldetyp, den der Sandbox-Benutzer zum Starten des Befehls benötigt.

In der Praxis bedeutet dies normalerweise, dass Codex die Sandbox-Benutzer erfolgreich erstellt hat, die Windows-Richtlinie diese Benutzer jedoch weiterhin daran hindert, Sandbox-Befehle zu starten.

Vorgehensweise:

  1. Fragen Sie Ihr IT-Team, ob die Geräterichtlinie den von Codex erstellten Sandbox-Benutzern die erforderlichen Anmelderechte gewährt.
  2. Vergleichen Sie Unterschiede bei Gruppenrichtlinien oder Organisationseinheiten, wenn das Problem nur bestimmte Computer oder Teams betrifft.
  3. Wenn Sie sofort weiterarbeiten müssen, verwenden Sie die unelevated-Sandbox, während das Richtlinienproblem untersucht wird.
  4. Senden Sie CODEX_HOME/.sandbox/sandbox.log zusammen mit Ihrer Windows-Version und einer kurzen Beschreibung des Fehlers.

Codex warnt, dass einige Ordner für Everyone beschreibbar sind

Codex kann davor warnen, dass einige Ordner für Everyone beschreibbar sind.

Wenn diese Warnung angezeigt wird, sind die Windows-Berechtigungen für diese Ordner zu weit gefasst, sodass die Sandbox sie nicht vollständig schützen kann.

Vorgehensweise:

  1. Prüfen Sie die von Codex in der Warnung aufgeführten Ordner.
  2. Entfernen Sie den Schreibzugriff von Everyone auf diese Ordner, sofern dies in Ihrer Umgebung angemessen ist.
  3. Starten Sie Codex neu oder führen Sie die Sandbox-Einrichtung erneut aus, nachdem diese Berechtigungen korrigiert wurden.

Wenn Sie nicht sicher sind, wie Sie diese Berechtigungen ändern, bitten Sie Ihr IT-Team um Unterstützung.

Sandbox-Befehle können nicht auf das Netzwerk zugreifen

Einige Codex-Chats werden abhängig vom verwendeten Berechtigungsmodus absichtlich ohne ausgehenden Netzwerkzugriff ausgeführt.

Wenn eine Aufgabe fehlschlägt, weil sie nicht auf das Netzwerk zugreifen kann:

  1. Prüfen Sie, ob die Aufgabe bei deaktiviertem Netzwerk ausgeführt werden sollte.
  2. Falls Sie Netzwerkzugriff erwartet haben, starten Sie Codex neu und versuchen Sie es erneut.
  3. Falls das Problem weiterhin auftritt, erfassen Sie das Sandbox-Protokoll, damit das Team prüfen kann, ob sich der Computer in einem unvollständigen oder fehlerhaften Sandbox-Zustand befindet.

Die Sandbox hat zuvor funktioniert und dann aufgehört

Dies kann nach Folgendem auftreten:

  • Verschieben eines Repositorys oder Workspace,
  • Ändern von Computerberechtigungen,
  • Ändern von Windows-Richtlinien,
  • oder anderen Änderungen an der Systemkonfiguration.

Mögliche Lösungsansätze:

  1. Starten Sie Codex neu.
  2. Wiederholen Sie für MXC die Kompatibilitätsprüfung und prüfen Sie die wirksame Netzwerkrichtlinie. Versuchen Sie bei der älteren elevated-Implementierung, die Sandbox erneut einzurichten.
  3. Wenn eine ältere Sandbox benötigt wird und die verwaltete Richtlinie dies zulässt, verwenden Sie unelevated als vorübergehende Ausweichlösung.
  4. Erfassen Sie das Sandbox-Protokoll zur Prüfung.

Ich muss Diagnoseinformationen an OpenAI senden

Falls weiterhin Probleme auftreten, senden Sie:

  • CODEX_HOME/.sandbox/sandbox.log

Hilfreich sind außerdem:

  • eine kurze Beschreibung dessen, was Sie tun wollten,
  • die ausgewählte Implementierung: mxc, elevated oder unelevated,
  • alle in der App angezeigten Fehlermeldungen,
  • ob 1385 oder ein anderer Windows- oder PowerShell-Fehler angezeigt wurde,
  • Ihre Windows-Buildnummer,
  • und ob Sie Windows 11 oder Windows 10 verwenden.

Senden Sie nicht:

  • den Inhalt von CODEX_HOME/.sandbox-secrets/

Die IDE-Erweiterung ist installiert, reagiert aber nicht

Auf Ihrem System fehlen möglicherweise C++-Entwicklungswerkzeuge, die von einigen nativen Abhängigkeiten benötigt werden:

  • Visual Studio Build Tools (C++-Workload)
  • Microsoft Visual C++ Redistributable (x64)
  • Führen Sie mit winget den Befehl winget install --id Microsoft.VisualStudio.2022.BuildTools -e aus

Starten Sie VS Code nach der Installation vollständig neu.