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つです。
- npmをやめ、PowerShellの公式インストーラーで入れ直す(
.ps1ではなくバイナリが入る) npm.cmdとclaude.cmdを代わりに呼ぶ(実行ポリシーの対象外)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と同じ条件で使えます。
関連記事
- Claude Codeとは?できること・使い方・料金:コード解析の実力と導入手順:Claude Code本体の機能と全体像です
- Claude Codeの使い方|インストールから権限・CLAUDE.md設定、初日の進め方まで:インストール後の権限とCLAUDE.mdの設定です
- Claude Codeデスクトップアプリの使い方|対応OS・バージョン確認と更新・4つの実行環境:ターミナルを使わずGUIで動かす場合です
- WSLで開発環境を構築する手順|.wslconfig調整とDocker連携・肥大化の対処:WSL2側の開発環境づくりです
- Claude Codeのセキュリティ設定|権限ルール・サンドボックス・管理設定で守る実装手順:権限ルールとサンドボックスの設計です