Windows で Claude Code や Codex をインストールしたのに、いざ起動しようとすると次のように言われて動かない。
claude : 用語 'claude' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。
私は普段から Windows で Claude Code と Codex を使っているが、インストール直後に何が起きるのかを確かめるため、新しい Windows ユーザーを作って、まっさらな状態から両方を入れ直してみた。結論から書くと、原因はほぼ次の3つである。
- コマンドの取り違え: PowerShell 用のコマンドを CMD で打っている(またはその逆)
- Claude Code はインストールしても PATH が通らない: インストーラーは「PATH に入っていない」と英語で注意を出すだけで、自分では PATH を変えない
- インストールした窓のまま使おうとしている: PATH が通っても、新しく開いた窓でないと反映されない(Codex も同じ)
試した環境
- Windows 11 Pro 25H2(OS ビルド 26200.9711)
- Windows PowerShell 5.1
- 検証用に新しく作ったローカルユーザー(管理者ではない)
- Claude Code 2.1.316、Codex CLI 0.166.0(どちらも 2026年11月時点の公式のインストールコマンドで入れた)
インストールの手順や表示は、バージョンによって変わることがある。うまくいかない場合は、公式のドキュメントもあわせて確認してほしい。
まず確認: PowerShell と CMD のコマンドを取り違えていないか
Claude Code の公式のインストールコマンドは、PowerShell 用、CMD(コマンドプロンプト)用、Mac/Linux 用で別々である。
| 使う画面 | Claude Code のインストールコマンド |
| PowerShell(行頭が PS C:\…>) | irm https://claude.ai/install.ps1 | iex |
| CMD(行頭が C:\…>) | curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd |
| Mac / Linux / WSL | curl -fsSL https://claude.ai/install.sh | bash |
取り違えると、それぞれ次のエラーになる。どれも途中で止まるだけで、何もインストールされない。
CMD で PowerShell 用のコマンドを打った場合
'irm' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。

PowerShell で CMD 用のコマンドを打った場合
トークン '&&' は、このバージョンでは有効なステートメント区切りではありません。

PowerShell で Mac/Linux 用のコマンドを打った場合
bash : 用語 'bash' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。

見分け方は簡単で、行の先頭に PS が付いていれば PowerShell、付いていなければ CMD である。
Claude Code: インストールは成功するのに「認識されません」
PowerShell で正しいコマンドを打つと、インストール自体は成功する。

ところが、そのまま claude --version を打つと「認識されません」になる。PowerShell を開き直しても同じだった。

原因は、インストール画面の「Setup notes」に書いてある。
Native installation exists but C:\Users\<User>\.local\bin is not in your PATH.
Claude Code 本体(claude.exe)は C:\Users\<User>\.local\bin に入ったが、そのフォルダが PATH(コマンドを探しに行くフォルダの一覧)に入っていない、という意味である。インストーラーは注意を出すだけで、PATH は自分で通す必要がある。英語の1行なので、「Installation complete!」だけを見て見落としやすい。
PATH を通す(公式の手順)
PowerShell で、本体があるかと、PATH に入っているかを確認する。
Test-Path "$env:USERPROFILE\.local\bin\claude.exe" $env:PATH -split ';' | Select-String '\.local\\bin'
1行目が True で、2行目で何も表示されなければ、PATH に入っていない。次の2行で、自分のユーザーの PATH に追加する(管理者権限は不要)。
$currentPath = [Environment]::GetEnvironmentVariable('PATH', 'User')
[Environment]::SetEnvironmentVariable('PATH', "$currentPath;$env:USERPROFILE\.local\bin", 'User')

注意したいのは、追加した直後の同じ窓では、まだ「認識されません」のままだということだ。PowerShell を閉じて、新しく開き直すと動いた。

