由於物件在 PowerShell 中扮演極為核心的角色,因此有幾個原生指令設計用來支援任意物件類型。 最重要的是指令 Get-Member 。
分析命令所傳回物件最簡單的方法,就是將該命令的輸出透過管線傳送給 Get-Member cmdlet。 這個 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 預設顯示的屬性以外的屬性,可以用 cmdlet 格式化輸出 Format-* 。