Get-Command

すべてのコマンドを取得します。

構文

Get-Command
   [-Verb <String[]>]
   [-Noun <String[]>]
   [-Module <String[]>]
   [-FullyQualifiedModule <ModuleSpecification[]>]
   [-TotalCount <Int32>]
   [-Syntax]
   [-ShowCommandInfo]
   [[-ArgumentList] <Object[]>]
   [-All]
   [-ListImported]
   [-ParameterName <String[]>]
   [-ParameterType <PSTypeName[]>]
   [<CommonParameters>]
Get-Command
   [[-Name] <String[]>]
   [-Module <String[]>]
   [-FullyQualifiedModule <ModuleSpecification[]>]
   [-CommandType <CommandTypes>]
   [-TotalCount <Int32>]
   [-Syntax]
   [-ShowCommandInfo]
   [[-ArgumentList] <Object[]>]
   [-All]
   [-ListImported]
   [-ParameterName <String[]>]
   [-ParameterType <PSTypeName[]>]
   [-UseFuzzyMatching]
   [-FuzzyMinimumDistance <UInt32>]
   [-UseAbbreviationExpansion]
   [<CommonParameters>]

説明

Get-Command コマンドレットは、コマンドレット、エイリアス、関数、フィルター、スクリプト、アプリケーションなど、コンピューターにインストールされているすべてのコマンドを取得します。 Get-Command は、他のセッションからインポートされた PowerShell モジュールとコマンドからコマンドを取得します。 現在のセッションにインポートされたコマンドのみを取得するには、 ListImported パラメーターを使用します。

パラメーターがない場合、 Get-Command はコンピューターにインストールされているすべてのコマンドレット、関数、エイリアスを取得します。 Get-Command * は、Path 環境変数 ($env:Path) 内のすべての PowerShell 以外のファイルを含む、すべての種類のコマンドを取得します。このファイルは Application コマンドの種類で一覧表示されます。

Get-Command コマンドの正確な名前を使用する場合は、ワイルドカード文字を使用せずに、コマンドを含むモジュールが自動的にインポートされ、コマンドをすぐに使用できるようになります。 モジュールの自動インポートを有効、無効、および構成するには、 $PSModuleAutoLoadingPreference 基本設定変数を使用します。 詳細については、「 about_Preference_Variables」を参照してください。

Get-Command は、ヘルプ トピックから情報を取得する Get-Help とは異なり、コマンド コードからデータを直接取得します。

Windows PowerShell 5.0 以降、 Get-Command コマンドレットの結果には、既定で Version 列が表示されます。 新しい Version プロパティが CommandInfo クラスに追加されました。

例 1: コマンドレット、関数、エイリアスを取得する

このコマンドは、コンピューターにインストールされている PowerShell コマンドレット、関数、およびエイリアスを取得します。

Get-Command

例 2: 現在のセッションでコマンドを取得する

このコマンドは、 ListImported パラメーターを使用して、現在のセッションのコマンドのみを取得します。

Get-Command -ListImported

例 3: コマンドレットを取得して順番に表示する

このコマンドは、すべてのコマンドレットを取得し、それらをコマンドレット名内の名詞によるアルファベット順で並べ替え、その後、名詞に基づくグループとして表示します。 この表示は、タスクのコマンドレットの検索に役立ちます。

Get-Command -Type Cmdlet | Sort-Object -Property Noun | Format-Table -GroupBy Noun

例 4: モジュール内のコマンドを取得する

このコマンドでは、 Module パラメーターを使用して、Microsoft.PowerShell.Security および Microsoft.PowerShell.Utility モジュールのコマンドを取得します。

Get-Command -Module Microsoft.PowerShell.Security, Microsoft.PowerShell.Utility

例 5: コマンドレットに関する情報を取得する

このコマンドは、 Get-AppLockerPolicy コマンドレットに関する情報を取得します。 また、 AppLocker モジュールもインポートされ、 AppLocker モジュール内のすべてのコマンドが現在のセッションに追加されます。

