---
title: "Claude CodeをWindowsに入れる手順｜ネイティブ版とWSL2の選び方・PATHとGit Bashの対処【2026年10月】"
url: "https://www.issoh.co.jp/tech/details/18746/"
published: 2026-10-22
updated: 2026-10-22
categories: ["AI"]
publisher: "株式会社一創"
---

# 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つの実行環境](https://www.issoh.co.jp/tech/details/11800/)を参照してください。

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

[Claude Code公式のセットアップ手順](https://code.claude.com/docs/en/setup)が挙げる要件は、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が使えない端末のみ           |

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

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

方式を決める一番の手がかりは、ソースコードがどちらのファイルシステムにあるかです。[MicrosoftのWSLドキュメント](https://learn.microsoft.com/ja-jp/windows/wsl/filesystems)は、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
```

インストーラーはダウンロード中に進捗を表示しません。シェルを取り違えると、[公式のトラブル対処ページ](https://code.claude.com/docs/en/troubleshoot-install)にある次のエラーが出ます。

- `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設定、初日の進め方まで](https://www.issoh.co.jp/tech/details/17375/)に続きます。

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

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

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

Git for Windowsは任意です。[公式のツールリファレンス](https://code.claude.com/docs/en/tools-reference)によると、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で入れる](https://www.issoh.co.jp/tech/details/17921/)にまとめています。

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

日本語入力（IME）の不具合や、PowerShell 5.1で日本語が文字化けするときの対処は[Claude Codeを日本語で使う設定](https://www.issoh.co.jp/tech/details/18753/)を参照してください。

### 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のセキュリティ設定｜権限ルール・サンドボックス・管理設定で守る実装手順](https://www.issoh.co.jp/tech/details/18080/)で扱っています。

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

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

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

WSLがまだ無い端末では、管理者のPowerShellで `wsl --install` を実行して再起動します。[Microsoftのインストール手順](https://learn.microsoft.com/ja-jp/windows/wsl/install)によると、既定で入るのは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連携・肥大化の対処](https://www.issoh.co.jp/tech/details/17354/)が詳しいです。

### 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のログイン方法](https://www.issoh.co.jp/tech/details/18748/)を参照してください。

### 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の損益分岐と支出上限の設定](https://www.issoh.co.jp/tech/details/17988/)で比べています。

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

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

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

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

Windows端末へのAIコーディングエージェント展開を、権限設計や社内ツールとの接続まで含めて進めたい場合は、[生成AI開発・AI受託開発](https://www.issoh.co.jp/service/ai/development/)で相談を受けています。

## よくある質問

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と同じ条件で使えます。

## 関連記事

- [Claude Codeとは？できること・使い方・料金：コード解析の実力と導入手順](https://www.issoh.co.jp/tech/details/5571/)：Claude Code本体の機能と全体像です
- [Claude Codeの使い方｜インストールから権限・CLAUDE.md設定、初日の進め方まで](https://www.issoh.co.jp/tech/details/17375/)：インストール後の権限とCLAUDE.mdの設定です
- [Claude Codeデスクトップアプリの使い方｜対応OS・バージョン確認と更新・4つの実行環境](https://www.issoh.co.jp/tech/details/11800/)：ターミナルを使わずGUIで動かす場合です
- [WSLで開発環境を構築する手順｜.wslconfig調整とDocker連携・肥大化の対処](https://www.issoh.co.jp/tech/details/17354/)：WSL2側の開発環境づくりです
- [Claude Codeのセキュリティ設定｜権限ルール・サンドボックス・管理設定で守る実装手順](https://www.issoh.co.jp/tech/details/18080/)：権限ルールとサンドボックスの設計です

---

出典: [Claude CodeをWindowsに入れる手順｜ネイティブ版とWSL2の選び方・PATHとGit Bashの対処【2026年10月】](<https://www.issoh.co.jp/tech/details/18746/>)（株式会社一創）
