コマンドレットおよびその他の Windows PowerShell コマンド要素に関する基本情報を取得します。

構文

Get-Command [[-Name] <string[]>] [-CommandType {<Alias> | <Function> | <Filter> | <Cmdlet> | <ExternalScript> | <Application> | <Script> | <All>}] [[-ArgumentList] <Object[]>] [-Module <string[]>] [-構文] [-TotalCount <int>] [<CommonParameters>]

Get-Command [-Noun <string[]>] [-Verb <string[]>] [[-ArgumentList] <Object[]>] [-Module <string[]>] [-構文] [-TotalCount <int>] [<CommonParameters>]

説明

Get-Command コマンドレットはセッション中に、コマンドレットおよびその他の Windows PowerShell コマンドの要素であるエイリアス、関数、フィルター、スクリプト、アプリケーションなどに関する基本情報を取得します。

Get-Command は、コマンドレット、関数、スクリプト、またはエイリアスのコードから直接データを取得します。これと異なり、Get-Help はヘルプ トピック ファイルから情報を取得します。

パラメーターが指定されていない場合、"Get-Command" は現在のセッションのすべてのコマンドレットおよび関数を取得します。"Get-Command *" は、すべての Windows PowerShell 要素および Path 環境変数 ($env:path) にある Windows PowerShell 以外のすべてのファイルを取得します。ファイルは、"Application" というコマンドの種類にグループ化されます。

Get-Command の Module パラメーターを使用して、Windows PowerShell スナップインの追加またはモジュールのインポートによってセッションに追加されたコマンドを検索できます。

パラメーター

-ArgumentList <Object[]>

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

特定のプロバイダーを指定してコマンドレットが使用されたときにコマンドレットに追加されたパラメーターを検出するには、"HKML\Software" や "cert:\my" などのように、ArgumentList の値をプロバイダー ドライブのパスに設定します。

必須

false

位置

2

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-CommandType <CommandTypes>

指定された種類のコマンドのみを取得します。"CommandType" またはそのエイリアスである "Type" を使用します。既定では、Get-Command はコマンドレットおよび関数を取得します。

有効な値は次のとおりです。

-- Alias: 現在のセッションのすべての Windows PowerShell エイリアス。

-- All: すべてのコマンド タイプ。"get-command *" と同等です。

-- Application: Path 環境変数 ($env:path) で指定されたパスにある、Windows-PowerShell 以外のすべてのファイル (.txt、.exe、.dll など)。

-- Cmdlet: 現在のセッションのコマンドレット。既定値は "Cmdlet" です。

-- ExternalScript: Path 環境変数 ($env:path) に示されているパスにあるすべての .ps1 ファイル。

-- Filter および Function: すべての Windows PowerShell 関数。

-- Script: 現在のセッションのスクリプト ブロック。

必須

false

位置

named

既定値

パイプライン入力を許可する

true (ByPropertyName)

ワイルドカード文字を許可する

false

-Module <string[]>

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

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

このパラメーターは文字列値を受け取りますが、Get-Module、Get-PSSnapin、Import-PSSession が返すオブジェクトなど、PSModuleInfo または PSSnapinInfo オブジェクトを指定することもできます。

必須

false

位置

named

既定値

なし

パイプライン入力を許可する

true (ByPropertyName)

ワイルドカード文字を許可する

false

-Name <string[]>

指定された名前のコマンドレットまたはコマンド要素のみの情報を取得します。<String> は、コマンドレットまたはコマンド要素の名前の全部または一部を表します。ワイルドカードを使用できます。

同じ名前のコマンドを実行順に一覧表示するには、ワイルドカード文字を使用せずにコマンド名を入力します。詳細については、「注」セクションを参照してください。

必須

false

位置

1

既定値

パイプライン入力を許可する

true (ByValue, ByPropertyName)

ワイルドカード文字を許可する

false

-Noun <string[]>

指定された名詞を名前の一部とするコマンドレットおよび関数を取得します。<String> は、"process" や "*item*" など 1 つまたは複数の名詞または名詞のパターンを表します。ワイルドカードを使用できます。

必須

false

位置

named

既定値

パイプライン入力を許可する

true (ByPropertyName)

ワイルドカード文字を許可する

false

-構文

コマンド要素に関するデータのうち指定されたもののみを取得します。

* エイリアスの場合は標準名を取得します。

* コマンドレットの場合は構文を取得します。

* 関数とフィルターの場合は関数の定義を取得します。

* スクリプトとアプリケーション (ファイル) の場合はパスとファイル名を取得します。

必須

false

位置

named

既定値

パイプライン入力を許可する