Get-Command Get-AppLockerPolicy

モジュールが自動的にインポートされる場合、その効果は Import-Module コマンドレットの使用と同じです。 モジュールは、コマンド、型、および書式設定ファイルを追加し、セッションでスクリプトを実行できます。 モジュールの自動インポートを有効、無効、および構成するには、 $PSModuleAutoLoadingPreference 基本設定変数を使用します。 詳細については、「 about_Preference_Variables」を参照してください。

例 6: コマンドレットの構文を取得する

このコマンドでは、 ArgumentList パラメーターと Syntax パラメーターを使用して、Cert: ドライブで使用される Get-ChildItem コマンドレットの構文を取得します。 Cert: ドライブは、証明書プロバイダーがセッションに追加する PowerShell ドライブです。

Get-Command  -Name Get-Childitem -Args Cert: -Syntax

出力に表示される構文を、Args (ArgumentList) パラメーターを省略したときに表示される構文と比較すると、Certificate プロバイダーcodeSigningCert という動的 パラメーターがGet-ChildItemコマンドレットに追加されます。

証明書プロバイダーの詳細については、「 about_Certificate_Provider」を参照してください。

例 7: 動的パラメーターを取得する

この例のコマンドでは、 Get-DynamicParameters 関数を使用して、証明書プロバイダーが Cert: ドライブで使用するときに Get-ChildItem コマンドレットに追加する動的パラメーターを取得します。

function Get-DynamicParameters
{
    param ($Cmdlet, $PSDrive)
    (Get-Command -Name $Cmdlet -ArgumentList $PSDrive).ParameterSets |
      ForEach-Object {$_.Parameters} |
        Where-Object { $_.IsDynamic } |
          Select-Object -Property Name -Unique
}
Get-DynamicParameters -Cmdlet Get-ChildItem -PSDrive Cert:

Name
----
CodeSigningCert

この例の Get-DynamicParameters 関数は、コマンドレットの動的パラメーターを取得します。 これは、前の例で使用されたメソッドの代替です。 動的パラメーターは、別のコマンドレットまたはプロバイダーによって、コマンドレットに追加できます。

例 8: すべての種類のすべてのコマンドを取得する

このコマンドは、 Path 環境変数 ($env:path) のパス内の実行可能ファイルを含め、ローカル コンピューター上のすべての種類のすべてのコマンドを取得します。

Get-Command *

FileInfo オブジェクト (System.IO.FileInfo) ではなく、各ファイルの ApplicationInfo オブジェクト (System.Management.Automation.ApplicationInfo) を返します。

例 9: パラメーター名と型を使用してコマンドレットを取得する

このコマンドは、名前にAuthが含まれており、その型がauthenticationMechanismパラメーターを持つコマンドレットを取得します。

Get-Command -ParameterName *Auth* -ParameterType AuthenticationMechanism

ユーザーの認証に使用されるメソッドを指定するためのコマンドレットを検索するために、次のようなコマンドを使用できます。

ParameterType パラメーターは、AuthenticationMechanism 値を受け取るパラメーターと、AuthenticationLevel パラメーターを受け取るパラメーターを区別します。これらのパラメーターの名前が似ている場合でも同様です。

例 10: エイリアスを取得する

この例では、エイリアスで Get-Command コマンドレットを使用する方法を示します。

Get-Command -Name dir

CommandType     Name                                               ModuleName
-----------     ----                                               ----------
Alias           dir -> Get-ChildItem

通常はコマンドレットと関数で使用されますが、 Get-Command はスクリプト、関数、エイリアス、実行可能ファイルも取得します。

コマンドの出力には、エイリアスの Name プロパティ値の特別なビューが表示されます。 この表示は、エイリアスとコマンドのフルネームを示しています。

例 11: エイリアスから構文を取得する

