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[]>]
   [<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 プロパティが 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) パラメーターを省略したときに表示される構文を比較すると、証明書プロバイダーによって動的パラメーター 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: メモ帳 コマンドのすべてのインスタンスを取得する

この例では、コマンドレットの All パラメーターをGet-Command使用して、ローカル コンピューター上の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を参照してください

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

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

(Get-Command Get-Date).ModuleName

Microsoft.PowerShell.Utility

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

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

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

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

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

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

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

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 プロパティではなく 、ネット アダプターの PSTypeNames プロパティを取得するには、このコマンドは配列表記を使用して、コマンドレットが返す最初のネット アダプターを取得します。 net アダプターの コレクションの PSTypeNames プロパティではなく 、ネット アダプターの PSTypeNames プロパティを取得するには、このコマンドは配列表記を使用して、コマンドレットが返す最初のネット アダプターを取得します。

パラメーター

-All

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

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

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

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

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ArgumentList

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

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

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

Type:Object[]
Aliases:Args
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CommandType

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

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

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

  • All: すべてのコマンドの種類を取得します。 このパラメーター値は次のようになります Get-Command *

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

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

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

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

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

  • Workflow: すべてのワークフローを取得します。 ワークフローの詳細については、「Windows PowerShell ワークフローの概要」を参照してください。

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

Type:CommandTypes
Aliases:Type
Accepted values:Alias, Function, Filter, Cmdlet, ExternalScript, Application, Script, Workflow, Configuration, All
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-FullyQualifiedModule

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

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

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

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

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

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

  • また 、以下の 3 つのキーのうち少なくとも 1 つを指定する必要 もあります。

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

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

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

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

Type:ModuleSpecification[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ListImported

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

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

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

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Module

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

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

このパラメーターは、名前、モジュールまたはエイリアス PSSnapin で参照できます。 選択したパラメーターの名前は、コマンドの出力には影響しません。

Type:String[]
Aliases:PSSnapin
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:True

-Name

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

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

Type:String[]
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:True

-Noun

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

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:True

-ParameterName

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

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

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

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-ParameterType

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

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

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

Type:PSTypeName[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-ShowCommandInfo

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

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

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Syntax

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

  • エイリアス 標準名を取得します。
  • コマンドレット。 構文を取得します。
  • 関数とフィルター。 関数定義を取得します。
  • スクリプトとアプリケーションまたはファイル。 パスとファイル名を取得します。
Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-TotalCount

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

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Verb

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

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:True

入力

String

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

出力

CommandInfo

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

AliasInfo

エイリアスを表します。

ApplicationInfo

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

CmdletInfo

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

FunctionInfo

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

WorkflowInfo

ワークフローを表します。

メモ

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

  • gcm

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

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