true (ByPropertyName)

ワイルドカード文字を許可する

false

-TotalCount <int>

指定された数のコマンド要素のみを取得します。このパラメーターを使用してコマンドの出力を制限できます。

必須

false

位置

named

既定値

パイプライン入力を許可する

true (ByPropertyName)

ワイルドカード文字を許可する

false

-Verb <string[]>

指定された動詞を名前の一部とするコマンドレットおよび関数の情報を取得します。<String> は、"remove" や "*et" など 1 つまたは複数の動詞または動詞のパターンを表します。ワイルドカードを使用できます。

必須

false

位置

named

既定値

パイプライン入力を許可する

true (ByPropertyName)

ワイルドカード文字を許可する

false

<CommonParameters>

このコマンドレットは、次の共通パラメーターをサポートします: -Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer、および -OutVariable。Ô”¼š¤Ë¤Ä¤¤¤Æ¤Ï¡¢次を参照してください: about_Commonparameters.

入力と出力

入力値の型は、コマンドレットへのパイプが可能なオブジェクトの型です。戻り値の型は、コマンドレットによって返されるオブジェクトの型です。

入力

System.String

パイプを使用して、指定された "Name"、"Command"、および "Verb" の名詞プロパティまたは文字列オブジェクトを Get-Command に渡すことができます。

出力

Object

返されるオブジェクトの型は、取得するコマンド要素の型によって異なります。たとえば、コマンドレットに対する Get-Command は CmdletInfo オブジェクトを取得しますが、DLL に対する Get-Command は ApplicationInfo オブジェクトを取得します。

"Get-Command" をパラメーターなしで実行した場合、Windows PowerShell コマンドレットおよび関数の情報が取得されます。取得する要素を限定するにはパラメーターを使用します。

XML ベースのヘルプ トピック ファイルの内容を表示する Get-Help と異なり、Get-Command は、システムのコマンドレット コードから直接コマンドレット情報を取得します。

既定では、Get-Command はコマンドをアルファベット順に返します。セッションに同じ名前のコマンドが複数含まれていると、Get-Command はコマンドを実行順に返します。リストの先頭のコマンドは、コマンド名を修飾子なしで入力したときに実行されるコマンドです。詳細については、「about_Command_Precedence」を参照してください。

例 1

C:\PS>get-command

説明
-----------
このコマンドは、Windows PowerShell のすべてのコマンドレットと関数についての情報を取得します。

既定では、コマンドの種類 ("Cmdlet"、"Function"、または "Filter")、コマンドレットまたは関数の名前、および構文または関数の定義の一覧が表示されます。






例 2

C:\PS>get-command -verb set | format-list

説明
-----------
このコマンドは、set 動詞を持つすべてのコマンドレットと関数についての情報を取得し、その一部を一覧表示します。

この一覧には、完全な構文など、表形式の表示では省略されるフィールドも含まれます。すべてのフィールド (オブジェクトのすべてのプロパティ) を表示するには、「get-command -verb set | format-list *」と入力します。






例 3

C:\PS>get-command -type cmdlet | sort-object noun | format-table -group noun

説明
-----------
このコマンドは、すべてのコマンドレットを取得し、コマンドレット名の名詞のアルファベット順に並べ替え、名詞を基にグループ化して
表示します。この表示方法は、特定のタスクを行うコマンドレットを探し出す場合に役立ちます。

既定では、Get-Command は、システムで検出される順に項目を表示します。これは、実行コマンドがあいまいな場合に選択される実行順序でもあります。






例 4

C:\PS>get-command -module Microsoft.PowerShell.Security, TestModule

説明
-----------
このコマンドは、Microsoft.PowerShell.Security スナップインおよび TestModule モジュールのコマンドを取得します。

Module パラメーターは、モジュールのインポートまたは Windows PowerShell スナップインの追加によって追加されたコマンドを取得します。






例 5

C:\PS>get-command get-childitem -args cert: -syntax

説明
-----------
このコマンドは、Get-ChildItem が Windows PowerShell 証明書プロバイダーと一緒に使用された場合に、Get-ChildItem コマンドレットについての情報を取得します。

この出力に表示されている構文と Args (ArgumentList) パラメーターを省略したときに表示される構文を比較すると、証明書プロバイダーによって CodeSigningCert パラメーターが Get-ChildItem コマンドレットに動的に追加されていることがわかります。






例 6

C:\PS>(get-command get-childitem -ArgumentList cert:).parametersets[0].parameters | where-object { $_.IsDynamic }

