オブジェクトのプロパティとメソッドを取得します。

構文

Get-Member [[-Name] <string[]>] [-Force] [-InputObject <psobject>] [-MemberType {<AliasProperty> | <CodeProperty> | <Property> | <NoteProperty> | <ScriptProperty> | <Properties> | <PropertySet> | <Method> | <CodeMethod> | <ScriptMethod> | <Methods> | <ParameterizedProperty> | <MemberSet> | <Event> | <All>}] [-Static] [-View {<Extended> | <Adapted> | <Base> | <All>}] [<CommonParameters>]

説明

Get-Member コマンドレットは、オブジェクトの "メンバー" (プロパティとメソッド) を取得します。

オブジェクトを指定するには、InputObject パラメーターを使用するか、Get-Member に対してオブジェクトをパイプ処理します。静的メンバー (インスタンスではなく、クラスのメンバー) に関する情報を取得するには、Static パラメーターを使用します。NoteProperties などの特定の型のメンバーのみを取得するには、MemberType パラメーターを使用します。

パラメーター

-Force

組み込みメンバー (PSBase、PSAdapted、PSObject、PSTypeNames) と、コンパイラで生成された get_ メソッドおよび set_ メソッドを表示に追加します。既定では、Get-Member は、"Base" と "Adapted" 以外のすべてのビューでこれらのプロパティを取得しますが、表示しません。

次に、Force パラメーターの使用時に追加されるプロパティについて説明します。

-- PSBase: 拡張またはアダプターの適用を行わない .NET Framework オブジェクトの元のプロパティ。これらは、オブジェクト クラスに定義されたプロパティで、MSDN に示されています。

-- PSAdapted: Windows PowerShell 拡張型システムで定義されているプロパティとメソッド。

-- PSExtended: Types.ps1xml ファイルで追加された、または Add-Member コマンドレットを使用して追加されたプロパティとメソッド。

-- PSObject: 基本オブジェクトを Windows PowerShell PSObject オブジェクトに変換するアダプター。

-- PSTypeNames: オブジェクトを特定性の順に記述するオブジェクト型の一覧。オブジェクトを書式設定する場合、Windows PowerShell は、Windows PowerShell のインストール ディレクトリ ($pshome) の Format.ps1xml ファイルにある型を検索します。検出した最初の型の書式設定の定義を使用します。

必須

false

位置

named

既定値

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

false

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

false

-InputObject <psobject>

取得するメンバーを含んでいるオブジェクトを指定します。

InputObject パラメーターを使用することは、Get-Member に対してオブジェクトをパイプ処理することとは異なります。相違点は次のとおりです。

-- Get-Member に対してオブジェクトのコレクションをパイプ処理すると、Get-Member は、整数の配列にある整数のプロパティなど、コレクションの個々のオブジェクトのメンバーを取得します。

-- InputObject を使用してオブジェクトのコレクションを送ると、Get-Member は、整数の配列にある配列のプロパティなどのコレクションのメンバーを取得します。

必須

false

位置

named

既定値

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

true (ByValue)

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

false

-MemberType <PSMemberTypes>

指定されたメンバー型を持つメンバーのみを取得します。既定値は All です。

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

-- AliasProperty: 既存のプロパティの新しい名前を定義するプロパティ。

-- CodeMethod: .NET Framework クラスの静的メソッドを参照するメソッド。

-- CodeProperty: .NET Framework クラスの静的プロパティを参照するプロパティ。

-- Event: オブジェクトが、アクションまたは状態の変更を示すメッセージを送信することを示します。

-- MemberSet: PSBase、PSObject、PSTypeNames などのプロパティおよびメソッドの定義済みコレクション。

-- Method: 基になる .NET Framework オブジェクトのメソッド。

-- NoteProperty: 静的な値を持つプロパティ。

-- ParameterizedProperty: パラメーターとパラメーター値を取得するプロパティ。

