次の方法で共有


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"}

ModuleNameModuleVersion は必須ですが、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

入力

String

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

出力

CommandInfo

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

AliasInfo

エイリアスを表します。

ApplicationInfo

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

CmdletInfo

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

FunctionInfo

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

WorkflowInfo

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

メモ

  • セッションで同じ名前の複数のコマンドを使用できる場合は、 Get-Command コマンド名を入力したときに実行されるコマンドを返します。 実行順序で一覧表示されている同じ名前のコマンドを取得するには、 All パラメーターを使用します。 詳細については、「about_Command_Precedence」(コマンドの優先順位について) を参照してください。
  • モジュールが自動的にインポートされる場合、その効果は コマンドレットの使用 Import-Module と同じです。 モジュールは、コマンド、型、および書式設定ファイルを追加し、セッションでスクリプトを実行できます。 モジュールの自動インポートを有効、無効、および構成するには、基本設定変数を $PSModuleAutoLoadingPreference 使用します。 詳細については、「 about_Preference_Variables」を参照してください。