PowerShell Cmdlet - Get-Member
 記事記号:[mf1979] 初版:2011/Sep/30

この文書は、Windows PowerShellのヘルプ機能で表示される内容を再構成したものです。

名前
    Get-Member
    
概要
    オブジェクトのプロパティとメソッドを取得します。
    
構文
    Get-Member [[-Name] <string[]>] [-Force] [-InputObject <psobject>] [-MemberT
    ype {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 [<SwitchParameter>]
        組み込みメンバー (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 PowerS
           hell のインストール ディレクトリ ($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、AliasP
           roperty、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 [<SwitchParameter>]
        オブジェクトの静的プロパティおよびメソッドのみを取得します。
        
        静的プロパティおよびメソッドは、クラスの特定のインスタンスではなく、オブ
        ジェクトのクラスで定義されます。
        
        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、WarningAction、WarningVariable、
        OutBuffer、および OutVariable。詳細については、
        「get-help 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 Creat
                                            eObjRef(Type requestedType)
    Dispose                   Method        System.Void Dispose()
    Equals                    Method        System.Boolean Equals(Object obj)
    ExecuteCommand            Method        System.Void ExecuteCommand(Int32 com
                                            mand)
    GetHashCode               Method        System.Int32 GetHashCode()
    GetLifetimeService        Method        System.Object GetLifetimeService()
    GetType                   Method        System.Type GetType()
    InitializeLifetimeService Method        System.Object InitializeLifetimeServ
                                            ice()
    Pause                     Method        System.Void Pause()
    Refresh                   Method        System.Void Refresh()
    Start                     Method        System.Void Start(), System.Void Sta
                                            rt(String[] args)
    Stop                      Method        System.Void Stop()
    ToString                  Method        System.String ToString()
    WaitForStatus             Method        System.Void WaitForStatus(ServiceCon
                                            trollerStatus 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 Con
                                            tainer {get;}
    DependentServices         Property      System.ServiceProcess.ServiceControl
                                            ler[] DependentServices {get;}
    DisplayName               Property      System.String DisplayName {get;set;}
    MachineName               Property      System.String MachineName {get;set;}
    ServiceHandle             Property      System.Runtime.InteropServices.SafeH
                                            andle ServiceHandle {get;}
    ServiceName               Property      System.String ServiceName {get;set;}
    ServicesDependedOn        Property      System.ServiceProcess.ServiceControl
                                            ler[] ServicesDependedOn {get;}
    ServiceType               Property      System.ServiceProcess.ServiceType Se
                                            rviceType {get;}
    Site                      Property      System.ComponentModel.ISite Site {ge
                                            t;set;}
    Status                    Property      System.ServiceProcess.ServiceControl
                                            lerStatus 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 コマンドレットで取得されたサービス オブジェクト (Sy
    stem.ServiceProcess.ServiceController) のすべてのメンバー (プロパティとメソ
    ッド) を取得します。これには、PSBase、PSObject などの組み込みメンバーや、ge
    t_ メソッド、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 プロパティの A
    liasProperty の値を持つオブジェクトのみを取得します。
    
    コマンドは、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.Diagno
    stics.Process) とサービス オブジェクト (System.ServiceProcess.ServiceControl
    ler) のみであることが結果に示されます。
    
    -------------------------- 例 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 変数にあるオブジェ
    クトの数を調べます。
    
関連するリンク
    Online version: http://go.microsoft.com/fwlink/?LinkID=113322
    Add-Member 
    Get-Help 
    Get-Command 
    Get-PSDrive 
    	
記事で解説しているパソコンの環境
 基本ソフト: Windows 7
 キーワード: Windows PowerShell、ヘルプ、Cmdlet、Get-Member
ご利用数: 1913430
感想・要望・問い合わせは こちら