AI

Claude CodeをWindowsに入れる手順|ネイティブ版とWSL2の選び方・PATHとGit Bashの対処【2026年10月】

Claude CodeをWindowsに入れる手順|ネイティブ版とWSL2の選び方・PATHとGit Bashの対処【2026年10月】

Claude CodeはWindows 10 1809以降なら、PowerShellで1行のコマンドを打つだけでWSLなしに動きます。迷いやすいのはその先で、Git for Windowsの有無でClaudeが使うシェルが変わり、WSL2を選ぶかでサンドボックスの有無が決まります。この記事では、ネイティブ版とWSL2の選び方、PowerShell・CMD・WinGetのインストールコマンド、「claudeが認識されない」などWindows固有のエラーの直し方を、2026年10月22日時点の最新版v2.1.308と公式ドキュメントに沿って整理しました。

まとめ|WindowsでClaude Codeを使うときに先に決める3つの設定

個人の端末でWindows向けのプロジェクトを触るなら、ネイティブ版をPowerShellの irm https://claude.ai/install.ps1 | iex で入れるのが最短で、管理者権限は要りません。Linuxのツールチェーンで開発している、またはClaudeのコマンドをサンドボックスに閉じ込めたいなら、WSL2の中にLinux版を入れます。

ネイティブ版では、Git for Windowsを入れるとGit Bash経由のBashツールが使われ、入れなければPowerShellツールだけで動きます。シェルスクリプトの多いリポジトリならGitを入れてください。

インストール後に claude が認識されないときは、まず %USERPROFILE%\.local\bin がユーザーPATHにあるかを見ます。チームで配るなら、WinGetは自動更新されない点と、minimumVersion で版の下限を揃えられる点を押さえれば足ります。

ネイティブ版とWSL2のどちらでClaude Codeを動かすかの判断材料

WindowsでClaude Code(CLI)を動かす方式は、ネイティブ版、WSL2、WSL1の3つです。GUIで使う場合はClaude Codeデスクトップアプリの使い方|対応OS・バージョン確認と更新・4つの実行環境を参照してください。

公式の動作要件と、ネイティブ・WSL2・WSL1で使える機能の差

Claude Code公式のセットアップ手順が挙げる要件は、Windows 10 1809以降またはWindows Server 2019以降、メモリ4GB以上、x64またはARM64のCPUです。シェルはPowerShellとCMDのどちらでも構いません。ログインにはPro・Max・Team・Enterpriseのいずれかか、Consoleのアカウントが要り、無料のclaude.aiプランでは使えません。

方式 前提 サンドボックス 向いている場面
ネイティブWindows なし(Git for Windowsは任意) 非対応 Windows向けのプロジェクトとツール
WSL2 WSL2の有効化 対応 Linuxのツールチェーン、コマンドの隔離実行
WSL1 WSL1の有効化 非対応 WSL2が使えない端末のみ

機能面で差が出るのはサンドボックスだけです。サンドボックスの公式説明は、Windows端末で使うならWSL2の中で動かすよう案内しています。WSL1はv2.1.83以降でネイティブバイナリが起動しない不具合がGitHubのissue #38788で報告されており、新しく選ぶ理由はありません。

プロジェクトの置き場所で決める方式と、/mnt/c配下を避ける理由

方式を決める一番の手がかりは、ソースコードがどちらのファイルシステムにあるかです。MicrosoftのWSLドキュメントは、Linuxのコマンドラインで作業するならファイルをWSL側(/home/ユーザー名/Project)に置き、PowerShellやCMDで作業するならWindows側に置くよう勧めています。OSをまたいだファイル操作は遅くなるからです。

Claude Codeは1つの依頼の中でも検索とファイル読み込みを繰り返すため、Cドライブのリポジトリを WSL2から /mnt/c 経由で触ると、この遅さを毎回踏みます。リポジトリをCドライブから動かさないならネイティブ版、Linux側に置けるならWSL2、と分けるのが確実です。

PowerShell・CMD・WinGetでネイティブ版を入れるインストール手順

ネイティブ版は、公式インストーラー、WinGet、npmのどれで入れても同じバイナリですが、更新のされ方が違います。

