BLOG
Memo
Windows の端末に Claude Code を入れる作業をしました。インストール自体はコマンド1行で終わったのですが、そのあと claude と打っても「そんなコマンドは無い」と返ってくる状態になりました。原因はインストール先のフォルダが PATH に登録されていなかった点です。ユーザー環境変数へ恒久的に登録して解決しています。
ここで止まる方は多いと思いますので、インストールの手順とあわせて直し方を残しておきます。作業した端末は Windows 11 Home、CPU は Intel Core i7-1355U です。
動作要件
公式ドキュメントに書かれている Windows 側の条件は次の3つです。
| OS | Windows 10 バージョン1809以上、または Windows Server 2019 以上 |
|---|---|
| CPU | x64 または ARM64(32bit は非対応) |
| メモリ | 4GB以上 |
自分の端末がどれに当たるかは、スタートボタンを右クリックして「システム」を開くと確認できます。
インストールはコマンド1行です
公式が推奨しているのはネイティブ版です。PowerShell を開いて次の1行を実行します。
irm https://claude.ai/install.ps1 | iex
コマンドプロンプトを使う場合はこちらになります。
curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd
どちらを開いているか分からないときは、入力位置の左に出ている文字を見てください。PS C:\Users\...> のように PS から始まっていれば PowerShell です。
ネイティブ版をおすすめする理由は自動更新が付いてくる点です。npm 版と Homebrew 版と WinGet 版は手動で更新する必要があります。npm で入れる場合は npm install -g @anthropic-ai/claude-code を実行します。こちらは別途 Node.js 22 以上が必要です。ネイティブ版なら Node.js を用意しなくても動きます。
公式ドキュメントには sudo npm install -g を使わないようにという注意書きもあります。
あわせて入れておくもの
Git for Windows は公式が推奨しています(配布ページ)。入っていれば Claude Code は Git Bash の Bash ツールを使い、入っていなければ PowerShell のツールで代わりに動きます。インストールしてあるのに見つけてもらえないときは、%USERPROFILE%\.claude\settings.json に CLAUDE_CODE_GIT_BASH_PATH を書いて場所を教えます。ファイルの中身を検索するのに使う ripgrep は通常同梱されています。
起動と認証
入ったかどうかはバージョン表示で確かめます。
claude --version
環境のどこかに問題がないかをまとめて見たいときは claude doctor が便利です。
claude と打って起動するとブラウザが開き、そこで認証します。利用には Claude Pro / Max / Team / Enterprise のいずれか、または Anthropic Console のアカウントが必要です。無料プランでは利用できません。Amazon Bedrock や Google Cloud Vertex AI、Microsoft Foundry 経由で使う方法も用意されています。
「'claude' は認識されません」と出たときの直し方
ここで止まりました。インストールが成功したあとにバージョンを確認しようとしたところ、返ってきたのは次のメッセージです。
claude : 用語 'claude' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。
インストールに失敗したように見えますが、ファイル自体はきちんと置かれています。インストール先の %USERPROFILE%\.local\bin が PATH に登録されていないため、名前だけでは呼び出せない状態です。PATH というのは「コマンドを名前で打ったときに Windows が実行ファイルを探しに行くフォルダの一覧」です。ここに載っていないフォルダの中身は名前だけでは呼び出せません。
まずファイルがあるかを確認する
Test-Path "$env:USERPROFILE\.local\bin\claude.exe"
True が返ればインストールは終わっていて、残っているのは PATH の設定だけです。
その場だけ通す方法(再起動で消えます)
$env:Path += ";$env:USERPROFILE\.local\bin"
これはいま開いている PowerShell のウィンドウの中だけで効きます。メモリ上の値を書き換えているだけなので、ウィンドウを閉じると設定は失われます。とりあえず動かしてみたいときはこれで足りますが、次に開いたウィンドウでは同じエラーが出ます。
恒久的に登録する方法
再起動しても残るようにするには、ユーザー環境変数に書き込みます。PowerShell で次の4行を1行ずつ実行してください。
$bin = "$env:USERPROFILE\.local\bin"
$user = [Environment]::GetEnvironmentVariable("Path","User")
$new = if ([string]::IsNullOrEmpty($user)) { $bin } else { $user.TrimEnd(';') + ";" + $bin }
[Environment]::SetEnvironmentVariable("Path", $new, "User")
4行目の [Environment]::SetEnvironmentVariable("Path", $new, "User") がレジストリの HKCU:\Environment へ書き込む処理です。画面の「環境変数の編集」で開く場所と中身は同じものになります。実行したら PowerShell をいったん閉じて開き直してください。開いているウィンドウには設定が反映されません。
登録できたかどうかは次のどちらかで確認できます。
[Environment]::GetEnvironmentVariable("Path","User")
Get-ItemProperty -Path "HKCU:\Environment" -Name Path
画面から操作する場合
コマンドを使わずに登録することもできます。スタートボタンを右クリックして「システム」を開き、「システムの詳細設定」から「環境変数」へ進みます。下段の「ユーザー環境変数」にある Path を選んで「編集」をクリックし、「新規」から %USERPROFILE%\.local\bin を追加します。
実際に踏んだ落とし穴が2つあります
ユーザー環境変数に Path という項目が無かった
今回の端末では、ユーザー環境変数の Path がそもそも作られていませんでした。既存の値を読んで末尾のセミコロンを落とす $user.TrimEnd(';') のところで null 値の式ではメソッドを呼び出せません と出て止まりました。何も追加していない端末では、この項目は存在しないことがあります。先ほどの4行で [string]::IsNullOrEmpty($user) を挟んでいるのはこれを避けるためです。
ネットで見つかる手順の多くは Path が既にある前提で書かれています。エラー文に null が出てきたら、値が空ではなく項目そのものが無いと考えて読み直してください。
複数行の if をまとめて貼り付けると1行ずつ実行される
最初は if と elseif と else を改行で分けた形で書いていました。これを PowerShell の画面にまとめて貼り付けると、1行ずつ別のコマンドとして実行されてしまいます。結果として 'else' は認識されません のようなエラーがいくつも並びました。条件分岐を貼り付けるときは1行にまとめるか、.ps1 のスクリプトファイルに保存してから実行してください。
そのほかに詰まりやすいところ
running scripts is disabled on this systemと出てスクリプトが動かない場合はSet-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUserを実行します。- Claude Desktop アプリを入れている端末では、Desktop 側の
claudeが CLI 版を隠してしまうことがあります。Get-Command claudeでどれが呼ばれているかを確認してください。 - インストール中に 403 が返る場合は、ネットワークやプロキシの設定、セキュリティソフト、端末の時刻同期を順に疑っていきます。
更新とアンインストール
ネイティブ版は自動で更新されます。手動で上げたいときは claude update を実行します。更新チャネルは settings.json の autoUpdatesChannel で latest と stable を切り替えられます。自動更新を止めたい場合は settings.json の env に DISABLE_AUTOUPDATER: "1" を入れます。
消すときは次の2つを削除します。
Remove-Item -Path "$env:USERPROFILE\.local\bin\claude.exe" -Force
Remove-Item -Path "$env:USERPROFILE\.local\share\claude" -Recurse -Force
まとめ
インストールで時間を取られたのは PATH の1点だけでした。claude が見つからないときは、まず Test-Path でファイルの有無を確かめて、あればユーザー環境変数へ登録する。この順番で見ていけば迷いません。
一時的な設定と恒久的な設定の違いも押さえておくと役に立ちます。$env:Path への追加はその場しのぎで、[Environment]::SetEnvironmentVariable は再起動しても残ります。動作確認は前者で済ませて、うまくいったら後者で登録するのが安全です。
弊社では日々の定型業務を自動化する仕組みづくりをお手伝いしています。社内のどの作業から手を付けるか決まっていない段階でも構いませんので、お気軽にご相談ください。
参照: Claude Code 公式ドキュメント Set up Claude Code/Troubleshooting installation(いずれも英語)