説明
-----------
このコマンドは、Windows PowerShell 証明書プロバイダーと一緒に使用された場合に Get-ChildItem に動的に追加されるパラメーターのみを取得します。これは、前の例で使用した方法に代わる、別の方法です。

このコマンドでは、"get-command get-childitem -ArgumentList cert:" が最初に処理されます。証明書プロバイダーと一緒に使用された場合に、Get-ChildItem コマンドレットについての情報を Get-Command に要求します。".parametersets[0]" によって "get-childitem -argumentList cert:" の最初のパラメーター セット (セット 0) が選択され、".parameters" によってそのパラメーター セット内のパラメーターが選択されます。選択されたパラメーターは Where-Object コマンドレットにパイプされ、IsDynamic プロパティを使用して各パラメーター ("$_.") がテストされます。コマンド内のオブジェクトのプロパティを見つけるには、Get-Member を使用します。






例 7

C:\PS>get-command *

説明
-----------
このコマンドは、現在のコンソールの Windows PowerShell コマンドレット、関数、フィルター、スクリプト、およびエイリアスの情報を取得します。

Path 環境変数 ($env:path) のパスにあるすべてのファイルの情報も取得します。ApplicationInfo オブジェクト (System.Management.Automation.ApplicationInfo) を各ファイルに返しますが、FileInfo オブジェクト (System.IO.FileInfo) は返しません。






例 8

C:\PS>get-command | where-object {$_.definition -like "*first*"}

CommandType     Name                        Definition
-----------     ----                        ---------
Cmdlet          Select-Object               Select-Object [[-Property]

説明
-----------
このコマンドは、いずれかのパラメーターの名前に基づいてコマンドレットまたは関数を検出します。このコマンドを使用して、いずれかのパラメーターの名前しか思い出すことができないときに、コマンドレットまたは関数を識別できます。

この例では、コマンドレットまたは関数のいずれかに、リストの先頭から n 個のオブジェクトを取得する First パラメーターがあることを覚えていても、それがどのコマンドレットか思い出せない場合を想定しています。

このコマンドは、Get-Command コマンドレットを使用して、セッションの各コマンドレットおよび関数を表す CmdletInfo オブジェクトを取得します。CmdletInfo オブジェクトには、コマンドレットまたは関数の構文がパラメーターと共に含まれている Definition プロパティがあります。

このコマンドは、パイプライン演算子 (|) を使用して CmdletInfo オブジェクトを Where-Object コマンドレットに渡します。コマンドレットは、各オブジェクト ($_) の定義 (構文) で "first" を含む値を検索します。

結果には、First パラメーターが Select-Object コマンドレットに属することが示されています。






例 9

C:\PS>get-command dir | format-list

Name              : dir
CommandType       : Alias
Definition        : Get-ChildItem
ReferencedCommand : Get-ChildItem
ResolvedCommand   : Get-ChildItem

説明
-----------
この例は、Get-Command コマンドレットをエイリアスと共に使用する方法を示しています。Get-Command は、通常はコマンドレットに対して使用されますが、スクリプト、関数、エイリアス、および実行可能ファイルのコードの情報も表示します。

このコマンドは、現在のコンソールの "dir" エイリアスを表示します。コマンドは、結果を Format-List コマンドレットにパイプします。






例 10

C:\PS>get-command notepad

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

説明
-----------
この例は、Get-Command を使用して、Windows PowerShell が同じ名前の複数のコマンドにアクセスできる場合に実行するコマンドを確認する方法を示しています。ワイルドカード文字を使用せずに Name パラメーターを使用すると、Get-Command は、その名前のコマンドを優先的に実行される順に一覧表示します。

このコマンドは、完全修飾パスを使用せずに「Notepad」と入力した場合にどの Notepad プログラムが Windows PowerShell によって実行されるかを示します。このコマンドは、ワイルドカード文字を使用せずに Name パラメーターを使用します。

サンプル出力は、現在のコンソールの Notepad コマンドを示しています。これは、Windows PowerShell が C:\Windows\System32 ディレクトリの Notepad.exe のインスタンスを実行することを示します。






例 11

C:\PS>(get-command get-date).pssnapin

C:\PS> (get-command remove-gpo).module

説明
-----------
これらのコマンドは、特定のコマンドレットが生成された元のスナップインまたはモジュールを検索する方法を示しています。

最初のコマンドは、CmdletInfo オブジェクトの PSSnapin プロパティを使用して、Get-Date コマンドレットを追加したスナップインを検索します。

2 番目のコマンドは、CmdletInfo オブジェクトの Module プロパティを使用して、Remove-GPO コマンドレットを追加したモジュールを検索します。






関連項目




目次