Node.jsをインストールしたのに、npm -vを実行すると次のエラーが表示されることがあります。
'npm' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

※ 画面の「set PATH=」で始まる行は、エラーを再現するために実行したコマンドです。実行する必要はありません。
PowerShellやVS Codeのターミナルでは、同じ原因でも違うメッセージが表示されます。この記事では、4つの原因の見分け方と、原因ごとの直し方を解説します。
- Windows 10 Pro 22H2
- Windows PowerShell 5.1
- Visual Studio Code 1.127.0
- Node.js v22.14.0
- npm 10.9.2
- 確認日: 2026年10月10日
npmが認識されない4つの原因と見分け方
Q. npmが「認識されていません」と出るのはなぜ?
A. Windowsがnpmのファイルを見つけられないためです。PowerShellでは、ファイルが見つかっても実行ポリシーという設定で止められ、「npm.ps1 を読み込むことができません」と表示されることもあります。
Windowsは、入力されたコマンドのファイルをPATH(環境変数Path)に登録されたフォルダから探します。PATHは、コマンドを探しに行くフォルダの一覧です。Node.jsのインストーラーは、npmが入っているC:\Program Files\nodejs\をこの一覧に追加します。
npmが認識されない原因は次の4つです。
- Node.jsのインストール前から開いていたウィンドウを使っている
- Node.jsがインストールされていない
- PATHに
C:\Program Files\nodejs\が入っていない - (PowerShellだけ)実行ポリシーで
npm.ps1の実行が止められている
①〜③は同じメッセージになるので、番号の順に確認します。
| 表示されるメッセージ | 表示される画面 | 原因 |
|---|---|---|
| 'npm' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして 認識されていません。 | コマンドプロンプト | ①→②→③の順に確認 |
| 'npm' is not recognized as an internal or external command, operable program or batch file. | コマンドプロンプト (英語表示のWindows) | ①→②→③の順に確認 |
| npm : 用語 'npm' は、コマンドレット、関数、 スクリプト ファイル、または操作可能なプログラムの 名前として認識されません。 | PowerShell (VS Codeのターミナルを含む) | ①→②→③の順に確認 |
| npm : このシステムではスクリプトの実行が 無効になっているため、ファイル C:\Program Files\nodejs\npm.ps1 を 読み込むことができません。 | PowerShell (VS Codeのターミナルを含む) | ④ |
PowerShellでnpmが見つからない場合のメッセージは、全体では次のとおりです。
npm : 用語 'npm' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください。

※ 画面の「$env:Path =」で始まる行は、エラーを再現するために実行したコマンドです。実行する必要はありません。
①Node.jsのインストール前から開いていたウィンドウを開き直す
Q. npmが「認識されていません」と出た場合、まず何をすればいい?
A. Node.jsをインストールした直後は、開いているコマンドプロンプトやPowerShellを閉じて、開き直してください。VS Codeのターミナルの場合は、VS Codeごと終了して起動し直します。
コマンドプロンプトやPowerShellのウィンドウは、閉じるまで、開いた時点のPATHを使い続けます。Node.jsのインストール前から開いていたウィンドウでは、PATHにC:\Program Files\nodejs\が入っていません。そのため、Windowsがnpmを見つけられません。
開いているウィンドウを閉じ、スタートメニューなどから新しく開いてnpm -vを実行してください。npmのバージョン番号が表示されれば直っています。Windowsを再起動する必要はありません。

VS Codeのターミナルで「認識されていません」と出る場合はVS Code本体を起動し直す
VS Codeのターミナルは、VS Codeを起動した時点の環境変数を受け継ぎます。そのため、ターミナルだけを開き直しても、Node.jsのインストールで変わったPATHは反映されません。
VS Codeのウィンドウをすべて閉じて終了し、起動し直してください。そのあと新しいターミナルでnpm -vを実行します。
開き直しても直らない場合はnode -vとwhere.exe npmで原因を見分ける
エラーが出る場合は、そのウィンドウで次の2つのコマンドを実行します。
node -vwhere.exe npmnode -vは、Node.jsのバージョンを表示するコマンドです。where.exe npmは、PATHのフォルダからnpmのファイルを探して、見つかった場所を表示します。
PowerShellで.exeを付けずにwhereと打つと、別のコマンドとして動いて何も表示されません。PowerShellでも.exeまで打ってください。
結果の組み合わせで、原因が次のように分かれます。
node -vの結果 | where.exe npmの結果 | 原因 |
|---|---|---|
| 「認識されていません」 (PowerShellでは「認識されません」) | 情報: 与えられたパターンのファイルが 見つかりませんでした。 | ②か③ (npm.cmdがあるかで見分ける) |
| バージョン番号が表示される | C:\Program Files\nodejs\npmなどの場所が表示される | このウィンドウでnpm -vも通る場合は①(元のウィンドウが古かった) PowerShellの npm -vでnpm.ps1のメッセージが出る場合は④ |
npm.cmdがあるかでNode.jsの未インストールとPATHの問題を見分ける
node -vが「認識されていません」になり、where.exe npmでもnpmが見つからない場合があります。その場合は、Node.jsのインストール先のフォルダにnpm.cmdがあるかを確かめます。コマンドプロンプトで次のコマンドを実行してください。
dir "C:\Program Files\nodejs\npm.cmd"「C:\Program Files\nodejs のディレクトリ」の下にnpm.cmdが表示されれば、ファイルはあります。
下の画面は、エラーを再現するためにPATHを書き換えたウィンドウで実行したものです。

