オブジェクトの構造の表示

オブジェクトは PowerShell でこのような中心的な役割を果たすので、任意のオブジェクト型を操作するように設計されたネイティブ コマンドがいくつかあります。 最も重要なのは、 Get-Member コマンドです。

コマンドから返されるオブジェクトを分析する最も簡単な手法は、そのコマンドの出力を Get-Member コマンドレットにパイプすることです。 Get-Member コマンドレットには、オブジェクト型の正式な名前とそのメンバーの完全な一覧が表示されます。 返される要素の数が多い場合があります。 たとえば、プロセス オブジェクトには 100 を超えるメンバーを含めることができます。

次のコマンドを使用すると、 Process オブジェクトのすべてのメンバーを表示し、出力を通じてページを表示できます。

Get-Process | Get-Member | Out-Host -Paging
TypeName: System.Diagnostics.Process

Name                           MemberType     Definition
----                           ----------     ----------
Handles                        AliasProperty  Handles = Handlecount
Name                           AliasProperty  Name = ProcessName
NPM                            AliasProperty  NPM = NonpagedSystemMemorySize
PM                             AliasProperty  PM = PagedMemorySize
VM                             AliasProperty  VM = VirtualMemorySize
WS                             AliasProperty  WS = WorkingSet
add_Disposed                   Method         System.Void add_Disposed(Event...
...

表示する要素をフィルター処理することで、この長い情報の一覧をより使いやすくすることができます。 Get-Member コマンドを使用すると、プロパティであるメンバーのみを一覧表示できます。 プロパティにはいくつかの形式があります。 このコマンドレットは、 MemberType パラメーターと値 Propertiesを使用して、型のプロパティを表示します。 結果のリストはまだ非常に長いですが、より管理しやすいです。

Get-Process | Get-Member -MemberType Properties
   TypeName: System.Diagnostics.Process

Name                       MemberType     Definition
----                       ----------     ----------
Handles                    AliasProperty  Handles = Handlecount
Name                       AliasProperty  Name = ProcessName
...
ExitCode                   Property       System.Int32 ExitCode {get;}
...
Handle                     Property       System.IntPtr Handle {get;}
...
CPU                        ScriptProperty System.Object CPU {get=$this.Total...
...
Path                       ScriptProperty System.Object Path {get=$this.Main...
...

Note

MemberType に指定できる値は、AliasProperty、CodeProperty、Property、NoteProperty、ScriptProperty、Properties、PropertySet、Method、CodeMethod、ScriptMethod、Methods、ParameterizedProperty、MemberSet、および All です。

プロセスには 60 を超えるプロパティがあります。 既定では、PowerShell は、名前が .format.ps1xml で終わる XML ファイルに格納されている情報を使用して、オブジェクトの種類を表示する方法を決定します。 プロセス オブジェクトの書式設定定義は、 DotNetTypes.format.ps1xmlに格納されます。

PowerShell に既定で表示されるプロパティ以外のプロパティを確認する必要がある場合は、 Format-* コマンドレットを使用して出力を書式設定できます。