日本語

Windows サンドボックス

Windows サンドボックス

Windows でネイティブ Codex サンドボックスを設定し、トラブルシューティングする

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

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

このアプリは、WSL や仮想マシンを必要とせず、Windows サンドボックスを使用して PowerShell 上でネイティブに実行できます。これにより、ファイルシステムとネットワークの 権限を一定範囲に制限しながら、Windows ネイティブのワークフローで Codex を利用できます。 メッセージ作成欄の上に表示された ChatGPT デスクトップアプリの Windows サンドボックス設定プロンプト Windows で ChatGPT デスクトップアプリを使用する:ネイティブ 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 を設定してください。

サンドボックスの権限

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 によって unelevated サンドボックスへ切り替えられました

これは、お使いのマシンで、より強力な elevated サンドボックスの設定を Codex が完了できなかったことを 意味します。

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

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

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

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

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

対処方法:

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

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

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 を完全に再起動してください。