オブジェクトの構造の表示
オブジェクトは、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
コマンドを使用すると、プロパティであるメンバーのみを一覧表示できます。 プロパティにはいくつかの形式があります。 このコマンドレットで、値が Properties
の MemberType パラメーターを使うと、型のプロパティを表示できます。 結果の一覧はまだ非常に長いものですが、管理はしやすくなります。
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...
...
注意
MemberType の指定できる値は、AliasProperty、CodeProperty、Property、NoteProperty、ScriptProperty、Properties、PropertySet、Method、CodeMethod、ScriptMethod、Methods、ParameterizedProperty、MemberSet、および All です。
1 つのプロセスに対して 60 を超えるプロパティがあります。 PowerShell の既定では、名前の末尾が .format.ps1xml
である XML ファイルに格納されている情報を使って、オブジェクトの種類を表示する方法を決定します。 プロセス オブジェクトの書式設定の定義は、DotNetTypes.format.ps1xml
に格納されています。
PowerShell の既定で表示される以外のプロパティを確認する必要がある場合は、Format-*
コマンドレットを使って出力を書式設定することができます。
PowerShell