Get-Member
オブジェクトのプロパティとメソッドを取得します。
構文
Get-Member
[[-Name] <String[]>]
[-InputObject <PSObject>]
[-MemberType <PSMemberTypes>]
[-View <PSMemberViewTypes>]
[-Static]
[-Force]
[<CommonParameters>]
説明
Get-Member コマンドレットは、オブジェクトのメンバー、プロパティ、メソッドを取得します。
オブジェクトを指定するには、 InputObject パラメーターを使用するか、オブジェクトを Get-Member にパイプします。 静的メンバーに関する情報を取得するには、インスタンスではなく クラスのメンバーで Static パラメーターを 使用します。 NoteProperties など、特定の種類のメンバーのみを取得するには、MemberType パラメーターを使用します。
例
例 1: プロセス オブジェクトのメンバーを取得する
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: サービス オブジェクトのメンバーを取得する
PS> Get-Service | Get-Member -Force
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: サービス オブジェクトの拡張メンバーを取得する
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: イベント ログ オブジェクトのスクリプト プロパティを取得する
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 プロパティの値が ScriptProperty のオブジェクトのみを取得します。
コマンドは、 EventLog オブジェクトの EventID プロパティを返します。
例 5: 指定したプロパティを持つオブジェクトを取得する
PS> $A = "Get-Process", "Get-Service", "Get-Culture", "Get-PSDrive", "Get-ExecutionPolicy"
PS> ForEach ($Cmdlet in $A) {Invoke-Command $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 という名前のメンバーに制限します。
結果は、プロセス オブジェクト (System.Diagnostics.Process) とサービス オブジェクト (System.ServiceProcess.ServiceController) のみが MachineName プロパティを持っていることを示しています。
例 6: 配列のメンバーを取得する
PS> $A = @(1)
PS> $A.Count
1
PS> Get-Member -InputObject $A
TypeName: System.Object[]
Name MemberType Definition
---- ---------- ----------
Count AliasProperty Count = Length
Address Method System.Object& Address(Int32 )
Clone Method System.Object Clone()
...
PS> $A = @(1,2,3)
PS> Get-Member -InputObject $A
TypeName: System.Object[]
Name MemberType Definition
---- ---------- ----------
Count AliasProperty Count = Length
Address Method System.Object& Address(Int32 )
Clone Method System.Object Clone()
...
PS> $A.Count
3
この例は、特定の型のオブジェクトが 1 つしかない場合に、オブジェクトの配列のプロパティとメソッドを調べる方法を示しています。
コマンドの目的は配列のプロパティを検索するため、最初のコマンドでは InputObject パラメーターを使用します。 at 記号 (@) を使用して配列を示します。 この場合、配列には、1 つのオブジェクト、つまり整数 1 だけが含まれています。
3 番目のコマンドでは 、Get-Member コマンドレットを使用して整数の配列のプロパティとメソッドを取得し、コマンドはそれらを $A 変数に保存します。
4 番目のコマンドでは、配列の Count プロパティを使用して、$A変数内のオブジェクトの数を検索します。
例 7: 設定できるオブジェクト プロパティを決定する
PS> $File = Get-Item c:\test\textFile.txt
PS> $File.psobject.properties | Where-Object {$_.issettable} | Format-Table -Property name
Name
----
PSPath
PSParentPath
PSChildName
PSDrive
PSProvider
PSIsContainer
IsReadOnly
CreationTime
CreationTimeUtc
LastAccessTime
LastAccessTimeUtc
LastWriteTime
LastWriteTimeUtc
Attributes
PS> [appdomain]::CurrentDomain.GetAssemblies() | ForEach-Object { $_.getexportedtypes() } | ForEach-Object {$_.getproperties() | Where-Object {$_.canwrite }} | Select-Object reflectedtype, name
この例は、オブジェクトのどのプロパティを変更できるかを判断する方法を示します。 この例では、1 つのファイルを使用していますが、このコマンド形式を使用すると、Windows PowerShell 内の任意のオブジェクトについて、変更可能なプロパティを調べることができます。
最初のコマンドでは、Get-Item コマンドレットを使用してテキスト ファイルを取得し、ファイル オブジェクトを $File 変数に保存します。
2 番目のコマンドは、$File変数内のファイル オブジェクトのすべての変更可能なプロパティを取得し、テーブル内のプロパティの名前を表示します。
3 番目のコマンドは、Windows PowerShell セッションのすべてのオブジェクトについて、変更可能なプロパティを取得します。
例 8: コレクション内の各項目のメンバーを取得する
PS> $S = Get-Service
PS> $S | Get-Member
TypeName: System.ServiceProcess.ServiceController
Name MemberType Definition
---- ---------- ----------
Name AliasProperty Name = ServiceName
RequiredServices AliasProperty RequiredServices = ServicesDependedOn
Disposed Event System.EventHandler Disposed(System.Object, System.EventArgs
Close Method System.Void Close()
Continue Method System.Void Continue()
CreateObjRef Method System.Runtime.Remoting.ObjRef CreateObjRef(type requestedTy
Dispose Method System.Void Dispose()
...
PS> Get-Member -InputObject $S
TypeName: System.Object[]
Name MemberType Definition
---- ---------- ----------
Count AliasProperty Count = Length
Address Method System.Object&, mscorlib, Version=2.0.0.0, Cultu
Clone Method System.Object Clone()
CopyTo Method System.Void CopyTo(array array, int index), Syst
Equals Method bool Equals(System.Object obj)
Get Method System.Object Get(int )
GetEnumerator Method System.Collections.IEnumerator GetEnumerator()
GetHashCode Method int GetHashCode()
...
この例では、Get-Member コマンドレットでの InputObject パラメーターの動作を示します。 InputObject パラメーターを使用してコレクションのメンバーを取得すると、Get-Member はコレクションのメンバーを取得します。 オブジェクトのコレクションを Get-Member にパイプすると、 Get-Member はコレクション内の各項目のメンバーを取得します。
最初のコマンドは、ローカル コンピューター上のサービスを取得し、サービスを $S 変数に保存します。
2 番目のコマンドは、$S変数を Get-Member コマンドレットにパイプします。 Get-Member は、$Sの各メンバーとその型のメンバーの型を取得します。 この場合は、ServiceController オブジェクトを取得し、RequiredServices や Close などのメンバーを一覧表示します。
3 番目のコマンドでは、Get-Member の InputObject パラメーターを使用して、$S変数を送信します。 Get-Member は、型 (System.Object[]) と ServiceController オブジェクトのコレクション (または配列) のメンバー (Count や Clone など) を取得します。
パラメーター
-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 ファイルにある型を検索します。 検出した最初の型の書式設定定義を使用します。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
取得するメンバーを含んでいるオブジェクトを指定します。
InputObject パラメーターの使用は、オブジェクトを Get-Member にパイプ処理する場合と同じではありません。 相違点は、次のとおりです。
- オブジェクトのコレクションを Get-Member にパイプすると、 Get-Member は、コレクション内の個々のオブジェクトのメンバー (文字列の配列内の各文字列のプロパティなど) を取得します。
- InputObject を使用してオブジェクトのコレクションを送信すると、Get-Member はコレクションのメンバー (文字列の配列内の配列のプロパティなど) を取得します。
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-MemberType
このコマンドレットが取得するメンバーの種類を指定します。 既定は [すべて] です。
このパラメーターの有効値は、次のとおりです。
- AliasProperty
- CodeProperty
- プロパティ
- NoteProperty
- ScriptProperty
- プロパティ
- PropertySet
- メソッド
- CodeMethod
- ScriptMethod
- メソッド
- ParameterizedProperty
- MemberSet
- イベント
- 動的
- すべて
これらの値の詳細については、MSDN ライブラリの 「PSMemberTypes 列挙」を 参照してください。
すべてのオブジェクトにすべての型のメンバーがあるわけではありません。 オブジェクトにないメンバー型を指定すると、Windows PowerShell は null 値を返します。
すべての拡張メンバーなど、関連する型のメンバーを取得するには、View パラメーターを使用します。 MemberType パラメーターを Static パラメーターまたは View パラメーターと共に使用すると、Get-Member は両方のセットに属するメンバーを取得します。
Type: | PSMemberTypes |
Aliases: | Type |
Accepted values: | AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet, Event, Dynamic, All |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Name
オブジェクトの 1 つまたは複数のプロパティまたはメソッドの名前を指定します。 Get-Member は、指定されたプロパティとメソッドのみを取得します。
MemberType、View、または Static パラメーターで Name パラメーターを使用すると、Get-Member はすべてのパラメーターの条件を満たすメンバーのみを取得します。
静的メンバーを名前で取得するには、 Static パラメーターと Name パラメーターを使用します。
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Static
このコマンドレットは、 オブジェクトの静的プロパティとメソッドのみを取得することを示します。
静的プロパティおよびメソッドは、クラスの特定のインスタンスで定義されるのではなく、オブジェクトのクラスで定義されます。
View パラメーターと共に Static パラメーターを使用する場合、View パラメーターは無視されます。 MemberType パラメーターと共に Static パラメーターを使用すると、Get-Member は両方のセットに属するメンバーのみを取得します。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-View
このコマンドレットは、特定の型のプロパティとメソッドのみを取得することを指定します。 1 つまたは複数の値を指定します。 既定値は Adapted、Extended です。
有効な値は次のとおりです。
- 底。 拡張もアダプターの適用もしていない .NET Framework オブジェクトの元のプロパティおよびメソッドだけを取得します。
- 適応。 Windows PowerShell 拡張型システムで定義されたプロパティおよびメソッドだけを取得します。
- 拡張。 Types.ps1xml ファイルや Add-Member コマンドレットで追加されたプロパティおよびメソッドだけを取得します。
- すべて。 Base、Adapted、および Extended ビューのメンバーを取得します。
View パラメーターは、それらのメンバーの表示だけでなく、取得されたメンバーを決定します。
スクリプト プロパティなどの特定のメンバー型を取得するには、 MemberType パラメーターを使用します。 同じコマンドで MemberType パラメーターと View パラメーターを使用すると、 Get-Member は両方のセットに属するメンバーを取得します。 同じコマンドで Static パラメーターと View パラメーターを使用する場合、 View パラメーターは無視されます。
Type: | PSMemberViewTypes |
Accepted values: | Extended, Adapted, Base, All |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
入力
任意のオブジェクトを Get-Member にパイプできます。
出力
Get-Member は、取得する各プロパティまたはメソッドのオブジェクトを返します。
メモ
コレクション オブジェクトに関する情報を取得するには、 InputObject パラメーターを使用するか、コンマで始まるオブジェクトを Get-Member にパイプ処理します。
$This自動変数は、新しいプロパティとメソッドの値を定義するスクリプト ブロックで使用できます。 $This変数は、プロパティとメソッドが追加されるオブジェクトのインスタンスを参照します。 $This変数の詳細については、「about_Automatic_Variables」を参照してください。