PowerShell:コマンドレット、関数、スクリプト ファイルとして認識されません。原因と対処法

  • URLをコピーしました!

PowerShell でコマンドを実行した際に、次のエラーが表示されることがあります。

「コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください。」

本記事では、このエラーが表示される原因と対処法を、推測に頼らず、実際に確認できるポイントに絞って解説します。

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

RestrictedAllSigned が設定されている場合、スクリプトは実行できません。

管理者権限で 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 環境変数の未設定
  • モジュール未読み込み

一つずつ確認すれば、原因は必ず特定できます。

よかったらシェアしてね!
  • URLをコピーしました!
0 0
Article Rating
申し込む
注目する
guest
0 コメント一覧
最も古い
最新 高評価
インラインフィードバック
すべてのコメントを見る
目次
0
あなたの考えが大好きです、コメントしてください。x