-- Property: 基になる .NET Framework オブジェクトのプロパティ。

-- PropertySet: オブジェクト プロパティの定義済みコレクション。

-- ScriptMethod: 値がスクリプトの出力であるメソッド。

-- ScriptProperty: 値がスクリプトの出力であるプロパティ。

-- All: すべてのメンバー型を取得します。

-- Methods: オブジェクトのメソッド (Method、CodeMethod、ScriptMethod など) のすべての型を取得します。

-- Properties: オブジェクトのプロパティ (Property、CodeProperty、AliasProperty、ScriptProperty など) のすべての型を取得します。

すべてのオブジェクトが各型のメンバーを持っているわけではありません。オブジェクトにないメンバー型を指定した場合、Windows PowerShell は null 値を返します。

すべての拡張メンバーなど、関連する型のメンバーを取得するには、View パラメーターを使用します。MemberType パラメーターを Static パラメーターまたは View パラメーターと共に使用すると、Get-Member は両方のセットに属するメンバーを取得します。

必須

false

位置

named

既定値

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

false

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

false

-Name <string[]>

オブジェクトの 1 つまたは複数のプロパティまたはメソッドの名前を指定します。Get-Member は、指定されたプロパティおよびメソッドのみを取得します。

Name パラメーターを MemberType、View、または Static パラメーターと共に使用すると、Get-Member はすべてのパラメーターの条件を満たすメンバーのみを取得します。

静的メンバーを名前で取得するには、Static パラメーターを Name パラメーターと共に使用します。

必須

false

位置

1

既定値

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

false

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

false

-Static

オブジェクトの静的プロパティおよびメソッドのみを取得します。

静的プロパティおよびメソッドは、クラスの特定のインスタンスではなく、オブジェクトのクラスで定義されます。

Static パラメーターを View パラメーターと共に使用すると、View パラメーターは無視されます。Static パラメーターを MemberType パラメーターと共に使用すると、Get-Member は両方のセットに属するメンバーのみを取得します。

必須

false

位置

named

既定値

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

false

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

false

-View <PSMemberViewTypes>

特定の型のメンバー (プロパティおよびメソッド) のみを取得します。1 つまたは複数の値を指定します。既定値は、"Adapted、Extended" です。

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

-- Base: 拡張またはアダプターの適用を行わない、.NET Framework オブジェクトの元のプロパティおよびメソッドのみを取得します。

-- Adapted: Windows PowerShell 拡張型システムで定義されているプロパティおよびメソッドのみを取得します。

-- Extended: Types.ps1xml ファイルで追加された、または Add-Member コマンドレットを使用して追加されたプロパティおよびメソッドのみを取得します。

-- All: Base、Adapted、および Extended ビューのメンバーを取得します。

View パラメーターは、それらのメンバーの表示だけでなく、取得するメンバーを定義します。

スクリプト プロパティなどの特定のメンバー型を取得するには、MemberType パラメーターを使用します。MemberType パラメーターと View パラメーターを同じコマンドで使用すると、Get-Member は両方のセットに属するメンバーを取得します。Static パラメーターと View パラメーターを同じコマンドで使用すると、View パラメーターは無視されます。

必須

false

位置

named

既定値

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

false

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

false

<CommonParameters>

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

入力と出力

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

入力

System.Management.Automation.PSObject

パイプを使用してあらゆるオブジェクトを Get-Member に渡すことができます。

出力

Microsoft.PowerShell.Commands.MemberDefinition

Get-Member は、取得したプロパティまたはメソッドごとに、そのオブジェクトを返します。

コレクション オブジェクトに関する情報は、InputObject パラメーターを使用するか、Get-Member に対して前にコンマを付けたオブジェクトをパイプ処理することによって取得できます。

例 1

C:\PS>get-service | get-member


   TypeName: System.ServiceProcess.ServiceController

