Menampilkan Struktur Objek (Get-Member)

Karena objek memainkan peran pusat seperti itu di PowerShell, ada beberapa perintah asli yang dirancang untuk bekerja dengan jenis objek arbitrer. Yang paling penting adalah Get-Member perintah .

Teknik paling sederhana untuk menganalisis objek yang dikembalikan perintah adalah menyalurkan output perintah tersebut ke Get-Member cmdlet. Get-Member Cmdlet menunjukkan nama formal jenis objek dan daftar lengkap anggotanya. Jumlah elemen yang dikembalikan terkadang bisa luar biasa. Misalnya, objek proses dapat memiliki lebih dari 100 anggota.

Untuk melihat semua anggota objek Proses dan halaman output sehingga Anda dapat melihat semua itu, ketik:

Get-Process | Get-Member | Out-Host -Paging

Output dari perintah ini akan terlihat seperti ini:

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...
...

Kita dapat membuat daftar panjang informasi ini lebih dapat digunakan dengan memfilter elemen yang ingin kita lihat. Perintah ini Get-Member memungkinkan Anda hanya mencantumkan anggota yang merupakan properti. Ada beberapa bentuk properti. Cmdlet menampilkan properti dari jenis apa pun jika kita mengatur parameter MemberType ke nilai Properti. Daftar yang dihasilkan masih sangat panjang, tetapi sedikit lebih mudah dikelola:

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...
...

Catatan

Nilai yang diizinkan dari MemberType adalah AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet, dan All.

Ada lebih dari 60 properti untuk sebuah proses. Alasan PowerShell sering menunjukkan hanya beberapa properti untuk objek terkenal apa pun adalah bahwa menunjukkan semuanya akan menghasilkan sejumlah informasi yang tidak dapat dikelola.

Catatan

PowerShell menentukan cara menampilkan jenis objek dengan menggunakan informasi yang disimpan dalam file XML yang memiliki nama yang berakhiran .format.ps1xml. Data pemformatan untuk objek proses, yaitu objek .NET System.Diagnostics.Process, disimpan dalam DotNetTypes.format.ps1xml.

Jika Anda perlu melihat properti selain properti yang ditampilkan PowerShell secara default, Anda harus memformat data output sendiri. Ini dapat dilakukan dengan menggunakan cmdlet format.