この例では、エイリアスの標準名と共に構文を取得する方法を示します。

コマンドの出力には、標準名と構文が続くラベル付きのエイリアスが表示されます。

Get-Command -Name dir -Syntax

dir (alias) -> Get-ChildItem

dir [[-Path] <string[]>] [[-Filter] <string>] [-Include <string[]>] [-Exclude <string[]>] [-Recurse] [-Depth <uint>] [-Force] [-Name] [-Attributes <FlagsExpression[FileAttributes]>] [-FollowSymlink] [-Directory] [-File] [-Hidden] [-ReadOnly] [-System] [<CommonParameters>]

dir [[-Filter] <string>] -LiteralPath <string[]> [-Include <string[]>] [-Exclude <string[]>] [-Recurse] [-Depth <uint>] [-Force] [-Name] [-Attributes <FlagsExpression[FileAttributes]>] [-FollowSymlink] [-Directory] [-File] [-Hidden] [-ReadOnly] [-System] [<CommonParameters>]

例 12: メモ帳コマンドのすべてのインスタンスを取得する

この例では、Get-Command コマンドレットの All パラメーターを使用して、ローカル コンピューター上の Notepad コマンドのすべてのインスタンスを表示します。

Get-Command Notepad -All | Format-Table CommandType, Name, Definition

CommandType     Name           Definition
-----------     ----           ----------
Application     notepad.exe    C:\WINDOWS\system32\notepad.exe
Application     NOTEPAD.EXE    C:\WINDOWS\NOTEPAD.EXE

All パラメーターは、セッション内に同じ名前のコマンドが複数ある場合に便利です。

Windows PowerShell 3.0 以降では、セッションに同じ名前のコマンドが複数含まれている場合、 Get-Command はコマンド名を入力したときに実行されるコマンドのみを取得します。 All パラメーターを使用すると、Get-Commandは、指定した名前のすべてのコマンドを取得し、実行の優先順位で返します。 一覧で最初のコマンドではなく、他のコマンドを実行するには、コマンドへの完全修飾パスを入力します。

コマンドの優先順位の詳細については、 about_Command_Precedenceを参照してください。

例 13: コマンドレットを含むモジュールの名前を取得する

このコマンドは、 Get-Date コマンドレットが発生したモジュールの名前を取得します。 このコマンドでは、すべてのコマンドの ModuleName プロパティを使用します。

(Get-Command Get-Date).ModuleName

Microsoft.PowerShell.Utility

このコマンド形式は、セッションにインポートされていない場合でも、PowerShell モジュールのコマンドで機能します。

例 14: 出力の種類を持つコマンドレットと関数を取得する

Get-Command -Type Cmdlet | Where-Object OutputType | Format-List -Property Name, OutputType

このコマンドは、出力の種類とオブジェクトの種類を返す、コマンドレットと関数を取得します。

コマンドの最初の部分は、すべてのコマンドレットを取得します。 パイプライン演算子 (|) は、 Where-Object コマンドレットにコマンドレットを送信し、 OutputType プロパティが設定されているもののみを選択します。 別のパイプライン演算子は、選択したコマンドレット オブジェクトを Format-List コマンドレットに送信し、各コマンドレットの名前と出力の種類を一覧に表示します。

CommandInfo オブジェクトの OutputType プロパティには、コマンドレット コードでコマンドレットの OutputType 属性が定義されている場合にのみ null 以外の値があります。

例 15: 特定のオブジェクトの種類を入力として受け取るコマンドレットを取得する

Get-Command -ParameterType (((Get-NetAdapter)[0]).PSTypeNames)

CommandType     Name                                               ModuleName
-----------     ----                                               ----------
Function        Disable-NetAdapter                                 NetAdapter
Function        Enable-NetAdapter                                  NetAdapter
Function        Rename-NetAdapter                                  NetAdapter
Function        Restart-NetAdapter                                 NetAdapter
Function        Set-NetAdapter                                     NetAdapter

