コンテンツにスキップ

Windows サンドボックス

ネイティブの ChatGPT デスクトップアプリCLI、または IDE 拡張機能を使用して、Windows 上で Codex を利用できます。

Windows 上の ChatGPT デスクトップアプリは、並列チャット、worktree、スケジュール済みタスク、Git 機能、組み込みブラウザー、ファイルプレビュー、プラグイン、スキルなどの主要なワークフローをサポートしています。

このアプリは、WSL や仮想マシンを必要とせず、Windows サンドボックスを使用して PowerShell 内でネイティブに実行できます。これにより、ファイルシステムとネットワークの権限を制限しながら、Codex を Windows ネイティブのワークフローで利用できます。

ネイティブの Windows サンドボックスには、次の 2 つのモードがあります。

  • より強力な elevated サンドボックスを Windows 上でネイティブに使用するモード
  • フォールバックの unelevated サンドボックスを Windows 上でネイティブに使用するモード

Windows サンドボックスを設定する

Windows 上で Codex をネイティブに実行すると、エージェントモードでは Windows サンドボックスを使用して、作業フォルダー外へのファイルシステム書き込みをブロックし、明示的な承認なしのネットワークアクセスを防止します。

ネイティブの Windows サンドボックスは、config.toml で設定できる 2 つのモードをサポートしています。

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

elevated は、推奨されるネイティブ Windows サンドボックスです。専用の低権限サンドボックスユーザー、ファイルシステム権限の境界、ファイアウォールルール、およびサンドボックス内で実行されるコマンドに必要なローカルポリシーの変更を使用します。

unelevated は、フォールバックのネイティブ Windows サンドボックスです。現在のユーザーから派生した制限付き Windows トークンを使用してコマンドを実行し、ACL ベースのファイルシステム境界を適用します。また、専用のオフラインユーザー用ファイアウォールルールの代わりに、環境レベルのオフライン制御を使用します。elevated よりも弱い方式ですが、管理者承認によるセットアップがローカルポリシーまたはエンタープライズポリシーによってブロックされる場合にも有用です。

両方のモードを使用できる場合は、elevated を使用してください。デフォルトのネイティブサンドボックスが環境で機能しない場合は、セットアップの問題を調査する間、フォールバックとして unelevated を使用してください。

エンタープライズ管理者は、requirements.toml を通じて、Codex で使用できるネイティブサンドボックスの実装を制限できます。

[windows]
allowed_sandbox_implementations = ["elevated"]

この例では elevated サンドボックスが必須になり、ユーザーが unelevated にフォールバックすることを防ぎます。どちらの実装も許可するには、両方の値を含めてください。モードが選択されていない場合、Codex は elevated を優先します。サポートされている値については、requirements.toml リファレンスを参照してください。

デフォルトでは、両方のサンドボックスモードが、より強力な UI 分離のためにプライベートデスクトップも使用します。互換性のために以前の Winsta0\\Default の動作が必要な場合にのみ、windows.sandbox_private_desktop = false を設定してください。

サンドボックスの権限

Codex をフルアクセスモードで実行すると、Codex はプロジェクトディレクトリに制限されず、データ損失につながる意図しない破壊的な操作を実行する可能性があります。より安全な自動化のため、サンドボックスの境界を維持し、特定の例外には ルールを使用するか、承認ポリシーを「never」に設定して、承認とセキュリティの設定に基づき、Codex が権限の昇格を求めずに問題の解決を試みるようにしてください。

Windows バージョンの対応表

Windows バージョン サポートレベル 注記
Windows 11 推奨 Windows 上の Codex に最適な基準です。エンタープライズでの導入環境を標準化する場合は、これを使用してください。
最新の更新が適用された Windows 10 ベストエフォート 動作する可能性はありますが、Windows 11 より信頼性が低くなります。Windows 10 では、Codex は ConPTY などの最新のコンソールサポートに依存します。実際には、Windows 10 バージョン 1809 以降が必要です。
古い Windows 10 ビルド 推奨されません ConPTY などの必要なコンソールコンポーネントが不足している可能性が高く、エンタープライズ環境で失敗する可能性も高くなります。

その他の環境上の前提条件は次のとおりです。

  • winget が利用可能である必要があります。見つからない場合は、Codex をセットアップする前に Windows を更新するか、Windows Package Manager をインストールしてください。
  • 推奨されるネイティブサンドボックスでは、管理者承認によるセットアップが必要です。
  • OS のバージョン自体に問題がなくても、一部のエンタープライズ管理デバイスでは、必要なセットアップ手順がブロックされます。

サンドボックスの読み取りアクセスを許可する

Windows サンドボックスがディレクトリを読み取れないためにコマンドが失敗した場合は、次を使用してください。

/sandbox-add-read-dir C:\absolute\directory\path

パスには、既存の絶対パスのディレクトリを指定する必要があります。コマンドが成功すると、現在のセッション中にサンドボックスで実行される後続のコマンドから、そのディレクトリを読み取れるようになります。

デフォルトではネイティブ Windows サンドボックスを使用してください。Linux ネイティブのツールが必要な場合、ワークフローがすでに WSL2 にある場合、またはどちらのネイティブ Windows サンドボックスモードも要件を満たさない場合は、WSLを選択してください。

トラブルシューティングと FAQ

