PowerShellで実行されるコマンドを確認する|Get-Command -All

  • 公開:2026.11.14
  • 更新:2026.11.14
  • Windows

同じ名前のコマンドを入力したのに、別の端末や別のPowerShellでは違う動きになることがあります。実行ファイルの入れ直しやPATHの編集に進む前に、PowerShellがその名前を何として見つけているかを見ると、調べる場所を絞れます。

ここではGitのgitを例に、選ばれる候補、同名の候補、実行ファイルの保存先の順に確認します。コマンド名は、実際に調べたいものへ置き換えてください。Windows PowerShell 5.1とPowerShell 7で使える手順です。


最初に見つかるコマンドの種類を見る

Get-Command -Name git

CommandTypeがApplicationなら実行ファイル、Functionなら関数、Aliasなら別名です。同じ名前でも、どの種類が選ばれているかで調べる対象が変わります。名前が見つからないというエラーなら、入力した名前、インストール先、PATHに含まれる場所を順に見直す手掛かりになります。

同じ名前の候補を並べる

Get-Command -Name git -All | Select-Object CommandType, Name, Source

-Allを付けると、通常の検索では隠れる同名の候補も確認できます。別のPowerShellプロセスだけに検証用のgit関数を用意した例では、先頭がFunction、続く候補がApplicationになりました。実行ファイルが存在していても、関数が先に選ばれる状態を確認できました。

パスを指定しない名前の解決では、読み込まれたエイリアス、関数、コマンドレット、外部コマンドの順序が関係します。複数のGitが見つかった場合も、まず一覧を見てから、その名前を使っている環境やプロファイルを調べると整理しやすくなります。

実行ファイルの保存先を比較する

Get-Command -Name git -CommandType Application -All | Select-Object Name, Source

実行ファイルだけに絞ると、エイリアスや関数とは分けて保存先を比較できます。検証環境ではgit.exeが2か所にあり、そのうち1つはC:\Program Files\Git\cmd\git.exeでした。実際の一覧とパスは環境によって異なります。

Sourceの意味はコマンドの種類によって異なります。上のようにApplicationへ絞った結果では、実行ファイルのパスとして確認できます。一覧で関数のSourceが空でも、その関数が存在しないという意味にはなりません。

結果を見てから設定を調べる

関数やエイリアスが選ばれていれば、その名前を定義したプロファイルやモジュールが確認先になります。想定と違う実行ファイルなら、表示されたパスと普段使っているインストール先を比較できます。候補が複数あることだけを理由に、PATHやインストール済みソフトを削除する必要はありません。

SSHで別の実行ファイルや設定が使われる疑いがある場合は、WindowsのSSH configが反映されないときの確認手順も参考になります。

なお、名前を指定したGet-Commandは、対象に応じてモジュールを自動で読み込む場合があります。結果を比較するときは、問題が起きたPowerShellと同じセッションで確認すると、別の端末との差を追いやすくなります。

参考資料

このブラウザからの自分のアクセスを解析から除外できます。