正因物件在 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 即可達成此目的。