由于在 Windows PowerShell 中对象的作用十分重要,因此存在多个专为处理任意对象类型而设计的本机命令。其中最重要的一个命令是 Get-Member 命令。
用于分析命令所返回对象的最简单的一种方法是通过管道将该命令的输出传递给 Get-Member cmdlet。Get-Member cmdlet 将显示对象类型的正式名称及其成员的完整列表。有时,所返回的元素数可能十分巨大。例如,进程对象可能有超过 100 个成员。
若要查看 Process 对象的所有成员并将输出分页显示,以便能够查看完整的该对象,请键入:
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 默认情况下所显示属性之外的其他属性,则您需要自己设置输出数据的格式。可以使用格式 cmdlet 来执行此操作。