正因物件在 Windows PowerShell 中扮演如此關鍵的角色,有許多原生命令都是設計用來處理各種物件類型。其中最重要的是 Get-Member 命令。

要分析命令所傳回的物件,最簡單的技巧是將該命令的輸出傳送給 Get-Member Cmdlet。Get-Member Cmdlet 會顯示物件類型的正式名稱及其成員的完整清單。傳回的元素數目有時候可能會很多。例如,處理序物件可能有 100 個以上的成員。

若要檢視處理序物件的所有成員,並採分頁方式顯示輸出以便檢視全部,請輸入:

PS> 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 命令可讓您只列出屬性成員。屬性包含多種形式。若將 Get-Member MemberType 參數值設定為 Properties,此 Cmdlet 會顯示所有類型的屬性。結果清單仍然很長,但是稍微比較容易掌控:

PS> 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。

處理序有 60 種以上的屬性。Windows PowerShell 對於任何常見的物件通常只顯示少數屬性,原因是全部顯示會產生難以掌控的資訊量。

附註:

Windows PowerShell 使用檔名結尾為 .format.ps1xml 的 XML 檔案中儲存的資訊決定如何顯示物件。處理序物件是 .NET System.Diagnostics.Process 物件,其格式化資料儲存在 PowerShellCore.format.ps1xml 中。

若您需要查看非 Windows PowerShell 預設顯示的屬性,必須自行將輸出資料格式化。使用格式化 (Format) cmdlet 即可達成此目的。




目錄