コマンドを使わずに設定画面から追加する場合は、Setup notes にあるとおり、「システムのプロパティ」→「環境変数」→ ユーザー環境変数の「Path」を編集 →「新規」で %USERPROFILE%\.local\bin を追加する。こちらも、追加した後は PowerShell を開き直す。
なお、VS Code などのエディターの中のターミナルで使う場合は、エディターごと開き直さないと PATH が反映されないと公式のドキュメントに書かれている。
Codex: PATH は自動で通るが、同じ窓では使えない
Codex の公式の Windows 用インストールコマンドは次のとおり。
powershell -ExecutionPolicy ByPass -c "irm https://chatgpt.com/codex/install.ps1 | iex"
Claude Code と違い、Codex のインストーラーは PATH を自動で通してくれた。画面にも「PATH updated for future PowerShell sessions.」(今後の PowerShell では PATH が通る)と出ている。

ただし「future(今後の)」とあるとおり、インストールした窓のまま codex --version を打つと、やはり「認識されません」になった。新しく開いた PowerShell では動いた。


管理者ではないユーザーだと、サンドボックスの準備で止まる
Codex を初めて起動すると、ファイルやネットワークへのアクセスを制限する「サンドボックス」の準備を求められる。既定の「Set up default sandbox」は管理者権限が必要で、管理者ではないユーザーで選ぶと次のように表示された。
Couldn't set up your sandbox with Administrator permissions

この場合は「Use Codex with non-admin sandbox」(管理者権限が要らないサンドボックス)を選べば、そのまま使い始められた。ただし画面にもあるとおり、こちらは既定のサンドボックスより守りが弱い。会社の PC などで管理者権限が無い場合は、どちらを使ってよいか、情報システム部門の決まりに従ってほしい。
npm で入れた場合は、実行ポリシーにも注意
Codex は npm でも入れられる(npm install -g @openai/codex)。npm で入れると、C:\Users\<User>\AppData\Roaming\npm に codex.ps1・codex.cmd・codex の3つが作られる。どれが使われるかは、次のコマンドで確認できる。
Get-Command codex -All | Format-Table CommandType, Name, Source
私の PC では、一番上に codex.ps1(PowerShell のスクリプト)が出てきた。つまり PowerShell で codex と打つと、このスクリプトが使われる。スクリプトなので、PowerShell の実行ポリシーが Windows の既定の「Restricted」のままだと、実行を止められる。
私の PC は実行ポリシーを変えてあるので、その PowerShell の窓だけ Restricted にして試した(-Scope Process を付けると、その窓を閉じれば元に戻る)。
Set-ExecutionPolicy Restricted -Scope Process -Force codex --version codex.cmd --version

codex : このシステムではスクリプトの実行が無効になっているため、ファイル C:\Users\<User>\AppData\Roaming\npm\codex.ps1 を読み込むことができません。
+ CategoryInfo : セキュリティ エラー: (: ) []、PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
codex はこのエラーで止まり、.cmd を付けて codex.cmd と打つと動いた。対処は次のどれかである。
- codex.cmd と打つ: 設定を何も変えずに済む
- 実行ポリシーを変える: 自分のユーザーだけなら
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser。実行ポリシーの意味と変え方はPowerShellでスクリプト実行して「UnauthorizedAccess」と出たら権限を確認しように詳しくまとめている - npm ではなく公式のインストールコマンドで入れ直す: Codex の公式のコマンドは
-ExecutionPolicy ByPass付きで、入るのもスクリプトではない本体なので、この問題に当たらない
なお、npm 自体にも npm.ps1 が入っている環境では、npm コマンドそのものが同じエラーで止まることがある(Claude Code の公式のトラブルシューティングにも載っている)。私の PC の Node.js(v20.19.6)には npm.ps1 が無く、npm は普通に動いた。npm で同じエラーが出たときも、npm.cmd と打てば動く。
この記事のまとめ

- 行頭に PS があれば PowerShell、無ければ CMD。インストールコマンドを取り違えない
- Claude Code はインストールしても PATH が通らない。Setup notes の「is not in your PATH」を見て、自分で追加する
- PATH を変えた後やインストールした後は、PowerShell を開き直す(Codex も同じ)
- npm で入れた Codex は、実行ポリシーで止まることがある。codex.cmd と打つか、実行ポリシーを変える
関連記事
- PowerShellでスクリプト実行して「UnauthorizedAccess」と出たら権限を確認しよう
- 【ClaudeCode】「input is too long」で/compactすら失敗したときの直し方
- 【ClaudeCode】reasoning_extractionで止まる原因と対処

コメント