インストール先を変えていない場合、npm.cmdが無ければ原因は②(Node.jsが未インストール)、あれば③(PATHの問題)です。
インストール先を変えた場合やnvm-windowsで入れた場合は、Node.jsをインストールしたフォルダにnpm.cmdがあるかを確かめてください。
②Node.jsがインストールされていない場合はインストールする
npmはNode.jsと一緒にインストールされるので、npmだけを別にインストールする必要はありません。
インストーラーの途中に出る「Custom Setup」の画面では、「Add to PATH」を既定のままにしてください。ツリーのアイコンでインストールしない設定にすると、PATHにフォルダが追加されず、インストールしても原因③と同じ状態になります。
インストールが終わったら、新しく開いたコマンドプロンプトでnpm -vを実行して確かめます。
Node.jsのダウンロードからインストールまでの手順は、以下の記事で画像付きで解説しています。
-

【Windows】Node.jsのダウンロードとインストール方法|画像付き
WindowsパソコンにNode.jsをインストールしたい方のために、公式サイトからのダウンロード方法からインストール手順、そしてインストール後の動作確認方法まで、初心者にも分かりやすく丁寧に解説しま ...
③環境変数PathにC:\Program Files\nodejs\を追加する
Node.jsのインストーラーがC:\Program Files\nodejs\を追加するのは、「システム環境変数」のPathです。ここに同じフォルダを追加します。
上の「ユーザー環境変数」のPathにある…\AppData\Roaming\npmは、npm本体の場所ではありません。npmで入れたコマンドが置かれるフォルダです。TypeScriptのtscが認識されないときに追加する%AppData%\npmは、このフォルダのことです。
システム環境変数を変更するには、管理者の権限が必要です。管理者の権限が無いアカウントの場合は、上の「ユーザー環境変数」のPathに同じフォルダを追加すれば、そのアカウントではnpmを使えます。
「Win + R」を押し、「名前(O)」に
sysdm.cplと入力して「OK」をクリック
「詳細設定」タブをクリック

「環境変数(N)...」をクリック

下の「システム環境変数(S)」で「Path」を選び、「編集(I)...」をクリック

一覧に
C:\Program Files\nodejs\があるか確かめるPathに登録されたフォルダが、1行に1つずつ並んでいます。すでにある場合は、追加する必要はありません。綴りが違っていれば、その行を選んで「編集(E)」で直します。
C:\Program Files odejs\以外の行は、消したり書き換えたりしないでください。ほかのアプリが使うフォルダも並んでいるためです。間違えて変えてしまった場合は、「キャンセル」で閉じれば変更は保存されません。綴りが合っている場合は、コマンドプロンプトやPowerShellをスタートメニューなどから開き直したかを確かめてください(①)。
無い場合は「新規(N)」をクリックし、
C:\Program Files\nodejs\を入力する追加するフォルダCopyC:\Program Files\nodejs\
「OK」をクリックし、「環境変数」と「システムのプロパティ」の画面も「OK」で閉じる
新しく開いたコマンドプロンプトで
npm -vを実行するnpmのバージョン番号が表示されれば完了です。VS Codeのターミナルで使う場合は、VS Codeも終了して起動し直してください。
④「npm.ps1 を読み込むことができません」と出る場合は実行ポリシーを変える
PowerShellでnpm -vを実行すると、次のメッセージが表示される場合があります。
npm : このシステムではスクリプトの実行が無効になっているため、ファイル C:\Program Files\nodejs\npm.ps1 を読み込むことができません。詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=135170) を参照してください。

Q. PowerShellで「npm.ps1 を読み込むことができません」と出る場合はどうする?
A. 実行ポリシーを今のユーザーだけRemoteSignedに変えると直ります。実行ポリシーを変えられない場合は、npmの代わりにnpm.cmdと打ちます。
VS Codeのターミナルも、既定ではPowerShellで動くので、同じメッセージが表示されます。

