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 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 $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 dir
CommandType Name ModuleName
----------- ---- ----------
Alias dir -> Get-ChildItem
通常はコマンドレットと関数で使用されますが、スクリプト、 Get-Command
関数、エイリアス、実行可能ファイルも取得します。
コマンドの出力は、エイリアスの Name プロパティの値の特別な表示を示しています。 この表示は、エイリアスとコマンドのフルネームを示しています。
例 11: メモ帳コマンドのすべてのインスタンスを取得する
この例では、 コマンドレットの All パラメーターを Get-Command
使用して、ローカル コンピューター上の "メモ帳" コマンドのすべてのインスタンスを表示します。
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 組み込みプロパティを使用して、オブジェクトを記述する型を取得します。 ネット アダプターの PSTypeNames プロパティを取得し、ネット アダプターのコレクションの PSTypeNames プロパティを除外するために、コマンドは、配列表記を使用して、コマンドレットが返す最初のネット アダプターを取得します。 ネット アダプターの 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
は、すべてのコマンドレット、関数、エイリアスを取得します。
このパラメーターの有効値は、次のとおりです。
- エイリアス。 すべての PowerShell コマンドのエイリアスを取得します。 詳細については、「about_Aliases」を参照してください。
- すべて。 すべてのコマンドの種類を取得します。 このパラメーター値は と同等です
Get-Command *
。 - アプリケーション をクリックします。 Path 環境変数 ($env: path ) にリストされているパス内の PowerShell 以外のファイル (.txt、.exe、.dll ファイルを含む) を取得します。 Path 環境変数の詳細については、「about_Environment_Variables」を参照してください。
- コマンドレット。 すべてのコマンドレットを取得します。
- ExternalScript。 Path環境変数 ($env:path) に列挙されるパス内のすべての .ps1 ファイルを取得します。
- フィルターと関数。 すべての PowerShell の高度でシンプルな関数とフィルターを取得します。
- スクリプティング。 すべてのスクリプト ブロックを取得します。 PowerShell スクリプト (.ps1 ファイル) を取得するには、ExternalScript 値を使用します。
- ワークフロー。 すべてのワークフローを取得します。 ワークフローの詳細については、「Introducing Windows PowerShell Workflow」を参照してください。
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
ModuleSpecification コンストラクター (ハッシュテーブル) の「解説」セクションで説明されている ModuleSpecification オブジェクトの形式で指定された名前を持つモジュールを指定します。 たとえば、 FullyQualifiedModule パラメーターは、次のいずれかの形式で指定されたモジュール名を受け取ります。
@{ModuleName = "modulename"; ModuleVersion = "version_number"}
@{ModuleName = "modulename"; ModuleVersion = "version_number"; Guid = "GUID"}
ModuleName と ModuleVersion は必須ですが、Guid は省略可能です。
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 オブジェクト (、Get-PSSnapin
、および Import-PSSession
コマンドレットが返すGet-Module
オブジェクトなど) を指定することもできます。
このパラメーターは、名前の Module によって、またはエイリアスの 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 |
入力
コマンド名をこのコマンドレットにパイプできます。
出力
このコマンドレットは、 CommandInfo クラスから派生したオブジェクトを返します。 返されるオブジェクトの型は、取得するコマンド Get-Command
の種類によって異なります。
エイリアスを表します。
アプリケーションとファイルを表します。
コマンドレットを表します。
関数とフィルターを表します。
ワークフローを表します。
メモ
- セッションで同じ名前の複数のコマンドを使用できる場合は、
Get-Command
コマンド名を入力したときに実行されるコマンドを返します。 実行順序で一覧表示されている同じ名前のコマンドを取得するには、 All パラメーターを使用します。 詳細については、「about_Command_Precedence」(コマンドの優先順位について) を参照してください。 - モジュールが自動的にインポートされる場合、その効果は コマンドレットの使用
Import-Module
と同じです。 モジュールは、コマンド、型、および書式設定ファイルを追加し、セッションでスクリプトを実行できます。 モジュールの自動インポートを有効、無効、および構成するには、基本設定変数を$PSModuleAutoLoadingPreference
使用します。 詳細については、「 about_Preference_Variables」を参照してください。