Просмотр структуры объектов
Поскольку объекты играют ключевую роль в PowerShell, существует несколько собственных команд для работы с произвольными типами объектов. Самое важное — это Get-Member
команда.
Самый простой способ анализа объектов, возвращаемых командой, — передать выходные данные этой команды командлету Get-Member
. Командлет Get-Member
показывает официальное имя типа объекта и полный список его членов. Количество возвращаемых элементов иногда может быть просто огромным. Например, объект процесса может иметь более ста элементов.
Следующая команда позволяет просматривать все члены объекта 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...
...
Примечание.
Для MemberType разрешены следующие значения: AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet и All.
Для процесса существует более 60 свойств. По умолчанию PowerShell определяет, как отображать тип объекта с помощью сведений, хранящихся в XML-файлах с именами, заканчивающимися .format.ps1xml
. Определение форматирования для объектов процесса хранится в DotNetTypes.format.ps1xml
.
Если вам нужно просмотреть свойства, отличные от свойств, отображаемых PowerShell по умолчанию, можно отформатировать выходные данные с помощью Format-*
командлетов.
PowerShell