このコマンドは、ネット アダプター オブジェクトを入力として受け取るコマンドレットを検索します。 このコマンド形式を使用して、いずれかのコマンドによって返されるオブジェクトの種類を受け取るコマンドレットを検索できます。

このコマンドは、すべてのオブジェクトの PSTypeNames 組み込みプロパティを使用します。このプロパティは、オブジェクトを記述する型を取得します。 net アダプターのコレクションの PSTypeNames プロパティではなく、net アダプターの PSTypeNames プロパティを取得するには、コマンドは配列表記を使用して、コマンドレットが返す最初のネット アダプターを取得します。

例 16: あいまい一致を使用してコマンドを取得する

この例では、コマンドの名前に意図的に "get-commnd" という入力ミスがあります。 コマンドレットは、 -UseFuzzyMatching スイッチを使用して、最適な一致が Get-Command され、その後にシステム上の同様の一致する他のネイティブ コマンドが続いていると判断しました。

Get-Command get-commnd -UseFuzzyMatching

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Cmdlet          Get-Command                                        6.2.0.0    Microsoft.PowerShell.Core
Application     getconf                                            0.0.0.0    /usr/bin/getconf
Application     command                                            0.0.0.0    /usr/bin/command

パラメーター

-All

このコマンドレットが、同じ名前の同じ型のコマンドを含むすべてのコマンドを取得することを示します。 既定では、 Get-Command はコマンド名を入力したときに実行されるコマンドのみを取得します。

複数のコマンドが同じ名前の場合に実行するコマンドを選択するために PowerShell が使用する方法の詳細については、 about_Command_Precedenceを参照してください。 モジュール修飾コマンド名と、名前の競合が原因で既定で実行されないコマンドの実行については、 about_Modulesを参照してください。

このパラメーターは Windows PowerShell 3.0 で導入されました。

Windows PowerShell 2.0 では、 Get-Command は既定ですべてのコマンドを取得します。

型:SwitchParameter
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-ArgumentList

引数の配列を指定します。 このコマンドレットは、指定されたパラメーター ("arguments") と共に使用されるコマンドレットまたは関数に関する情報を取得します。 ArgumentList のエイリアスは Args です。

他の特定のパラメーターが使用されている場合にのみ使用できる動的パラメーターを検出するには、 ArgumentList の値を動的パラメーターをトリガーするパラメーターに設定します。

プロバイダーがコマンドレットに追加する動的パラメーターを検出するには、 ArgumentList パラメーターの値を、WSMan:、HKLM:、Cert: などのプロバイダー ドライブ内のパスに設定します。 コマンドが PowerShell プロバイダー コマンドレットの場合は、各コマンドに 1 つのパスのみを入力します。 プロバイダー コマンドレットは、最初のパスの動的パラメーター ArgumentListの値のみを返します。 プロバイダー コマンドレットの詳細については、「 about_Providers」を参照してください。

型:Object[]
Aliases:Args
配置:1
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-CommandType

このコマンドレットが取得するコマンドの種類を指定します。 1 つまたは複数のコマンドの種類を入力します。 CommandType またはそのエイリアスである Type を使用します。 既定では、 Get-Command はすべてのコマンドレット、関数、エイリアスを取得します。

このパラメーターの有効値は、次のとおりです。

  • Alias: すべての PowerShell コマンドのエイリアスを取得します。 詳細については、「about_Aliases」を参照してください。

  • All: すべてのコマンドの種類を取得します。 このパラメーター値は、 Get-Command *と同等です。

  • Application: .txt.exe.dll ファイルなど、Path環境変数 ($env:path) にリストされているパス内の PowerShell 以外のファイルを取得します。 Path環境変数の詳細については、about_Environment_Variablesを参照してください。

  • Cmdlet: すべてのコマンドレットを取得します。

  • ExternalScript: Path 環境変数 ($env:path) に一覧表示されているパス内のすべての.ps1 ファイルを取得します。

  • Filter および Function: すべての PowerShell の高度でシンプルな関数とフィルターを取得します。

  • Script: すべてのスクリプト ブロックを取得します。 PowerShell スクリプト (.ps1 files) を取得するには、 ExternalScript 値を使用します。