Name                      MemberType    Definition
----                      ----------    ----------
Name                      AliasProperty Name = ServiceName
Close                     Method        System.Void Close()
Continue                  Method        System.Void Continue()
CreateObjRef              Method        System.Runtime.Remoting.ObjRef CreateObjRef(Type requestedType)
Dispose                   Method        System.Void Dispose()
Equals                    Method        System.Boolean Equals(Object obj)
ExecuteCommand            Method        System.Void ExecuteCommand(Int32 command)
GetHashCode               Method        System.Int32 GetHashCode()
GetLifetimeService        Method        System.Object GetLifetimeService()
GetType                   Method        System.Type GetType()
InitializeLifetimeService Method        System.Object InitializeLifetimeService()
Pause                     Method        System.Void Pause()
Refresh                   Method        System.Void Refresh()
Start                     Method        System.Void Start(), System.Void Start(String[] args)
Stop                      Method        System.Void Stop()
ToString                  Method        System.String ToString()
WaitForStatus             Method        System.Void WaitForStatus(ServiceControllerStatus desiredStatus), System.Voi...
CanPauseAndContinue       Property      System.Boolean CanPauseAndContinue {get;}
CanShutdown               Property      System.Boolean CanShutdown {get;}
CanStop                   Property      System.Boolean CanStop {get;}
Container                 Property      System.ComponentModel.IContainer Container {get;}
DependentServices         Property      System.ServiceProcess.ServiceController[] DependentServices {get;}
DisplayName               Property      System.String DisplayName {get;set;}
MachineName               Property      System.String MachineName {get;set;}
ServiceHandle             Property      System.Runtime.InteropServices.SafeHandle ServiceHandle {get;}
ServiceName               Property      System.String ServiceName {get;set;}
ServicesDependedOn        Property      System.ServiceProcess.ServiceController[] ServicesDependedOn {get;}
ServiceType               Property      System.ServiceProcess.ServiceType ServiceType {get;}
Site                      Property      System.ComponentModel.ISite Site {get;set;}
Status                    Property      System.ServiceProcess.ServiceControllerStatus Status {get;}

説明
-----------
このコマンドは、Get-Service コマンドレットで生成されるプロセス オブジェクト (System.ServiceProcess.ServiceController) のプロパティとメソッドを表示します。

このコマンドはパイプライン演算子 (|) を使用して、Get-Service コマンドの出力を Get-Member に渡します。

コマンドの Get-Member の部分にはパラメーターがないため、すべて既定値が使用されます。このため、すべてのメンバー型を取得しますが、静的メンバーは取得せず、組み込みメンバーを表示しません。






例 2

C:\PS>get-service | get-member -force

C:\PS> (get-service -schedule).psbase

説明
-----------
この例では、Get-Service コマンドレットで取得されたサービス オブジェクト (System.ServiceProcess.ServiceController) のすべてのメンバー (プロパティとメソッド) を取得します。これには、PSBase、PSObject などの組み込みメンバーや、get_ メソッド、set_ メソッドなどが含まれます。

最初のコマンドは Get-Service コマンドレットを使用して、システム上のサービスを表すオブジェクトを取得します。このコマンドはパイプライン演算子 (|) を使用して、サービス オブジェクトを Get-Member コマンドレットに渡します。

Get-Member コマンドは、Force パラメーターを使用して、オブジェクトの組み込みメンバーとコンパイラで生成されたメンバーを表示に追加します。Get-Member はこれらのメンバーを取得しますが、既定では非表示にします。

これらのプロパティとメソッドは、オブジェクトのアダプター適用対象のメソッドを使用する場合と同じ方法で使用できます。2 番目のコマンドは、Schedule サービスの PSBase プロパティの値を表示する方法を示しています。






例 3

C:\PS>get-service	| get-member -view extended

   TypeName: System.ServiceProcess.ServiceController

Name MemberType    Definition
---- ----------    ----------
Name AliasProperty Name = ServiceName

