PowerShell でコマンドを実行した際に、次のエラーが表示されることがあります。
「コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください。」
本記事では、このエラーが表示される原因と対処法を、推測に頼らず、実際に確認できるポイントに絞って解説します。

このエラーメッセージの意味
このエラーは、PowerShell が入力された文字列を「実行可能な命令」として解釈できなかった場合に表示されます。
PowerShell が認識できる対象は、次のいずれかに該当するものです。
- PowerShell 標準のコマンドレット
- 定義済みの関数
- スクリプトファイル(.ps1 など)
- Windows 上で実行可能なプログラム
これらのどれにも該当しない場合、このエラーが表示されます。
原因1:コマンド名の入力ミス
最も多い原因は、コマンド名の入力ミスです。
次のようなケースでは、PowerShell はコマンドを正しく認識できません。
- スペルミスがある
- 全角文字や全角スペースが含まれている
- 日本語入力モードのまま入力している
見た目では正しく見えても、全角文字が混在しているとエラーになります。
補完機能(Tab キー)を使って入力し直すことで解決するケースも多くあります。
原因2:PowerShell に存在しないコマンドを実行している
PowerShell は、コマンドプロンプトや Linux のコマンドと仕様が異なります。
次のようなコマンドは、PowerShell では認識されません。
- ifconfig
- vi
- apt
- service
これらを PowerShell で実行すると、本エラーが表示されます。
同等の操作を行うには、PowerShell 用のコマンドレットに置き換える必要があります。
原因3:スクリプトファイルのパス指定が不足している
PowerShell では、カレントディレクトリにあるスクリプトでも、ファイル名だけでは実行できません。
例として、次の入力はエラーになります。
test.ps1
正しくは、次のようにパスを明示します。
.\test.ps1
これは PowerShell の仕様であり、セキュリティ対策として意図的に制限されています。
原因4:実行ポリシーによる制限
PowerShell には、スクリプトの実行を制御する「実行ポリシー」があります。
現在の設定は、次のコマンドで確認できます。
Get-ExecutionPolicy
Restricted や AllSigned が設定されている場合、スクリプトは実行できません。
管理者権限で PowerShell を起動し、必要に応じて次のように変更します。
Set-ExecutionPolicy RemoteSigned
変更後は、PowerShell を再起動してください。
原因5:PATH 環境変数が設定されていない
外部プログラムを PowerShell から実行する場合、実行ファイルの場所が PATH 環境変数に含まれていないと認識されません。
この場合、次のいずれかの対応が必要です。
- 実行ファイルをフルパスで指定する
- 実行ファイルのディレクトリを PATH に追加する
Python、Git、Node.js などは、この原因でエラーになるケースが非常に多く見られます。
原因6:PowerShell モジュールが読み込まれていない
一部のコマンドレットは、モジュールとして提供されています。
モジュールがインストールされていない、または読み込まれていない場合、そのコマンドは認識されません。
次のコマンドで、利用可能なモジュールを確認できます。
Get-Module -ListAvailable
存在する場合は、Import-Module で読み込むことで解決することがあります。
よくある質問(Q & A)
- 管理者として起動すれば必ず解決しますか?
-
必ずしも解決するとは限りません。入力ミスや PATH 未設定の場合は、管理者権限では解決しません。
- コマンドプロンプトでは実行できます
-
PowerShell とコマンドプロンプトは仕様が異なります。PowerShell 専用のコマンドが必要です。
- 昨日まで動いていたスクリプトが動かなくなりました
-
Windows Update やセキュリティ設定変更により、実行ポリシーが変更された可能性があります。
- どこから確認すればよいか分かりません
-
まずはパス指定とコマンド名の正確性を確認してください。多くのケースはこの2点で解決します。
まとめ
本エラーは、PowerShell の仕様を正しく理解していないと発生しやすいエラーです。
主な原因は次のとおりです。
- コマンド名の誤入力
- PowerShell 非対応コマンドの実行
- スクリプトのパス指定不足
- 実行ポリシーによる制限
- PATH 環境変数の未設定
- モジュール未読み込み
一つずつ確認すれば、原因は必ず特定できます。


