日本語

Windows サンドボックス

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

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

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

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

メッセージコンポーザーの上に表示された ChatGPT デスクトップアプリの Windows サンドボックス設定プロンプト

Windows で ChatGPT デスクトップアプリを使用する:Windows ネイティブアプリを使用して、複数のプロジェクトで作業し、チャットを並行して実行し、結果を 1 か所でレビューできます。

ネイティブ 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. Windows のバージョンと問題の簡単な説明を添えて、CODEX_HOME/.sandbox/sandbox.log を送信します。

一部のフォルダーに Everyone の書き込み権限があると Codex から警告される

一部のフォルダーに Everyone の書き込み権限があると Codex から警告される場合があります。

この警告が表示された場合、そのフォルダーの 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 を完全に再起動してください。