Share via


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: サービス オブジェクトのメンバーを取得する

この例では、PSBasePSObjectget_ メソッド、set_ メソッドなどの組み込みメンバーを含め、コマンドレットによってGet-Service取得されたサービス オブジェクトのすべてのメンバー (プロパティとメソッド) を取得します。

Get-Service | Get-Member -Force
(Get-Service Schedule).PSBase

コマンドは Get-MemberForce パラメーターを使用して、オブジェクトの組み込みメンバーとコンパイラによって生成されたメンバーを表示に追加します。 これらのプロパティとメソッドは、オブジェクトのアダプター適用対象のメソッドを使用する場合と同じ方法で使用できます。 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、配列が にGet-Memberパイプされるときに表示される Int32 オブジェクトと文字列オブジェクトが含まれます。 が $arrayInputObject パラメーター 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-MemberBaseAdapted を除くすべてのビューでこれらのプロパティを取得しますが、表示されません。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

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

InputObject パラメーターを使用することは、オブジェクトを にGet-Memberパイプ処理するのと同じではありません。 相違点は、次のとおりです。

  • オブジェクトのコレクションを にGet-MemberGet-Memberパイプすると、コレクション内の個々のオブジェクトのメンバー (文字列の配列内の各文字列のプロパティなど) が取得されます。
  • InputObject を使用してオブジェクトのコレクションを送信する場合は、Get-Memberコレクションのメンバー (文字列の配列内の配列のプロパティなど) を取得します。
Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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 パラメーターを使用します。 Static パラメーターまたは View パラメーターで MemberType パラメーターを使用する場合は、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 は、指定されたプロパティとメソッドのみを取得します。

MemberTypeView、または 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 パラメーターまたは Force パラメーターで Static パラメーターを使用する場合、コマンドレットはこれらのパラメーターを無視します。 MemberType パラメーターで Static パラメーターを使用する場合は、Get-Member両方のセットに属するメンバーのみを取得します。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-View

このコマンドレットは、特定の型のプロパティとメソッドのみを取得することを指定します。 1 つまたは複数の値を指定します。 既定値は AdaptedExtended です

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

  • 底。 .NET オブジェクトの元のプロパティとメソッドのみを取得します (拡張機能や適応なし)。
  • 適応。 PowerShell 拡張型システムで定義されているプロパティとメソッドのみを取得します。
  • 拡張。 ファイルまたは コマンドレットを使用してAdd-Member追加Types.ps1xmlされたプロパティとメソッドのみを取得します。
  • すべて。 Base、Adapted、および Extended ビューのメンバーを取得します。

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

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

Type:PSMemberViewTypes
Accepted values:Extended, Adapted, Base, All
Position:Named
Default value:Adapted, Extended
Required:False
Accept pipeline input:False
Accept wildcard characters:False

入力

PSObject

任意のオブジェクトをこのコマンドレットにパイプできます。

出力

MemberDefinition

このコマンドレットは、取得する各プロパティまたはメソッドの MemberDefinition を返します。

メモ

PowerShell には、 の次のエイリアスが Get-Member含まれています。

  • すべてのプラットフォーム:
    • gm

コレクション オブジェクトに関する情報を取得するには、 InputObject パラメーターを使用するか、コンマで始まる オブジェクトを に Get-Memberパイプ処理します。

スクリプト ブロックでは、 $This 新しいプロパティとメソッドの値を定義する自動変数を使用できます。 変数は $This 、プロパティとメソッドが追加されるオブジェクトのインスタンスを参照します。 変数の $This 詳細については、「 about_Automatic_Variables」を参照してください。

などの[int]Get-Member型リテラルのようなを表すオブジェクトを渡すと、型に関する情報が[System.RuntimeType]返されます。 ただし、 Static パラメーターを使用すると、 Get-Member インスタンスによって表される特定の型の静的メンバーが System.RuntimeType 返されます。