次の方法で共有


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 パラメーターを使用します。 アットマーク(@)を使用して配列を示します。 この場合、配列には整数 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

この例では、変更できるオブジェクトのプロパティを決定する方法を示します。 この例ではファイルを使用していますが、このコマンド形式を使用して、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-MemberInputObject パラメーターを使用して、$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 PowerShellPSObject オブジェクトに変換するアダプター。
  • PSTypeNamesです。 オブジェクトを記述するオブジェクトの種類の一覧 (特異性の順に)。 オブジェクトの書式設定時に、Windows PowerShell は Windows PowerShell インストール ディレクトリ ($pshome) の Format.ps1xml ファイル内の型を検索します。 検索する最初の型の書式定義を使用します。
型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-InputObject

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

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

  • オブジェクトのコレクションを Get-Member にパイプすると、 Get-Member は、文字列の配列内の各文字列のプロパティなど、コレクション内の個々のオブジェクトのメンバーを取得します。
  • InputObject を使用してオブジェクトのコレクションを送信すると、Get-Member はコレクションのメンバー (文字列の配列内の配列のプロパティなど) を取得します。
型:PSObject
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-MemberType

このコマンドレットが取得するメンバーの種類を指定します。 デフォルトは [すべて] です。

このパラメーターに使用できる値は次のとおりです。

  • エイリアスプロパティ
  • コードプロパティ
  • プロパティ
  • NoteProperty (ノートプロパティ)
  • スクリプトプロパティ
  • 特性
  • プロパティセット
  • メソッド
  • コードメソッド
  • スクリプトメソッド
  • メソッド
  • パラメーター化プロパティ
  • メンバーセット
  • 出来事
  • 動的
  • 全て

これらの値の詳細については、MSDN ライブラリの「 PSMemberTypes 列挙 体」を参照してください。

すべてのオブジェクトに、すべての種類のメンバーがあるわけではありません。 オブジェクトにないメンバーの種類を指定すると、Windows 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 パラメーターを MemberTypeView、または Static パラメーターと共に使用すると、Get-Member はすべてのパラメーターの条件を満たすメンバーのみを取得します。

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

型:String[]
配置:0
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Static

このコマンドレットは、オブジェクトの静的プロパティとメソッドのみを取得することを示します。

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

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

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る: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 パラメーターは無視されます。

型:PSMemberViewTypes
指定可能な値:Extended, Adapted, Base, All
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

入力

PSObject

任意のオブジェクトを Get-Member にパイプ処理できます。

出力

MemberDefinition

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

メモ

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

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