Так как объекты играют центральную роль в Windows PowerShell, имеется несколько собственных команд, предназначенных для работы с объектами произвольного типа. Наиболее важной из них является команда Get-Member .

Наиболее простой техникой анализа объектов, возвращаемых командой, является передача вывода этой команды по конвейеру на командлет Get-Member . Командлет Get-Member отображает формальное имя типа объекта и полный список его членов. Количество возвращаемых элементов иногда может быть очень большим. Например, объект процесса может иметь более 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 позволяет перечислять только элементы, являющиеся свойствами. Имеется несколько форм свойств. Если в качестве значения параметра MemberType командлета Get-Member задается Properties, командлет отображает свойства любого типа. Окончательный список все еще очень длинный, но он является немного более управляемым:

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 определяет способ отображения объекта определенного типа, используя информацию, хранимую в XML-файлах, имена которых заканчиваются на .format.ps1xml. Данные форматирования для объектов процесса, являющихся объектами .NET System.Diagnostics.Process, хранятся в файле PowerShellCore.format.ps1xml.

Если необходимо просмотреть свойства, отличные от тех, которые Windows PowerShell отображает по умолчанию, пользователь должен будет сам отформатировать вывод. Это можно сделать при помощи командлетов форматирования.