こんなエラーです↓

Node.js をインストールした直後に PowerShell で
npx -v
を打つと、
npx : 用語 'npx' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。
というエラーに遭遇することがあります。今回はこの問題を実際に解決した手順をまとめます。
原因
- Node.js はインストール済みでも PATH が反映されていない
- または PowerShell の 実行ポリシー によって
npm.ps1/npx.ps1がブロックされる
この2点が主な原因です。
1. Node.js の存在を確認
まずは実体があるかチェックします。
Get-ChildItem "C:\Program Files\nodejs" -Name
ここで node.exe, npm.cmd, npx.cmd が見えればインストール自体は成功しています。
2. 一時的に PATH を通して確認
PATH が反映されていない場合は、セッションに直接追加します。
$env:Path = "C:\Program Files\nodejs;$env:Path"
& "C:\Program Files\nodejs\node.exe" -v
& "C:\Program Files\nodejs\npm.cmd" -v
& "C:\Program Files\nodejs\npx.cmd" -v
これでバージョン番号が表示されれば、Node.js は問題なく動作しています。
3. 実行ポリシーによるブロックを回避
npm.ps1 / npx.ps1 がブロックされる場合は、.cmd を直接呼び出せば回避できます。
npm.cmd -v
npx.cmd -v
もしくはユーザー範囲だけポリシーを緩める方法もあります。
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned -Force
4. PATH を恒久化する
一度通っても、新しい PowerShell ウィンドウでは再びエラーが出ることがあります。その場合は環境変数を恒久的に修正します。
$nodeDir = "C:\Program Files\nodejs"
$current = [Environment]::GetEnvironmentVariable('Path','User')
if ($current -notlike "*$nodeDir*") {
[Environment]::SetEnvironmentVariable('Path', ($current.TrimEnd(';') + ';' + $nodeDir), 'User')
}
PowerShell を閉じて開き直すと反映されます。
5. 正しい npx の使い方
最後に補足です。npx は パッケージ名 を渡すのが正しい使い方で、URLを直接指定しても動きません。
例:Gemini CLI を一時実行する場合
npx -y @google/gemini-cli
まとめ
- Node.js の実体があるか確認
- PATH を一時的に通して動作チェック
- 実行ポリシーのブロックは
.cmdで回避 - 環境変数を修正して恒久化
npxはパッケージ名で実行する
これで「npx が認識されません」エラーは解消できます。実際に筆者もこの流れで無事解決し、Gemini CLI を動かすことができました。
👉 同じエラーに悩んでいる方は、まずは C:\Program Files\nodejs を確認するところから始めてみてください。