これらの値は、フラグ ベースの列挙体として定義されます。 このパラメーターを使用して、複数の値を組み合わせて複数のフラグを設定できます。 値は、 CommandType パラメーターに値の配列として、またはそれらの値のコンマ区切り文字列として渡すことができます。 コマンドレットは、バイナリ OR 操作を使用して値を結合します。 配列として値を渡すことは最も簡単なオプションであり、値にタブ補完を使用することもできます。

型:CommandTypes
Aliases:Type
指定可能な値:Alias, Function, Filter, Cmdlet, ExternalScript, Application, Script, Workflow, Configuration, All
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-FullyQualifiedModule

値には、モジュール名、完全なモジュール仕様、またはモジュール ファイルへのパスを指定できます。

値がパスの場合、パスは完全修飾または相対パスにすることができます。 相対パスは、using ステートメントを含むスクリプトを基準にして解決されます。

値が名前またはモジュールの指定である場合、PowerShell は指定されたモジュールの PSModulePath を検索します。

モジュール仕様は、次のキーを持つハッシュテーブルです。

  • ModuleName - 必須 モジュール名を指定します。

  • GUID - 省略可能 モジュールの GUID を指定します。

  • また、以下の 3 つのキーのうち少なくとも 1 つを指定Required です。

    • ModuleVersion - モジュールの最小許容バージョンを指定します。

    • MaximumVersion - モジュールの許容される最大バージョンを指定します。

    • RequiredVersion - モジュールの正確で必要なバージョンを指定します。 これは、他のバージョン キーでは使用できません。

Module パラメーターと同じコマンドで FullyQualifiedModule パラメーターを指定することはできません。 2 つのパラメーターは相互に排他的です。

