【ClaudeCode】WindowsでClaude Code・Codexが「認識されません」になる原因と対処|インストール直後のPATH

スポンサーリンク
Claude
スポンサーリンク

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' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
CMD で irm を実行したときのエラー

PowerShell で CMD 用のコマンドを打った場合

トークン '&&' は、このバージョンでは有効なステートメント区切りではありません。
PowerShell で && を使ったときのエラー

PowerShell で Mac/Linux 用のコマンドを打った場合

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

見分け方は簡単で、行の先頭に PS が付いていれば PowerShell、付いていなければ CMD である。

Claude Code: インストールは成功するのに「認識されません」

PowerShell で正しいコマンドを打つと、インストール自体は成功する。

Claude Code のインストール画面。Setup notes に PATH の注意が出ている

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

新しい PowerShell でも claude が認識されない

原因は、インストール画面の「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')
PATH を追加した直後。同じ窓ではまだ認識されない

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

新しい PowerShell で claude --version が動いた

コマンドを使わずに設定画面から追加する場合は、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 が通る)と出ている。

Codex のインストール画面。PATH updated for future PowerShell sessions と表示される

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

インストールした窓では codex が認識されない
新しい PowerShell では codex --version が動いた

管理者ではないユーザーだと、サンドボックスの準備で止まる

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

Couldn't set up your sandbox with Administrator permissions
Codex のサンドボックスの準備に失敗した画面

この場合は「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
npm で入れた codex が PSSecurityException で止まり、codex.cmd なら動いた画面
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 と打つか、実行ポリシーを変える

関連記事

参考

コメント

タイトルとURLをコピーしました