できること
PowerShell をネイティブ実行
Claude が PowerShell コマンドをネイティブに実行できます。Windows では、コマンドが Git Bash を経由せず PowerShell で実行されます。
主要シェルとして扱う
ツールを有効にすると、Claude は PowerShell を主要なシェルとして扱います。Git Bash がインストールされていれば、POSIX スクリプト向けに Bash ツールも引き続き使えます。
ポリシーを変えずに実行
Claude Code はプロセススコープに限って -ExecutionPolicy Bypass を付けて PowerShell を起動するため、既定の Windows 環境でもマシンのポリシーを変えずに .ps1 スクリプトやモジュールのインポートが動作します。Group Policy の MachinePolicy と UserPolicy は上書きしません。
機能解説
概要
Windows では、コマンドが Git Bash を経由せず PowerShell で実行されます。ツールを有効にすると、Claude は PowerShell を主要なシェルとして扱います。Windows 環境で PowerShell スクリプトやモジュールを使う開発作業に関わる機能です。
PowerShell tool は、Claude が PowerShell コマンドをネイティブに実行するためのツールです。Windows では、Claude Code が PowerShell 7 以降の pwsh.exe を自動で検出し、見つからない場合は PowerShell 5.1 の powershell.exe を使います。
PowerShell コマンドは、作業ディレクトリのリセットについて Bash コマンドと同じ動作をとり、CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR 環境変数も同様に適用されます。また、grep、rg、egrep、fgrep、findstr、git grep、git diff の終了コード 1 を正常な結果として扱う場合があります。
Windows での文字コードと出力の扱いは次のとおりです。
- PowerShell 5.1 では、
>と>>によるリダイレクトで UTF-8 のファイルを書き出します。 - ネイティブコマンドの標準入力にパイプで渡すテキストは UTF-8 でエンコードします。
- エラー出力は ANSI エスケープシーケンスを除いて取得します。
- 子プロセスが標準入力を待つコマンドには、待ち続ける代わりに end-of-file が渡されます。
フック・設定・スキルでのシェル指定
PreToolUse フックは、PowerShell tool のコマンド文字列を tool_input.command で受け取り、フィールドは Bash ツールと同じです。シェルコマンドを検査するフックでは、Bash だけでなく Bash|PowerShell にマッチさせます。
シェルの選択は、次の設定で行えます。
settings.jsonで"defaultShell": "powershell"を設定すると、対話的な!コマンドが PowerShell を通ります。PowerShell tool の有効化が必要です。- 個々のコマンドフックに
"shell": "powershell"を設定すると、そのフックが PowerShell で実行されます。フックは PowerShell を直接起動するため、CLAUDE_CODE_USE_POWERSHELL_TOOLの設定に関係なく動作します。 - スキルの frontmatter に
shell: powershellを設定すると、`!command` ブロックが PowerShell で実行されます。PowerShell tool の有効化が必要です。
提供状況の注意
Windows では PowerShell tool が段階的に展開されており、CLAUDE_CODE_USE_POWERSHELL_TOOL でオプトイン・オプトアウトできます。Windows の Bedrock、Vertex、Foundry のユーザーには既定で有効になっており、CLAUDE_CODE_USE_POWERSHELL_TOOL=0 でオプトアウトできます。Linux と macOS では CLAUDE_CODE_USE_POWERSHELL_TOOL=1 で有効にでき、PATH 上に pwsh が必要です。
対象プランについては、公式のリリースノートには記載がありません。
管理者・導入時に確認したい点
実行ポリシー
Claude Code は PowerShell をプロセススコープに限って -ExecutionPolicy Bypass で起動します。この回避は Group Policy の MachinePolicy や UserPolicy を上書きしないため、組織のポリシーはそのまま適用されます。マシンの実効的な実行ポリシーに従わせたい場合は、CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY=1 を設定します。
Bash の拒否ルールとの関係
Git Bash がインストールされた Windows では、Bash を拒否すると、そのセッションでは PowerShell tool もオフになります。これは単独の Bash だけでなく Bash(git push *) のようなスコープ付きのルールにも、設定ファイルや --disallowedTools からのルールにも当てはまります。Bash の拒否ルールと併用して PowerShell tool を残すには、次のいずれかを行います。
- 環境変数、または設定ファイルの
envブロックでCLAUDE_CODE_USE_POWERSHELL_TOOL=1を設定する。 - 設定ファイルに、
PowerShell(git push *)の拒否ルールのようなスコープ付きのPowerShell権限ルールを追加する。
どちらも無い場合、スコープ付きの Bash 拒否ルールでは Bash ツールは使えたまま、Claude Code は警告無しに PowerShell をオフにします。なお、Bash ツールの拒否によって PowerShell tool もオフになり、シェルツールが無くなる場合には、起動時に警告が表示されます。
権限ルールの適用範囲
PowerShell tool のコマンドは、Bash と同様に権限モードで自動承認できます。Windows では、許可ルールと読み取り専用の判定が 32 KB までのコマンドに適用されます。
使い方
Windows では PowerShell tool が段階的に展開されており、CLAUDE_CODE_USE_POWERSHELL_TOOL でオプトイン・オプトアウトできます。
- 環境変数、または
settings.jsonでCLAUDE_CODE_USE_POWERSHELL_TOOL=1を設定し、PowerShell tool を有効にします。 - Linux、macOS、WSL では PowerShell 7 以降が必要です。
pwshをインストールし、PATHに含まれていることを確認します。
利用シーン
Windows の開発環境で、Git Bash を介さず PowerShell のまま Claude Code にコマンドを実行させたい場面に向いています。
既定の Windows 環境で、.ps1 スクリプトやモジュールを使う作業を Claude Code に任せる場面に使えます。
Group Policy で実行ポリシーを管理している組織で、ポリシーを維持したまま導入を検討する場面に向いています。
PreToolUse フックでシェルコマンドを検査し、Bash と PowerShell の両方に同じ確認を適用する運用に使えます。
ChatGPT・OpenAI の対応する機能
比較の単位となる業務: Windows 環境での PowerShell コマンド実行と権限管理
これまでの変更
Windows で、現在のディレクトリを対象とし追加の引数を伴う一部の
Set-Locationやcdコマンドが自動承認されていた問題が修正され、承認を求めるようになりました。Windows で約 1 KB を超えるコマンドが常に許可を求める問題が修正され、許可ルールと読み取り専用の判定が 32 KB まで適用されるようになりました。
Windows で、Bash ツールの拒否によって PowerShell tool もオフになりシェルツールが無くなる場合に、起動時の警告が表示されるようになりました。
Windows で、
cmd /c rd、rmdir、del、eraseによってドライブルートやホームフォルダなど、Remove-Itemが拒否するフォルダを削除できてしまう問題が修正されました。Windows で、バックグラウンドに送られたコマンドが Claude Code の終了時に停止する問題が修正されました。
gitとghのコマンド引数の検証が改善されました。コマンドがタイムアウトして自動でバックグラウンド化された際の Bash/PowerShell tool のメッセージが改善されました。
-ExecutionPolicy Bypassを渡すようになり、CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY=1でオプトアウトできます。Windows の Bedrock、Vertex、Foundry のユーザーには既定で有効になりました。Windows でツールが有効な場合、Claude は Bash ではなく PowerShell を主要なシェルとして扱うようになりました。Microsoft Store、PATH なしの MSI、.NET グローバルツールでインストールされた PowerShell 7 が検出されるようになりました。単独の
--が--%停止解析トークンと誤判定されなくなりました。Bash と同様に、権限モードで自動承認できるようになりました。
Windows での段階的な展開が始まり、
CLAUDE_CODE_USE_POWERSHELL_TOOLでオプトイン・オプトアウトできるようになりました。Linux と macOS ではCLAUDE_CODE_USE_POWERSHELL_TOOL=1で有効にできます (PATH上にpwshが必要)。プロンプトにバージョンに応じた構文ガイダンス (5.1 と 7 以降) が加わりました。Windows では、ダブルクォートと空白の両方を含む外部コマンド引数が自動許可されず、確認を求めるようになりました。
/envが PowerShell tool のコマンドにも適用されるようになりました (以前は Bash のみ)。権限チェックが強化され、末尾の&によるバックグラウンドジョブでの回避などが修正されました。
出典
出典 13 件を表示
- Claude Code のリリース (2026-04-04)
- Claude Code のリリース (2026-04-18)
- Claude Code のリリース (2026-04-23)
- Claude Code のリリース (2026-05-01)
- Claude Code のリリース (2026-05-15)
- Claude Code のリリース (2026-07-19)
- Claude Code のリリース (2026-07-25)
- Claude Code のリリース (2026-09-12)
- Claude Code のリリース (2026-09-25)
- Claude Code のリリース (2026-10-03)
- Claude Code のリリース (2026-10-09)
- Claude Code のリリース (2026-10-23)
- 公式ヘルプ