型:ModuleSpecification[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-FuzzyMinimumDistance

このパラメーターを使用すると、あいまい結果のフィルター処理の精度を増減できます。 距離は、元の値からの一致するステップの数を示す Damerau Levenshtein Distance アルゴリズムを使用して計算されます。 より低い距離はより正確です。 0 の距離は完全一致です。

型:UInt32
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ListImported

このコマンドレットが現在のセッションのコマンドのみを取得することを示します。

PowerShell 3.0 以降では、既定では、 Get-Command は、現在のセッションのコマンドを含むがこれに限定されない、インストールされているすべてのコマンドを取得します。 PowerShell 2.0 では、現在のセッションのコマンドのみが取得されます。

このパラメーターは Windows PowerShell 3.0 で導入されました。

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-Module

モジュールの配列を指定します。 このコマンドレットは、指定されたモジュールから取得されたコマンドを取得します。 モジュールまたはモジュール オブジェクトの名前を入力します。

このパラメーターは文字列値を受け取りますが、このパラメーターの値は、Get-ModuleおよびImport-PSSessionコマンドレットが返すオブジェクトなど、PSModuleInfo オブジェクトにすることもできます。

型:String[]
Aliases:PSSnapin
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:True

-Name

名前の配列を指定します。 このコマンドレットは、指定した名前を持つコマンドのみを取得します。 名前または名前パターンを入力します。 ワイルドカード文字を使用できます。

同じ名前のコマンドを取得するには、 All パラメーターを使用します。 既定では、2 つのコマンドの名前が同じである場合、 Get-Command はコマンド名を入力したときに実行されるコマンドを取得します。

型:String[]
配置:0
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:True

-Noun

コマンド名詞の配列を指定します。 このコマンドレットは、指定した名詞を含む名前を持つコマンドレット、関数、エイリアスを含むコマンドを取得します。 1 つまたは複数の名詞または名詞のパターンを入力します。 ワイルドカード文字を使用できます。

型:String[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:True

-ParameterName

パラメーター名の配列を指定します。 このコマンドレットは、指定されたパラメーターを持つセッション内のコマンドを取得します。 パラメーター名またはパラメーター エイリアスを入力します。 ワイルドカード文字がサポートされています。

ParameterName パラメーターと ParameterType パラメーターは、現在のセッション内のコマンドのみを検索します。

このパラメーターは Windows PowerShell 3.0 で導入されました。

型:String[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:True

-ParameterType

パラメーター名の配列を指定します。 このコマンドレットは、指定した型のパラメーターを持つセッション内のコマンドを取得します。 パラメーターの型のフルネームまたは部分的な名前を入力します。 ワイルドカード文字がサポートされています。

ParameterName パラメーターと ParameterType パラメーターは、現在のセッション内のコマンドのみを検索します。

このパラメーターは Windows PowerShell 3.0 で導入されました。

型:PSTypeName[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:True

-ShowCommandInfo

このコマンドレットがコマンド情報を表示することを示します。

このパラメーターは、Windows PowerShell 5.0 で導入されました。

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Syntax

このコマンドレットは、コマンドに関する次の指定されたデータのみを取得することを示します。

  • エイリアス。 標準名を取得します。
  • コマンドレット。 構文を取得します。
  • 関数とフィルター。 関数定義を取得します。
  • スクリプトとアプリケーションまたはファイル。 パスとファイル名を取得します。
型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-TotalCount

取得するコマンドの数を指定します。 このパラメーターを使用すると、コマンドの出力を制限できます。

型:Int32
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-UseAbbreviationExpansion

コマンド内の文字の一致を使用して、コマンド内の大文字で検索することを示します。 たとえば、検索する各文字が結果の大文字と一致するため、 i-psdfImport-PowerShellDataFile と一致します。 この種類の一致を使用すると、ワイルドカードは一致しません。

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-UseFuzzyMatching

コマンドを検索するときにあいまい一致アルゴリズムを使用して示します。 出力の順序は、最も近い一致から一致する可能性が最も低いものまでです。 ワイルドカードは、これらのワイルドカード文字を含む可能性のあるコマンドとの照合を試みるので、あいまい一致では使用しないでください。

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Verb

コマンド動詞の配列を指定します。 このコマンドレットは、指定された動詞を含む名前を持つコマンドレット、関数、エイリアスを含むコマンドを取得します。 1 つまたは複数の動詞または動詞パターンを入力します。 ワイルドカード文字を使用できます。

型:String[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:True

入力

String

コマンド名をこのコマンドレットにパイプできます。

出力

CommandInfo

このコマンドレットは、 CommandInfo クラスから派生したオブジェクトを返します。 返されるオブジェクトの種類は、 Get-Command 取得するコマンドの種類によって異なります。

AliasInfo

エイリアスを表します。

ApplicationInfo

アプリケーションとファイルを表します。

CmdletInfo

コマンドレットを表します。

FunctionInfo

関数とフィルターを表します。

メモ

PowerShell には、 Get-Commandの次のエイリアスが含まれています。

  • すべてのプラットフォーム:

    • gcm
  • 同じ名前の複数のコマンドをセッションで使用できる場合、 Get-Command はコマンド名を入力したときに実行されるコマンドを返します。 同じ名前のコマンドを実行順序で取得するには、 All パラメーターを使用します。 詳細については、「about_Command_Precedence」(コマンドの優先順位について) を参照してください。

  • モジュールが自動的にインポートされる場合、効果は Import-Module コマンドレットの使用と同じです。 モジュールは、コマンド、型、および書式設定ファイルを追加し、セッションでスクリプトを実行できます。 モジュールの自動インポートを有効、無効、および構成するには、 $PSModuleAutoLoadingPreference 基本設定変数を使用します。 詳細については、「 about_Preference_Variables」を参照してください。