Node.jsのフォルダには、npmを起動するファイルとしてnpm.cmdとnpm.ps1が入っています。PowerShellはnpmと打たれると、PowerShell用のnpm.ps1を先に使います。コマンドプロンプトはnpm.cmdを使うので、このエラーは出ません。
npm.ps1はPowerShellのスクリプトなので、実行ポリシーの対象になります。実行ポリシーは、PowerShellがどんな条件でスクリプトを実行するかを決める、安全のための設定です。Windowsに最初から入っているWindows PowerShellは、スクリプトを実行しない設定(Restricted)が既定です。Windows Serverだけは既定が違います。
エラーのメッセージにある「about_Execution_Policies」は、Microsoftのドキュメントです。Windows PowerShell 5.1向けの版は次のページです。実行ポリシーの種類と設定の範囲が説明されています。
about_Execution_Policies(Microsoft Learn)
Set-ExecutionPolicyで実行ポリシーをRemoteSignedに変える
RemoteSignedにすると、PCの中で作られたスクリプトは署名が無くても実行でき、インターネットからダウンロードしたスクリプトには署名が求められます。npxや、npm install -gで入れたtscなども.ps1のファイルから起動するので、同じエラーで止まります。実行ポリシーを変えておけば、それらもまとめて動くようになります。
-Scope CurrentUserは、今のユーザーにだけ設定するという指定です。管理者として開いていないPowerShellでも実行できます。省くとPC全体の設定を変えようとするので、管理者として開いたPowerShellでないと失敗します。
PowerShellで次のコマンドを実行します。
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser「実行ポリシーの変更」という確認が表示されたら、Yを入力してからEnterを押します。既定値は「N」なので、何も入力せずにEnterを押すと設定は変わりません。

変わったかどうかは、次のコマンドで確かめられます。
Get-ExecutionPolicy -ListCurrentUserの行がRemoteSignedになっていれば変更できています。設定はすぐに反映されます。同じウィンドウでnpm -vを実行し、バージョン番号が表示されれば完了です。

実行ポリシーをBypassやUnrestrictedに変える方法も見かけます。ただ、どちらもインターネットからダウンロードした署名の無いスクリプトまで実行できてしまう設定です。npmを動かす目的では、RemoteSignedで足ります。
実行ポリシーを元に戻したい場合は、次のコマンドを実行し、確認にYと入力してからEnterを押します。CurrentUserの行がUndefinedに戻ります。元に戻したあとにPowerShellでnpmを使う場合は、npm.cmdと打ちます。
Set-ExecutionPolicy Undefined -Scope CurrentUser実行ポリシーを変えられない場合はnpm.cmdと打つ
会社のPCなどでは、組織の設定(グループポリシー)で実行ポリシーが決められていて、自分では変えられないことがあります。この状態かどうかは、Get-ExecutionPolicy -Listの結果で確かめられます。MachinePolicyかUserPolicyの行がUndefined以外の場合は、変えられない状態です。

その場合は、npmの代わりにnpm.cmdと打ちます。拡張子まで打つとnpm.ps1を通らずにnpm.cmdが使われ、実行ポリシーに止められません。
npm.cmd -vnpm installなども、npm.cmd installのように打てば動きます。

ただし、npm install -gで入れたtscなども、tsc.cmdのように毎回.cmdを付けることになります。付けるのが面倒な場合は、コマンドプロンプトを使えば.cmdを付けなくても動きます。
npm -vは通るのにtscなどが認識されない場合は%AppData%\npmをPathに追加する
npm install -gで入れたコマンドは、npm本体とは別の%AppData%\npmというフォルダに置かれます。このフォルダがユーザー環境変数のPathに無いと、npm -vは通るのにtscなどは「認識されていません」になります。
PowerShellの場合は、tscなども.ps1のファイルが先に使われるので、④と同じ実行ポリシーのエラーになることもあります。
tscが認識されないときに%AppData%\npmをPathに追加する手順は、以下の記事で解説しています。
-

【Windows】TypeScriptのtscコマンドが実行できない原因と解決策を徹底解説
tscコマンドを実行すると以下のようなエラーが表示されることがあります。 'tsc' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。 このエラー ...
まとめ
- Node.jsをインストールした直後は、コマンドプロンプトやPowerShellを開き直す。VS Codeは本体を終了して起動し直す
- 開き直しても直らない場合は、
node -vとwhere.exe npmを実行する。nodeもnpmも見つからない場合は、インストール先(既定はC:\Program Files\nodejs\)にnpm.cmdがあるかを確かめる - npm.cmdが無い場合はNode.jsをインストールし、ある場合はシステム環境変数のPathにそのフォルダを追加する
- PowerShellで「npm.ps1 を読み込むことができません」と出る場合は、実行ポリシーを変える。
Set-ExecutionPolicy RemoteSigned -Scope CurrentUserを実行し、確認にYと入力する - 実行ポリシーを変えられない場合は、
npm.cmdと打つかコマンドプロンプトを使う









もみじ
現役フリーランスWebエンジニア。フロントエンド開発を中心に、Web制作、WordPress、業務効率化ツール開発、PHPを用いた機能改修に携わってきました。社内SEとして業務ツール開発や運用保守を担当した経験もあります。
実務や学習を通じて得た知見をもとに、初心者がつまずきやすいポイントや、現場で役立つ考え方をわかりやすく発信しています。
詳しいプロフィールはこちら