PowerShellとCMDで違うコマンドと、取り違えたときのエラー

プロンプトが PS C:\ で始まればPowerShell、PS が無ければCMDです。使っているシェルに合わせて次のどちらか1行を実行します。

# PowerShell(推奨)
irm https://claude.ai/install.ps1 | iex

# CMD
curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

# 一週間ほど遅れて配信されるstableチャネルで入れる場合(PowerShell)
& ([scriptblock]::Create((irm https://claude.ai/install.ps1))) stable

インストーラーはダウンロード中に進捗を表示しません。シェルを取り違えると、公式のトラブル対処ページにある次のエラーが出ます。

  • The token '&&' is not a valid statement separator:PowerShellでCMD用のコマンドを打った
  • 'irm' is not recognized:CMDでPowerShell用のコマンドを打った
  • A parameter cannot be found that matches parameter name 'fsSL':PowerShellでmacOS・Linux用の curl ... | bash を打った(PowerShellの curl は Invoke-WebRequest の別名)

3つ目は、macOS向けの手順をWindowsにそのまま貼ったときに出ます。コピー元がどのOS向けの手順かを、まず確かめてください。

WinGetとnpmで入れる場合の自動更新の差と実行ポリシーの壁

公式インストーラーで入れたネイティブ版は、バックグラウンドで自動更新されます。winget install Anthropic.ClaudeCode で入れた場合は自動更新されず、winget upgrade Anthropic.ClaudeCode を定期的に打つ運用が必要です。CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE=1 で代行させられますが、実行中は実行ファイルがロックされて失敗することがあります。

npmで入れる場合はNode.js 22以降が必要です。npm.ps1 cannot be loaded because running scripts is disabled と出たら、実行ポリシーが .ps1 のランチャーを止めています。直し方は手間の少ない順に次の3つです。

  1. npmをやめ、PowerShellの公式インストーラーで入れ直す(.ps1 ではなくバイナリが入る)
  2. npm.cmd と claude.cmd を代わりに呼ぶ(実行ポリシーの対象外)
  3. Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser でユーザー単位に許可する

npmにこだわる理由が無ければ1番目を選んでください。

claude –versionとclaude doctorで導入結果を確かめる方法

インストールが終わったら、ターミナルを開き直して次の2つを打ちます。開き直さないと、新しいPATHが読み込まれません。

claude --version
# 2.1.308 (Claude Code) のように版番号が出れば成功

claude doctor
# セッションを始めずに、インストール状態・設定ファイルの検証結果・自動更新の直近結果を表示する

claude doctor は設定を書き換えない読み取り専用の診断です。版番号が出たらプロジェクトのフォルダで claude を起動し、ブラウザでログインします。ログイン後の権限モードや CLAUDE.md の書き方はClaude Codeの使い方|インストールから権限・CLAUDE.md設定、初日の進め方までに続きます。

Git for WindowsとPowerShellツールの関係を整理するシェル設定

ネイティブ版で一番つまずきやすいのが、Claudeがコマンドを実行するシェルです。

Git Bashの有無で変わる、Claudeがコマンドを打つシェルの種類

Git for Windowsは任意です。公式のツールリファレンスによると、Git Bashが無い端末ではPowerShellツールが自動で有効になります。Git Bashがあれば、Bashツールに加えてPowerShellツールも既定で有効です(Amazon BedrockなどのクラウドAPI経由では CLAUDE_CODE_USE_POWERSHELL_TOOL=1 の指定が必要)。

PowerShellは pwsh.exe(7以降)を優先し、無ければ powershell.exe(5.1)を使います。プレビュー中の制限でプロファイルは読み込まれないため、$PROFILE のエイリアスや関数はClaudeから見えません。PowerShell 7の入れ方はPowerShellのインストール手順|7.6 LTSをwinget・MSI・Linux・macOSで入れるにまとめています。

リポジトリに .sh のスクリプトやMakefileがあるならGitを入れます。バックグラウンドの出力を見張るMonitorツールもGit Bashが前提です。

日本語入力(IME)の不具合や、PowerShell 5.1で日本語が文字化けするときの対処はClaude Codeを日本語で使う設定を参照してください。

CLAUDE_CODE_GIT_BASH_PATHでbash.exeの場所を示す設定例

Gitを入れたのにBashツールが使われない場合、bash.exe が見つかっていません。探す順番は C:\Program Files\Git、C:\Program Files (x86)\Git、PATH上の git と同じ場所の bin\bash.exe です。

PowerShellで where.exe git を打って場所を確かめ、ユーザー設定 %USERPROFILE%\.claude\settings.json に次のように書きます。

{
  "env": {
    "CLAUDE_CODE_GIT_BASH_PATH": "C:\\Program Files\\Git\\bin\\bash.exe"
  }
}

パスの区切りはJSONのため \\ と2本重ねます。指定できるファイル名は bash.exe・sh.exe・bash・sh だけで、Git for Windowsのランチャーである git-bash.exe を指定すると無視され、自動検出に戻ります(v2.1.219以降の仕様)。

Bashの拒否ルールでPowerShellツールまで止まる落とし穴と回避策

Git Bashのある端末で Bash(git push *) のような拒否ルールを書くと、そのセッションではPowerShellツールが警告なしに無効になります。Bashのルールは同じ操作をPowerShellで打つ経路を塞げないため、Claude Code側で止める仕様です。Bash そのものを拒否した場合は、シェルツールが1つも残りません。

PowerShellツールを残したいときは、PowerShell用の拒否ルールを並べて書きます。

{
  "permissions": {
    "deny": [
      "Bash(git push *)",
      "PowerShell(git push *)"
    ]
  }
}

Bashのルールを書いたら同じ中身のPowerShellルールも書く、と決めておけば抜けません。フックのマッチャーも Bash|PowerShell にします。権限ルールの全体設計はClaude Codeのセキュリティ設定|権限ルール・サンドボックス・管理設定で守る実装手順で扱っています。

WSL2の中にClaude Codeを入れてサンドボックスまで動かす作業手順

WSL2では、Linux版をWSLのターミナルの中で入れ、そこから起動します。

wsl –installからLinux版インストーラーの実行までのコマンド

WSLがまだ無い端末では、管理者のPowerShellで wsl --install を実行して再起動します。Microsoftのインストール手順によると、既定で入るのはWSL2のUbuntuです。その後、Ubuntuのターミナルで次を打ちます。

# WSL2のUbuntu内で実行
cd ~
curl -fsSL https://claude.ai/install.sh | bash
claude --version

# 既存のディストリビューションがWSL1だった場合はPowerShellでWSL2へ変換する
wsl -l -v
wsl --set-version Ubuntu 2

wsl -l -v のVERSION列が1で Exec format error が出るなら、WSL2へ変換すれば直ります。リポジトリは ~/ 配下にcloneし直してください。WSLのメモリ割り当てやDocker連携はWSLで開発環境を構築する手順|.wslconfig調整とDocker連携・肥大化の対処が詳しいです。

WSL2でログインが戻らないときのBROWSER設定とclaude auth login

WSL2では、ブラウザがWindows側で開くため、ログイン後のリダイレクトがClaude Codeに戻らないことがあります。その場合は、ブラウザに表示されるコードをターミナルの Paste code here if prompted に貼り付けてください。ブラウザ自体が開かないときは、Windowsのブラウザを環境変数で指定します。

export BROWSER="/mnt/c/Program Files/Google/Chrome/Application/chrome.exe"
claude

# 貼り付けが効かないターミナルでは、標準入力からコードを読む方法に切り替える
claude auth login

claude auth login はネイティブWindowsで貼り付けが効かない場合にも使えます。

「Login expired」などの認証エラーや、サブスクとAPIキーの切り替えでつまずいたときはClaude Codeのログイン方法を参照してください。

bubblewrapとsocatを入れて/sandboxを有効にする手順

サンドボックスは既定でオフです。依存パッケージを入れてから有効にします。

sudo apt-get install bubblewrap socat
# 入れたらClaude Codeを再起動し、セッション内で次を実行
/sandbox

/sandbox のパネルにDependenciesタブだけが出る場合は、依存が足りていません。有効にすると、Claudeが打つコマンドとその子プロセスは、許可したファイルとネットワーク宛先にしか届きません。ファイル編集ツール、MCPサーバー、フックは対象外です。

「claudeが認識されない」などWindows特有のエラーを症状別に直す方法

インストール後に出るWindows固有のエラーを、症状ごとに直します。

PATHに.local\binが無いときの確認コマンドと追加の手順

ネイティブ版の本体は %USERPROFILE%\.local\bin\claude.exe に入ります。インストーラーはPATHを書き換えず、... is not in your PATH. と注意を出すだけです。PowerShellで次の順に確かめます。

# 1. 本体があるか(Trueなら次へ)
Test-Path "$env:USERPROFILE\.local\bin\claude.exe"

# 2. PATHに入っているか(何も出なければ未登録)
$env:PATH -split ';' | Select-String '\.local\\bin'

# 3. ユーザーPATHへ追加する
$currentPath = [Environment]::GetEnvironmentVariable('PATH', 'User')
[Environment]::SetEnvironmentVariable('PATH', "$currentPath;$env:USERPROFILE\.local\bin", 'User')

追加したらターミナルを開き直します。VS Codeなどエディタ内のターミナルは、エディタごと再起動しないと直りません。

更新直後にclaude.exeが消えたときのバックアップからの復元

更新の直後から 'claude' is not recognized が出る場合は別の原因です。Windowsの更新は今の claude.exe を claude.exe.old.数字 へ退避してから新しい版を置くため、置き換えに失敗すると本体が無いまま残ります。

Get-ChildItem "$env:USERPROFILE\.local\bin\claude.exe.old.*" | Sort-Object Name | Select-Object -Last 1 | Rename-Item -NewName claude.exe
claude --version

退避ファイルが無ければインストーラーを再実行します。v2.1.281より前は、退避ファイルまで消える場合がありました。インストール中に The process cannot access the file と出たときは、%USERPROFILE%\.claude\downloads を削除して入れ直してください。

社内プロキシ・32ビット版PowerShell・古いデスクトップアプリで止まる例

会社の端末では、ネットワークと端末管理が原因のエラーが増えます。

  • Could not create SSL/TLS secure channel:PowerShell 5.1でTLS 1.2が無効。[Net.ServicePointManager]::SecurityProtocol に Tls12 を設定して再実行する
  • unable to get local issuer certificate:プロキシのTLS検査。プロキシのCA証明書をWindowsの証明書ストアへ入れてもらう
  • CRYPT_E_NO_REVOCATION_CHECK:失効確認の通信が遮断されている。CMDの curl に --ssl-revoke-best-effort を付ける
  • does not support 32-bit Windows:Windows PowerShell (x86) を開いている。x86の付かない方で入れ直す
  • claude でデスクトップアプリが開く:古いデスクトップアプリの Claude.exe がPATHで優先されている。アプリを最新版へ更新する

AppLockerやEDRが入った端末でGit Bashが使われない場合は、claude.exe と子プロセスの cmd.exe・bash.exe の許可が要ります。個人では直せないので、導入前に情シスへ確認してください。

開発チームのWindows端末へClaude Codeを配るときの採用条件と線引き

チームの全員に入れる段階では、方式と版を揃えないと「自分の端末では動く」問題が起きます。

ネイティブ版で足りるチームとWSL2を標準にすべきチームの境目

ネイティブ版を標準にしてよいのは、.NETなどWindows向けのアプリを作っていて、Claudeの操作を確認ダイアログで止める運用のチームです。WSL2を標準にすべきなのは、本番がLinuxで、テストやビルドを無確認で回させたいチームです。無確認で回すなら、OSが強制するサンドボックスの境界が要ります。

見送るべき場面もあります。EDRやAppLockerで bash.exe や pwsh.exe の起動許可が取れない端末では、ネイティブ版はシェルツールが使えず実質的に動きません。WSLが社内規程で禁止されていて無確認実行もしたい場合は、Windows端末での運用をやめ、Linuxの開発サーバーやコンテナで動かす方が安全です。料金プランの選び方はClaude Codeの料金プラン比較|Pro・Max・Team・APIの損益分岐と支出上限の設定で比べています。

版を揃えるautoUpdatesChannelとminimumVersionの書き方

チーム配布では、公式インストーラーで入れて自動更新に任せ、チャネルと下限だけを揃えるのが手間の少ない方法です。stableチャネルは約1週間遅れで、大きな不具合のあった版を飛ばして配信されます。

{
  "autoUpdatesChannel": "stable",
  "minimumVersion": "2.1.281"
}

例の 2.1.281 は、前述した退避ファイルの扱いが改善された版です。minimumVersion より古い版へは戻らず、管理設定(managed settings)で配れば利用者側では上書きできません。自社の経路で版を固定するなら、手動の claude update まで止める DISABLE_UPDATES を使います。

Windows端末へのAIコーディングエージェント展開を、権限設計や社内ツールとの接続まで含めて進めたい場合は、生成AI開発・AI受託開発で相談を受けています。

よくある質問

Windowsへの導入でよく聞かれる質問をまとめました。

Claude CodeはWindowsに管理者権限なしでインストールできますか?

できます。PowerShell用とCMD用のインストールコマンドは、どちらも管理者として実行する必要がありません。本体はユーザーが書き込める %USERPROFILE%\.local\bin に入ります。管理者権限が要るのは、WSLを有効にする wsl --install と、Git for Windowsを全ユーザー向けに入れる場合です。

Git for Windowsは必ずインストールしなければいけませんか?

必須ではありません。2026年10月時点の公式手順では任意で、入れない場合はPowerShellツールでコマンドが実行されます。ただしBashツールとMonitorツールはGit Bashが前提です。シェルスクリプトやMakefileを使うリポジトリなら入れておく方が、Claudeがリポジトリの手順どおりにコマンドを打てます。

WSL1のままでもClaude Codeは使えますか?

おすすめしません。v2.1.83以降、WSL1ではネイティブバイナリが Exec format error で起動しない不具合がGitHubのissue #38788で報告されています。動的リンカー経由で起動する回避策も公式に載っていますが、サンドボックスもWSL1では使えません。PowerShellで wsl --set-version ディストリビューション名 2 を実行し、WSL2へ変換するのが確実です。

VS Codeのターミナルだとclaudeが見つからないのはなぜですか?

エディタの中のターミナルは、エディタを起動した時点のPATHを引き継ぐためです。エディタの起動後にPATHを足した場合、ターミナルを開き直しても反映されません。VS Codeを完全に終了して起動し直してください。それでも出ない場合は、PATH確認コマンドで .local\bin がユーザーPATHに保存されているかを確かめます。

Windows版とMac版で使える機能や料金は違いますか?

料金は同じです。Windowsかどうかではなく、Pro・Max・Team・Enterpriseのプランか、API従量課金かで決まります。機能面の差は、ネイティブWindowsでサンドボックスが使えないことと、PowerShellツールがプレビューのためプロファイルを読み込まないことの2点です。サンドボックスが必要ならWSL2の中で動かせば、Linuxと同じ条件で使えます。

関連記事

お気に入りに入れた記事の一覧

この記事は以下の記事からリンクされています

資料請求

今日のトレンド記事 直近 24 時間で、いつもより多く読まれている記事

  1. 2026.07.21 テックブログ Apache Tomcatの脆弱性一覧【2026年10月】最新版11.0.27・10.1.61・9.0.123とCVE-2026-59083ほかの影響確認・対応手順
  2. 2026.10.21 テックブログ ふるさとチョイス不正アクセスで445万件流出:対象確認・パスワード変更と再開時期
  3. 2026.10.21 テックブログ NEC委託先の不正アクセスとは|顧客システム暗号化・情報漏えいの経緯と委託元が点検する正規アカウント
  4. 2026.10.15 テックブログ 銀のさら不正アクセス:最大650万件の対象確認と窓口、パスワード変更・退会の手順
  5. 2026.10.07 テックブログ ファインズの不正アクセスと153万件の予約者情報|予約システムを使う店舗の報告と通知の手順

RELATED POSTS 関連記事

目次