説明
-----------
このコマンドは、Types.ps1xml ファイルまたは Add-Member コマンドレットを使用して拡張されたサービス オブジェクトのメソッドとプロパティを取得します。


Get-Member コマンドは、View パラメーターを使用して、サービス オブジェクトの拡張されたメンバーのみを取得します。この場合、拡張されたメンバーは Name プロパティです。このプロパティは、ServiceName プロパティのエイリアス プロパティです。






例 4

C:\PS>get-eventlog -log system | gm -membertype scriptproperty

   TypeName: System.Diagnostics.EventLogEntry

Name    MemberType     Definition
----    ----------     ----------
EventID ScriptProperty System.Object EventID {get=$this.get_EventID() -band 0xFFFF;}

説明
-----------
このコマンドは、イベント ビューアーのシステム ログにあるイベント ログ オブジェクトのスクリプト プロパティを取得します。この場合、スクリプト プロパティは EventID のみです。






例 5

C:\PS>get-eventlog -log system | get-member -membertype scriptproperty


   TypeName: System.Diagnostics.EventLogEntry

Name    MemberType     Definition
----    ----------     ----------
EventID ScriptProperty System.Object EventID {get=$this.get_EventID() -band 0xFFFF;}

説明
-----------
このコマンドは、イベント ビューアーのシステム ログにあるイベント ログ オブジェクトのスクリプト プロパティを取得します。

このコマンドは、MemberType パラメーターを使用して、MemberType プロパティの AliasProperty の値を持つオブジェクトのみを取得します。

コマンドは、EventLog オブジェクトの EventID プロパティを返します。






例 6

C:\PS>$a = "get-process", "get-service", "get-culture", "get-psdrive", "get-executionpolicy"

C:\PS> foreach ($cmdlet in $a) {invoke-expression $cmdlet | get-member -name machinename}

TypeName: System.Diagnostics.Process

Name        MemberType Definition
----        ---------- ----------
MachineName Property   System.String MachineName {get;}


   TypeName: System.ServiceProcess.ServiceController

Name        MemberType Definition
----        ---------- ----------
MachineName Property   System.String MachineName {get;set;}

説明
-----------
このコマンドは、MachineName プロパティを持つオブジェクトをコマンドレットの一覧から取得します。

最初のコマンドは、各コマンドレットの名前を $a 変数に保存します。

2 番目のコマンドは、ForEach ステートメントを使用して各コマンドを呼び出し、結果を Get-Member に渡して、Get-Member の結果を "MachineName" という名前のメンバーに制限します。

MachineName プロパティを持っているのは、プロセス オブジェクト (System.Diagnostics.Process) とサービス オブジェクト (System.ServiceProcess.ServiceController) のみであることが結果に示されます。






例 7

C:\PS>$a = get-member -inputobject @(1)

C:\PS>$a.count

1

C:\PS> $a = get-member -inputobject 1,2,3

   TypeName: System.Object[]
Name               MemberType    Definition
----               ----------    ----------
Count              AliasProperty Count = Length
Address            Method        System.Object& Address(Int32 )
Clone              Method        System.Object Clone()
...

C:\PS>$a.count
1

説明
-----------
この例は、特定の型のオブジェクトが 1 つしかない場合に、オブジェクトの配列のプロパティとメソッドを調べる方法を示しています。

目的は配列のプロパティを調べることなので、コマンドは最初に InputObject パラメーターを使用します。また、アットマーク (@) を使用して配列を示します。この場合、配列には、1 つのオブジェクト、つまり整数 1 のみが含まれています。

3 番目のコマンドは、Get-Member コマンドレットを使用して、整数の配列のプロパティとメソッドを取得し、$a 変数に保存します。

4 番目のコマンドは、配列の Count プロパティを使用して、$a 変数にあるオブジェクトの数を調べます。






関連項目




目次