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 列が表示されます。 新しい 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
コマンドレットの 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を参照してください。
例 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 プロパティではなく、net アダプターの PSTypeNames プロパティを取得するには、コマンドは配列表記を使用して、コマンドレットが返す最初のネット アダプターを取得します。 net アダプターのコレクションの PSTypeNames プロパティではなく、net アダプターの PSTypeNames プロパティを取得するには、コマンドは配列表記を使用して、コマンドレットが返す最初のネット アダプターを取得します。
パラメーター
-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
値を使用します。Workflow
: すべてのワークフローを取得します。 ワークフローの詳細については、「Windows PowerShell ワークフローの概要」を参照してください。
これらの値は、フラグ ベースの列挙体として定義されます。 このパラメーターを使用して、複数の値を組み合わせて複数のフラグを設定できます。 値は、 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 |
-ListImported
このコマンドレットが現在のセッションのコマンドのみを取得することを示します。
PowerShell 3.0 以降では、既定では、 Get-Command
は、現在のセッションのコマンドを含むがこれに限定されない、インストールされているすべてのコマンドを取得します。 PowerShell 2.0 では、現在のセッションのコマンドのみが取得されます。
このパラメーターは Windows PowerShell 3.0 で導入されました。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-Module
モジュールの配列を指定します。 このコマンドレットは、指定されたモジュールまたはスナップインから取得されたコマンドを取得します。モジュールまたはスナップインの名前を入力します。
このパラメーターは文字列値を受け取りますが、このパラメーターの値は、 PSModuleInfo または PSSnapinInfo オブジェクト ( Get-Module
、 Get-PSSnapin
、 Import-PSSession
コマンドレットが返すオブジェクトなど) にすることもできます。
このパラメーターは、名前、 Module、またはエイリアス PSSnapin で参照できます。 選択したパラメーターの名前は、コマンドの出力には影響しません。
型: | 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 |
-Verb
コマンド動詞の配列を指定します。 このコマンドレットは、指定された動詞を含む名前を持つコマンドレット、関数、エイリアスを含むコマンドを取得します。 1 つまたは複数の動詞または動詞パターンを入力します。 ワイルドカード文字を使用できます。
型: | String[] |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | True |
入力
コマンド名をこのコマンドレットにパイプできます。
出力
このコマンドレットは、 CommandInfo クラスから派生したオブジェクトを返します。 返されるオブジェクトの種類は、 Get-Command
取得するコマンドの種類によって異なります。
エイリアスを表します。
アプリケーションとファイルを表します。
コマンドレットを表します。
関数とフィルターを表します。
ワークフローを表します。
メモ
Windows PowerShell には、 Get-Command
の次のエイリアスが含まれています。
gcm
同じ名前の複数のコマンドをセッションで使用できる場合、
Get-Command
はコマンド名を入力したときに実行されるコマンドを返します。 同じ名前のコマンドを実行順序で取得するには、 All パラメーターを使用します。 詳細については、「about_Command_Precedence」(コマンドの優先順位について) を参照してください。モジュールが自動的にインポートされる場合、効果は
Import-Module
コマンドレットの使用と同じです。 モジュールは、コマンド、型、および書式設定ファイルを追加し、セッションでスクリプトを実行できます。 モジュールの自動インポートを有効、無効、および構成するには、$PSModuleAutoLoadingPreference
基本設定変数を使用します。 詳細については、「 about_Preference_Variables」を参照してください。
関連リンク
PowerShell