管理対象の Windows マシンで問題を調査する場合は、まずネイティブサンドボックスモード、Windows のバージョン、Codex に表示されたポリシーエラーを確認してください。ネイティブ Windows のサポート問題の多くは、エディター自体ではなく、サンドボックスのセットアップ、ログオン権限、またはファイルシステム権限に起因します。

ネイティブサンドボックスのセットアップに失敗しました

Codex が elevated サンドボックスのセットアップを完了できない場合、一般的な原因は次のとおりです。

  • Windows UAC または管理者プロンプトでの承認を拒否した
  • マシンでローカルユーザーまたはグループの作成が許可されていない
  • マシンでファイアウォールルールの変更が許可されていない
  • サンドボックスユーザーに必要なログオン権限がマシンでブロックされている
  • または、別のエンタープライズポリシーによってセットアップフローの一部がブロックされている

試すこと:

  1. elevated サンドボックスのセットアップをもう一度試し、環境で許可されている場合は管理者プロンプトを承認します。
  2. 会社のノート PC でこの操作がブロックされる場合は、ローカルユーザーまたはグループの作成、ファイアウォール設定、必要なサンドボックスユーザーのログオン権限について、管理者承認によるセットアップがマシンで許可されているか IT チームに確認してください。
  3. デフォルトのセットアップに引き続き失敗する場合は、問題を調査している間も作業を続けられるよう、unelevated サンドボックスを使用してください。

Codex が非昇格サンドボックスに切り替わりました

これは、Codex がマシン上でより強力な elevated サンドボックスのセットアップを完了できなかったことを意味します。

  • Codex は引き続きサンドボックスモードで実行できます。
  • ACL ベースのファイルシステム境界は適用されますが、elevated のような独立したサンドボックスユーザーの境界は使用されず、ネットワーク分離も弱くなります。
  • これは有用なフォールバックですが、長期的なエンタープライズ構成としては推奨されません。

エンタープライズ管理下のノート PC を使用している場合、長期的な解決策としては通常、IT チームの支援を受けて elevated サンドボックスを動作させることです。

Windows エラー 1385 が表示されます

サンドボックス化されたコマンドがエラー 1385 で失敗する場合、Windows はサンドボックスユーザーがコマンドを開始するために必要なログオンの種類を拒否しています。

実際には、これは通常、Codex がサンドボックスユーザーを正常に作成したものの、Windows ポリシーによってそれらのユーザーがサンドボックス化されたコマンドを起動することが依然として妨げられていることを意味します。

対処方法:

  1. デバイスポリシーによって、Codex が作成したサンドボックスユーザーに必要なログオン権限が付与されているか IT チームに確認してください。
  2. 一部のマシンまたはチームだけで問題が発生する場合は、グループポリシーまたは OU の違いを比較してください。
  3. すぐに作業を続ける必要がある場合は、ポリシーの問題を調査している間、unelevated サンドボックスを使用してください。
  4. Windows のバージョンと失敗の簡単な説明を添えて、CODEX_HOME/.sandbox/sandbox.log を送信してください。

一部のフォルダーが Everyone によって書き込み可能だと Codex が警告します

Codex は、一部のフォルダーが Everyone によって書き込み可能であると警告することがあります。

この警告が表示された場合、それらのフォルダーに対する Windows の権限が広すぎるため、サンドボックスで完全に保護できません。

対処方法:

  1. 警告に表示されたフォルダーを確認します。
  2. 環境上適切であれば、それらのフォルダーから Everyone の書き込みアクセスを削除します。
  3. 権限を修正した後、Codex を再起動するか、サンドボックスのセットアップを再実行します。

権限の変更方法がわからない場合は、IT チームに支援を依頼してください。

サンドボックス化されたコマンドがネットワークに接続できません

一部の Codex チャットは、使用中の権限モードに応じて、意図的に外部ネットワークアクセスなしで実行されます。

ネットワークに接続できないためにタスクが失敗した場合:

  1. そのタスクがネットワーク無効の状態で実行される想定だったか確認します。
  2. ネットワークアクセスを想定していた場合は、Codex を再起動してもう一度試します。
  3. 問題が解決しない場合は、サンドボックスログを収集して、マシンが部分的または壊れたサンドボックス状態になっていないかチームで確認できるようにします。

サンドボックスが以前は機能していたのに停止しました

これは、次のような変更後に発生することがあります。

  • リポジトリまたはワークスペースを移動した
  • マシンの権限を変更した
  • Windows ポリシーを変更した
  • または、その他のシステム構成を変更した

試すこと:

  1. Codex を再起動します。
  2. elevated サンドボックスのセットアップをもう一度試します。
  3. 解決しない場合は、一時的なフォールバックとして unelevated サンドボックスを使用します。
  4. 確認用にサンドボックスログを収集します。

OpenAI に診断情報を送信する必要があります

問題が解決しない場合は、次を送信してください。

  • CODEX_HOME/.sandbox/sandbox.log

次の情報も含めると役立ちます。

  • 実行しようとしていたことの簡単な説明
  • elevated サンドボックスが失敗したのか、unelevated サンドボックスが使用されたのか
  • アプリに表示されたエラーメッセージ
  • 1385 または別の Windows や PowerShell のエラーが表示されたかどうか
  • 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 を完全に再起動してください。