Get-Member
オブジェクトのプロパティとメソッドを取得します。
構文
Get-Member
[-InputObject <PSObject>]
[[-Name] <String[]>]
[-MemberType <PSMemberTypes>]
[-View <PSMemberViewTypes>]
[-Static]
[-Force]
[<CommonParameters>]
説明
Get-Member
コマンドレットは、オブジェクトのメンバー、プロパティ、メソッドを取得します。
オブジェクトを指定するには、 InputObject パラメーターを使用するか、オブジェクトをパイプ処理して Get-Member
します。 静的メンバーに関する情報を取得するには、インスタンスではなくクラスのメンバーで、 Static パラメーターを使用します。 NoteProperties など、特定の種類のメンバーのみを取得するには、MemberType パラメーターを使用します。
Get-Member
は、アルファベット順に並べ替えられたメンバーの一覧を返します。 メソッドが最初に一覧表示され、その後にプロパティが続きます。
例
例 1: プロセス オブジェクトのメンバーを取得する
このコマンドは、 Get-Service
コマンドレットによって生成されたサービス オブジェクトのプロパティとメソッドを表示します。
コマンドの Get-Member
部分にはパラメーターがないため、パラメーターには既定値が使用されます。 既定では、 Get-Member
は静的メンバーまたは組み込みメンバーを取得しません。
Get-Service | Get-Member
TypeName: System.Service.ServiceController#StartupType
Name MemberType Definition
---- ---------- ----------
Name AliasProperty Name = ServiceName
RequiredServices AliasProperty RequiredServices = ServicesDependedOn
Disposed Event System.EventHandler Disposed(System.Object, System.EventArgs)
Close Method void Close()
Continue Method void Continue()
Dispose Method void Dispose(), void IDisposable.Dispose()
Equals Method bool Equals(System.Object obj)
ExecuteCommand Method void ExecuteCommand(int command)
GetHashCode Method int GetHashCode()
GetLifetimeService Method System.Object GetLifetimeService()
GetType Method type GetType()
InitializeLifetimeService Method System.Object InitializeLifetimeService()
Pause Method void Pause()
Refresh Method void Refresh()
Start Method void Start(), void Start(string[] args)
Stop Method void Stop()
WaitForStatus Method void WaitForStatus(System.ServiceProcess.ServiceControllerSt...
BinaryPathName Property System.String {get;set;}
CanPauseAndContinue Property bool CanPauseAndContinue {get;}
CanShutdown Property bool CanShutdown {get;}
CanStop Property bool CanStop {get;}
Container Property System.ComponentModel.IContainer Container {get;}
DelayedAutoStart Property System.Boolean {get;set;}
DependentServices Property System.ServiceProcess.ServiceController[] DependentServices {get;}
Description Property System.String {get;set;}
DisplayName Property string DisplayName {get;set;}
MachineName Property string MachineName {get;set;}
ServiceHandle Property System.Runtime.InteropServices.SafeHandle ServiceHandle {get;}
ServiceName Property 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;}
StartType Property System.ServiceProcess.ServiceStartMode StartType {get;}
StartupType Property Microsoft.PowerShell.Commands.ServiceStartupType {get;set;}
Status Property System.ServiceProcess.ServiceControllerStatus Status {get;}
UserName Property System.String {get;set;}
ToString ScriptMethod System.Object ToString();
例 2: サービス オブジェクトのメンバーを取得する
この例では、 Get-Service
コマンドレットによって取得されたサービス オブジェクトのすべてのメンバー (プロパティとメソッド) を取得します。これには、 PSBase、、 PSObject、 get_ メソッド、 set_ メソッドなどの組み込みメンバーが含まれます。
Get-Service | Get-Member -Force
(Get-Service Schedule).PSBase
Get-Member
コマンドは、Force パラメーターを使用して、オブジェクトの組み込みメンバーとコンパイラによって生成されたメンバーをディスプレイに追加します。 これらのプロパティとメソッドは、オブジェクトのアダプター適用対象のメソッドを使用する場合と同じ方法で使用できます。 2 番目のコマンドは、Schedule サービスの PSBase プロパティの値を表示する方法を示しています。 組み込みメンバーの詳細については、 about_Intrinsic_Membersを参照してください。
例 3: サービス オブジェクトの拡張メンバーを取得する
この例では、 Types.ps1xml
ファイルまたは Add-Member
コマンドレットを使用して拡張されたサービス オブジェクトのメソッドとプロパティを取得します。
Get-Service | Get-Member -View Extended
TypeName: System.Service.ServiceController#StartupType
Name MemberType Definition
---- ---------- ----------
Name AliasProperty Name = ServiceName
RequiredServices AliasProperty RequiredServices = ServicesDependedOn
ToString ScriptMethod System.Object ToString();
Get-Member
コマンドは、View パラメーターを使用して、サービス オブジェクトの拡張メンバーのみを取得します。 この場合、拡張メンバーは Name プロパティであり、 ServiceName プロパティのエイリアス プロパティです。
例 4: イベント ログ オブジェクトのスクリプト プロパティを取得する
この例では、イベント ビューアーシステム ログ内のイベント ログ オブジェクトのスクリプト プロパティを取得します。
Get-WinEvent -LogName System -MaxEvents 1 | Get-Member -MemberType NoteProperty
TypeName: System.Diagnostics.Eventing.Reader.EventLogRecord
Name MemberType Definition
---- ---------- ----------
Message NoteProperty string Message=The machine-default permission settings do not grant Local ...
MemberType パラメーターは、MemberType プロパティの値が NoteProperty
のオブジェクトのみを取得します。
このコマンドは、EventLogRecord オブジェクトの Message プロパティを返します。
例 5: 指定したプロパティを持つオブジェクトを取得する
この例では、コマンドレットの一覧からの出力に MachineName プロパティを持つオブジェクトを取得します。
$list
変数には、評価するコマンドレットの一覧が含まれています。 foreach
ステートメントは、各コマンドを呼び出し、結果をGet-Member
に送信します。 Name パラメーターは、Get-Member
の結果を、MachineName という名前のメンバーに制限します。
$list = "Get-Process", "Get-Service", "Get-Culture", "Get-PSDrive", "Get-ExecutionPolicy"
foreach ($cmdlet in $list) {& $cmdlet | Get-Member -Name MachineName}
TypeName: System.Diagnostics.Process
Name MemberType Definition
---- ---------- ----------
MachineName Property string MachineName {get;}
TypeName: System.Service.ServiceController#StartupType
Name MemberType Definition
---- ---------- ----------
MachineName Property string MachineName {get;set;}
結果は、プロセス オブジェクトとサービス オブジェクトのみが MachineName プロパティを持っていることを示しています。
例 6: 配列のメンバーを取得する
この例では、オブジェクトの配列のメンバーを検索する方法を示します。 パイプを使用してオブジェクトの配列を Get-Member
すると、コマンドレットは配列内の一意のオブジェクト型ごとにメンバー リストを返します。
InputObject パラメーターを使用して配列を渡すと、配列は 1 つのオブジェクトとして扱われます。
$array = @(1,'hello')
$array | Get-Member
TypeName: System.Int32
Name MemberType Definition
---- ---------- ----------
CompareTo Method int CompareTo(System.Object value), int CompareTo(int value), int ICompar...
Equals Method bool Equals(System.Object obj), bool Equals(int obj), bool IEquatable[int...
GetHashCode Method int GetHashCode()
GetType Method type GetType()
GetTypeCode Method System.TypeCode GetTypeCode(), System.TypeCode IConvertible.GetTypeCode()
ToBoolean Method bool IConvertible.ToBoolean(System.IFormatProvider provider)
ToByte Method byte IConvertible.ToByte(System.IFormatProvider provider)
...
TypeName: System.String
Name MemberType Definition
---- ---------- ----------
Clone Method System.Object Clone(), System.Object ICloneable.Clone()
CompareTo Method int CompareTo(System.Object value), int CompareTo(str...
Contains Method bool Contains(string value), bool Contains(string val...
CopyTo Method void CopyTo(int sourceIndex, char[] destination, int ...
EndsWith Method bool EndsWith(string value), bool EndsWith(string val...
EnumerateRunes Method System.Text.StringRuneEnumerator EnumerateRunes()
Equals Method bool Equals(System.Object obj), bool Equals(string va...
GetEnumerator Method System.CharEnumerator GetEnumerator(), System.Collect...
GetHashCode Method int GetHashCode(), int GetHashCode(System.StringCompa...
...
Get-Member -InputObject $array
TypeName: System.Object[]
Name MemberType Definition
---- ---------- ----------
Add Method int IList.Add(System.Object value)
Address Method System.Object&, System.Private.CoreLib, Version=4.0.0.0, Cu...
Clear Method void IList.Clear()
Clone Method System.Object Clone(), System.Object ICloneable.Clone()
CompareTo Method int IStructuralComparable.CompareTo(System.Object other, Sy...
...
$array
変数には、Int32 オブジェクトとstring オブジェクトが含まれます。配列をGet-Member
にパイプ処理する場合に表示されます。 InputObject を使用して$array
が渡されるとパラメーターはGet-Member
Object[]型のメンバーを返します。
例 7: 設定できるオブジェクト・プロパティーを判別する
この例は、オブジェクトのどのプロパティを変更できるかを判断する方法を示します。
$File = Get-Item c:\test\textFile.txt
$File.PSObject.Properties | Where-Object isSettable | Select-Object -Property Name
Name
----
PSPath
PSParentPath
PSChildName
PSDrive
PSProvider
PSIsContainer
IsReadOnly
CreationTime
CreationTimeUtc
LastAccessTime
LastAccessTimeUtc
LastWriteTime
LastWriteTimeUtc
Attributes
例 8: オブジェクトのプロパティを作成順に一覧表示する
この例では、新しい PSObject を作成し、それにプロパティを追加します。 Get-Member
は、プロパティをアルファベット順に一覧表示します。 プロパティがオブジェクトに追加された順序で表示するには、 PSObject 組み込みメンバーを使用する必要があります。
$Asset = New-Object -TypeName PSObject
$d = [ordered]@{Name="Server30";System="Server Core";PSVersion="4.0"}
$Asset | Add-Member -NotePropertyMembers $d -TypeName Asset
$Asset.PSObject.Properties | Select-Object Name, Value
Name Value
---- -----
Name Server30
System Server Core
PSVersion 4.0
パラメーター
-Force
組み込みメンバーとコンパイラによって生成された get_ メソッドと set_ メソッドをディスプレイに追加します。 次の一覧では、 Force パラメーターを使用するときに追加されるプロパティについて説明します。
PSBase
: 拡張または適応のない .NET オブジェクトの元のプロパティ。 これらは、オブジェクト クラスに対して定義されているプロパティです。PSAdapted
: PowerShell 拡張型システムで定義されているプロパティとメソッド。PSExtended
:Types.ps1xml
ファイルまたはAdd-Member
コマンドレットを使用して追加されたプロパティとメソッド。PSObject
: 基本オブジェクトを PowerShell PSObject オブジェクトに変換するアダプター。PSTypeNames
: オブジェクトを記述するオブジェクトの種類の一覧。具体的な順序で指定します。 オブジェクトを書式設定すると、PowerShell は PowerShell インストール ディレクトリ ($PSHOME
) 内のFormat.ps1xml
ファイル内の型を検索します。 検出した最初の型の書式設定定義を使用します。
既定では、 Get-Member
は、 Base と Adapted を除くすべてのビューでこれらのプロパティを取得しますが、表示されません。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-InputObject
取得するメンバーを含んでいるオブジェクトを指定します。
InputObject パラメーターを使用することは、オブジェクトをGet-Member
にパイプ処理するのと同じではありません。 違いは次のとおりです。
Get-Member
するオブジェクトのコレクションをパイプ処理すると、Get-Member
は、文字列の配列内の各文字列のプロパティなど、コレクション内の個々のオブジェクトのメンバーを取得します。- InputObject を使用してオブジェクトのコレクションを送信すると、
Get-Member
は、文字列の配列内の配列のプロパティなど、コレクションのメンバーを取得します。
型: | PSObject |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-MemberType
このコマンドレットが取得するメンバーの種類を指定します。 既定値は、All
です。
このパラメーターの有効値は、次のとおりです。
AliasProperty
CodeProperty
Property
NoteProperty
ScriptProperty
Properties
PropertySet
Method
CodeMethod
ScriptMethod
Methods
ParameterizedProperty
MemberSet
Event
Dynamic
All
これらの値は、フラグ ベースの列挙体として定義されます。 このパラメーターを使用して、複数の値を組み合わせて複数のフラグを設定できます。 値は、 MemberType パラメーターに値の配列として、またはそれらの値のコンマ区切り文字列として渡すことができます。 コマンドレットは、バイナリ OR 操作を使用して値を結合します。 配列として値を渡すことは最も簡単なオプションであり、値にタブ補完を使用することもできます。
これらの値の詳細については、「 PSMemberTypes 列挙型を参照してください。
すべてのオブジェクトにすべての型のメンバーがあるわけではありません。 オブジェクトに含まれていないメンバー型を指定すると、PowerShell は null 値を返します。 すべての拡張メンバーなど、関連する型のメンバーを取得するには、 View パラメーターを使用します。 MemberType パラメーターを Static または View パラメーターと共に使用すると、Get-Member
は両方のセットに属するメンバーを取得します。
型: | PSMemberTypes |
Aliases: | Type |
指定可能な値: | AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet, Event, Dynamic, All |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Name
オブジェクトの 1 つまたは複数のプロパティまたはメソッドの名前を指定します。 Get-Member
は、指定されたプロパティとメソッドのみを取得します。
Name パラメーターを MemberType、View、または Static パラメーターと共に使用すると、すべてのパラメーターの条件を満たすメンバーのみが取得Get-Member
。
静的メンバーを名前で取得するには、 Static パラメーターと Name パラメーターを使用します。
型: | String[] |
配置: | 0 |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Static
このコマンドレットは、オブジェクトの静的プロパティとメソッドのみを取得することを示します。 静的プロパティおよびメソッドは、クラスの特定のインスタンスで定義されるのではなく、オブジェクトのクラスで定義されます。
Static パラメーターを View または Force パラメーターと共に使用すると、コマンドレットはこれらのパラメーターを無視します。 Static パラメーターを MemberType パラメーターと共に使用すると、Get-Member
は両方のセットに属するメンバーのみを取得します。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-View
このコマンドレットが特定の型のプロパティとメソッドのみを取得することを指定します。 1 つまたは複数の値を指定します。 既定値は Adapted Extended です。
このパラメーターの有効値は、次のとおりです。
- ベース。 .NET オブジェクトの元のプロパティとメソッドのみを取得します (拡張機能や適応なし)。
- 適応。 PowerShell 拡張型システムで定義されているプロパティとメソッドのみを取得します。
- ひろがった。
Types.ps1xml
ファイルまたはAdd-Member
コマンドレットを使用して追加されたプロパティとメソッドのみを取得します。 - すべて。 Base、Adapted、および Extended ビューのメンバーを取得します。
View パラメーターは、それらのメンバーの表示だけでなく、取得したメンバーを決定します。
スクリプト プロパティなどの特定のメンバー型を取得するには、 MemberType パラメーターを使用します。 同じコマンドで MemberType および View パラメーターを使用すると、 Get-Member
は両方のセットに属するメンバーを取得します。 同じコマンドで Static パラメーターと View パラメーターを使用する場合、 View パラメーターは無視されます。
型: | PSMemberViewTypes |
指定可能な値: | Extended, Adapted, Base, All |
配置: | Named |
規定値: | Adapted, Extended |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
入力
任意のオブジェクトをこのコマンドレットにパイプできます。
出力
このコマンドレットは、取得する各プロパティまたはメソッドの MemberDefinition を返します。
メモ
PowerShell には、 Get-Member
の次のエイリアスが含まれています。
- すべてのプラットフォーム:
gm
コレクション オブジェクトに関する情報は、 InputObject パラメーターを使用するか、コンマで始めるオブジェクトをパイプ処理して Get-Member
できます。
$This
自動変数は、新しいプロパティとメソッドの値を定義するスクリプト ブロックで使用できます。 $This
変数は、プロパティとメソッドが追加されるオブジェクトのインスタンスを参照します。 $This
変数の詳細については、about_Automatic_Variablesを参照してください。
型を表すオブジェクトを渡す場合[int]
などの型リテラルのように、[System.RuntimeType]
型に関する情報Get-Member
返されます。 ただし、 Static パラメーターを使用すると、 Get-Member
は、 System.RuntimeType
インスタンスによって表される特定の型の静的メンバーを返します。
関連リンク
PowerShell