Get-Member
Получает свойства и методы объектов.
Синтаксис
Get-Member
[-InputObject <PSObject>]
[[-Name] <String[]>]
[-MemberType <PSMemberTypes>]
[-View <PSMemberViewTypes>]
[-Static]
[-Force]
[<CommonParameters>]
Описание
Командлет Get-Member
получает члены, свойства и методы объектов .
Чтобы указать объект , используйте параметр InputObject или передайте объект в Get-Member
. Чтобы получить сведения о статических членах, члены класса, а не экземпляра , используйте параметр Static . Чтобы получить только определенные типы элементов, например NoteProperties, используйте параметр MemberType .
Get-Member
возвращает список элементов, отсортированных по алфавиту. Сначала перечислены методы, за которыми следуют свойства.
Примеры
Пример 1. Получение элементов объектов процесса
Эта команда отображает свойства и методы объектов службы, созданных командлетом Get-Service
.
Get-Member
Так как часть команды не имеет параметров, она использует значения по умолчанию для параметров. По умолчанию Get-Member
не получает статические или встроенные члены.
Get-Service | Get-Member
TypeName: System.Service.ServiceController#StartupType
Name MemberType Definition
---- ---------- ----------
Name AliasProperty Name = ServiceName
RequiredServices AliasProperty RequiredServices = ServicesDependedOn
Disposed Event System.EventHandler Disposed(System.Object, System.EventArgs)
Close Method void Close()
Continue Method void Continue()
Dispose Method void Dispose(), void IDisposable.Dispose()
Equals Method bool Equals(System.Object obj)
ExecuteCommand Method void ExecuteCommand(int command)
GetHashCode Method int GetHashCode()
GetLifetimeService Method System.Object GetLifetimeService()
GetType Method type GetType()
InitializeLifetimeService Method System.Object InitializeLifetimeService()
Pause Method void Pause()
Refresh Method void Refresh()
Start Method void Start(), void Start(string[] args)
Stop Method void Stop()
WaitForStatus Method void WaitForStatus(System.ServiceProcess.ServiceControllerSt...
BinaryPathName Property System.String {get;set;}
CanPauseAndContinue Property bool CanPauseAndContinue {get;}
CanShutdown Property bool CanShutdown {get;}
CanStop Property bool CanStop {get;}
Container Property System.ComponentModel.IContainer Container {get;}
DelayedAutoStart Property System.Boolean {get;set;}
DependentServices Property System.ServiceProcess.ServiceController[] DependentServices {get;}
Description Property System.String {get;set;}
DisplayName Property string DisplayName {get;set;}
MachineName Property string MachineName {get;set;}
ServiceHandle Property System.Runtime.InteropServices.SafeHandle ServiceHandle {get;}
ServiceName Property string ServiceName {get;set;}
ServicesDependedOn Property System.ServiceProcess.ServiceController[] ServicesDependedOn {get;}
ServiceType Property System.ServiceProcess.ServiceType ServiceType {get;}
Site Property System.ComponentModel.ISite Site {get;set;}
StartType Property System.ServiceProcess.ServiceStartMode StartType {get;}
StartupType Property Microsoft.PowerShell.Commands.ServiceStartupType {get;set;}
Status Property System.ServiceProcess.ServiceControllerStatus Status {get;}
UserName Property System.String {get;set;}
ToString ScriptMethod System.Object ToString();
Пример 2. Получение элементов объектов службы
В этом примере возвращаются все члены (свойства и методы) объектов службы, полученных командлетом Get-Service
, включая встроенные элементы, такие как PSBase, PSObject, а также методы get_ и set_ .
Get-Service | Get-Member -Force
(Get-Service Schedule).PSBase
Команда Get-Member
использует параметр Force , чтобы добавить встроенные элементы и созданные компилятором элементы объектов на отображение. Эти свойства и методы можно использовать так же, как и адаптированный метод объекта. Вторая команда показывает, как отобразить значение свойства PSBase службы Schedule. Дополнительные сведения о встроенных членах см. в разделе about_Intrinsic_Members
Пример 3. Получение расширенных элементов объектов службы
В этом примере возвращаются методы и свойства объектов службы, которые были расширены с помощью Types.ps1xml
файла или командлета Add-Member
.
Get-Service | Get-Member -View Extended
TypeName: System.Service.ServiceController#StartupType
Name MemberType Definition
---- ---------- ----------
Name AliasProperty Name = ServiceName
RequiredServices AliasProperty RequiredServices = ServicesDependedOn
ToString ScriptMethod System.Object ToString();
Команда Get-Member
использует параметр View , чтобы получить только расширенные члены объектов службы. В этом случае расширенным элементом является свойство Name , которое является свойством псевдонима свойства ServiceName .
Пример 4. Получение свойств скрипта объектов журнала событий
Этот пример получает свойства скрипта объектов журнала событий в системном журнале в Просмотр событий.
Get-WinEvent -LogName System -MaxEvents 1 | Get-Member -MemberType NoteProperty
TypeName: System.Diagnostics.Eventing.Reader.EventLogRecord
Name MemberType Definition
---- ---------- ----------
Message NoteProperty string Message=The machine-default permission settings do not grant Local ...
Параметр MemberType получает только объекты со значением NoteProperty
для их свойства MemberType .
Команда возвращает свойство Message объекта EventLogRecord .
Пример 5. Получение объектов с указанным свойством
В этом примере возвращаются объекты со свойством MachineName в выходных данных из списка командлетов.
Переменная $list
содержит список командлетов для вычисления. Оператор foreach
вызывает каждую команду и отправляет результаты в Get-Member
. Параметр Name ограничивает результаты только Get-Member
элементами с именем MachineName.
$list = "Get-Process", "Get-Service", "Get-Culture", "Get-PSDrive", "Get-ExecutionPolicy"
foreach ($cmdlet in $list) {& $cmdlet | Get-Member -Name MachineName}
TypeName: System.Diagnostics.Process
Name MemberType Definition
---- ---------- ----------
MachineName Property string MachineName {get;}
TypeName: System.Service.ServiceController#StartupType
Name MemberType Definition
---- ---------- ----------
MachineName Property string MachineName {get;set;}
Результаты показывают, что только объекты process и объекты службы имеют свойство MachineName .
Пример 6. Получение элементов для массива
В этом примере показано, как найти элементы массива объектов . При конвейере и массива объектов Get-Member
в командлет возвращает список элементов для каждого уникального типа объекта в массиве.
При передаче массива с помощью параметра InputObject массив обрабатывается как один объект.
$array = @(1,'hello')
$array | Get-Member
TypeName: System.Int32
Name MemberType Definition
---- ---------- ----------
CompareTo Method int CompareTo(System.Object value), int CompareTo(int value), int ICompar...
Equals Method bool Equals(System.Object obj), bool Equals(int obj), bool IEquatable[int...
GetHashCode Method int GetHashCode()
GetType Method type GetType()
GetTypeCode Method System.TypeCode GetTypeCode(), System.TypeCode IConvertible.GetTypeCode()
ToBoolean Method bool IConvertible.ToBoolean(System.IFormatProvider provider)
ToByte Method byte IConvertible.ToByte(System.IFormatProvider provider)
...
TypeName: System.String
Name MemberType Definition
---- ---------- ----------
Clone Method System.Object Clone(), System.Object ICloneable.Clone()
CompareTo Method int CompareTo(System.Object value), int CompareTo(str...
Contains Method bool Contains(string value), bool Contains(string val...
CopyTo Method void CopyTo(int sourceIndex, char[] destination, int ...
EndsWith Method bool EndsWith(string value), bool EndsWith(string val...
EnumerateRunes Method System.Text.StringRuneEnumerator EnumerateRunes()
Equals Method bool Equals(System.Object obj), bool Equals(string va...
GetEnumerator Method System.CharEnumerator GetEnumerator(), System.Collect...
GetHashCode Method int GetHashCode(), int GetHashCode(System.StringCompa...
...
Get-Member -InputObject $array
TypeName: System.Object[]
Name MemberType Definition
---- ---------- ----------
Add Method int IList.Add(System.Object value)
Address Method System.Object&, System.Private.CoreLib, Version=4.0.0.0, Cu...
Clear Method void IList.Clear()
Clone Method System.Object Clone(), System.Object ICloneable.Clone()
CompareTo Method int IStructuralComparable.CompareTo(System.Object other, Sy...
...
Переменная $array
содержит объект Int32 и строковый объект, как видно, когда массив передается в Get-Member
. При $array
передаче с помощью параметра Get-Member
InputObject возвращаются члены типа Object[].
Пример 7. Определение свойств объекта, которые можно задать
В этом примере показано, как определить, какое из свойств объекта можно изменить.
$File = Get-Item c:\test\textFile.txt
$File.PSObject.Properties | Where-Object isSettable | Select-Object -Property Name
Name
----
PSPath
PSParentPath
PSChildName
PSDrive
PSProvider
PSIsContainer
IsReadOnly
CreationTime
CreationTimeUtc
LastAccessTime
LastAccessTimeUtc
LastWriteTime
LastWriteTimeUtc
Attributes
Пример 8. Перечисление свойств объекта в порядке их создания
В этом примере создается новый объект PSObject и добавляются к нему свойства. Get-Member
выводит список свойств в алфавитном порядке. Чтобы просмотреть свойства в том порядке, в который они были добавлены в объект , необходимо использовать встроенный элемент PSObject .
$Asset = New-Object -TypeName PSObject
$d = [ordered]@{Name="Server30";System="Server Core";PSVersion="4.0"}
$Asset | Add-Member -NotePropertyMembers $d -TypeName Asset
$Asset.PSObject.Properties | Select-Object Name, Value
Name Value
---- -----
Name Server30
System Server Core
PSVersion 4.0
Параметры
-Force
Добавляет встроенные члены и созданные компилятором методы get_ и set_ на отображение. В следующем списке описаны свойства, которые добавляются при использовании параметра Force :
PSBase
: исходные свойства объекта .NET без расширения или адаптации. Это свойства, определенные для класса объекта.PSAdapted
: свойства и методы, определенные в системе расширенных типов PowerShell.PSExtended
: свойства и методы, добавленные вTypes.ps1xml
файлы или с помощью командлетаAdd-Member
.PSObject
: адаптер, преобразующий базовый объект в объект POWERShell PSObject .PSTypeNames
: список типов объектов, описывающих объект в порядке специфичности. При форматировании объекта PowerShell ищет типы в файлахFormat.ps1xml
в каталоге установки PowerShell ($PSHOME
). Определение форматирования используется для первого найденного типа.
По умолчанию получает эти свойства во всех представлениях, Get-Member
кроме базовых и адаптированных, но не отображает их.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Указывает объект с полученными членами.
Использование параметра InputObject — это не то же самое, что передача объекта в Get-Member
. Различия заключаются в следующем.
- При конвейере коллекции объектов
Get-Member
в получаетGet-Member
элементы отдельных объектов в коллекции, например свойства каждой строки в массиве строк. - При использовании InputObject для отправки коллекции объектов
Get-Member
получает элементы коллекции, например свойства массива в массиве строк.
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-MemberType
Указывает тип члена, который получает этот командлет. Значение по умолчанию — All
.
Допустимые значения для этого параметра:
AliasProperty
CodeProperty
Property
NoteProperty
ScriptProperty
Properties
PropertySet
Method
CodeMethod
ScriptMethod
Methods
ParameterizedProperty
MemberSet
Event
Dynamic
All
Эти значения определяются как перечисление на основе флагов. С помощью этого параметра можно объединить несколько значений, чтобы задать несколько флагов. Значения могут передаваться в параметр MemberType в виде массива значений или в виде строки этих значений, разделенной запятыми. Командлет объединит значения с помощью операции binary-OR. Передача значений в виде массива является самым простым вариантом, а также позволяет использовать заполнение табуляции для значений.
Дополнительные сведения об этих значениях см. в разделе Перечисление PSMemberTypes.
Не у всех объектов имеются члены всех типов. Если указать тип элемента, отсутствующего у объекта, PowerShell возвращает значение NULL. Чтобы получить связанные типы членов, например все расширенные элементы, используйте параметр View. При использовании параметра MemberType с параметрами Static или View получает элементы, Get-Member
принадлежащие обоим наборам.
Type: | PSMemberTypes |
Aliases: | Type |
Accepted values: | AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet, Event, Dynamic, All |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Name
Указывает имя одного или нескольких свойств или методов объекта. Get-Member
возвращает только указанные свойства и методы.
При использовании параметра Name с параметром MemberType, View или Static получает только элементы, Get-Member
удовлетворяющие критериям всех параметров.
Чтобы получить статический член по имени, используйте параметр Static с параметром Name .
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Static
Указывает, что этот командлет получает только статические свойства и методы объекта . Статические свойства и методы определяются по классу объекта, а не по отдельному экземпляру класса.
Если вы используете параметр Static с параметрами View или Force , командлет игнорирует эти параметры. При использовании параметра Static с параметром MemberType возвращает только элементы, Get-Member
принадлежащие обоим наборам.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-View
Указывает, что этот командлет получает только определенные свойства и методы типов. Укажите одно или несколько значений. Значение по умолчанию — Адаптировано, Расширено.
Допустимые значения для этого параметра:
- База. Возвращает только исходные свойства и методы объекта .NET (без расширения или адаптации).
- Адаптированы. Возвращает только свойства и методы, определенные в системе расширенных типов PowerShell.
- Расширенные. Возвращает только свойства и методы, добавленные в
Types.ps1xml
файлы или с помощью командлетаAdd-Member
. - Все. Получает элементы представлений Base, Adapted и Extended.
Параметр View определяет извлеченные элементы, а не только отображение этих элементов.
Чтобы получить определенные типы элементов, например свойства скрипта, используйте параметр MemberType . При использовании параметров MemberType и View в одной команде возвращает элементы, Get-Member
принадлежащие обоим наборам. При использовании параметров Static и View в одной команде параметр View игнорируется.
Type: | PSMemberViewTypes |
Accepted values: | Extended, Adapted, Base, All |
Position: | Named |
Default value: | Adapted, Extended |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Входные данные
Вы можете передать любой объект в этот командлет.
Выходные данные
Этот командлет возвращает свойство MemberDefinition для каждого свойства или метода, которые он получает.
Примечания
PowerShell включает следующие псевдонимы для Get-Member
:
- Для всех платформ.
gm
Сведения об объекте коллекции можно получить с помощью параметра InputObject или путем отправки объекта перед запятой в Get-Member
.
Автоматическую $This
переменную можно использовать в блоках скриптов, определяющих значения новых свойств и методов. Переменная $This
ссылается на экземпляр объекта , к которому добавляются свойства и методы. Дополнительные сведения о переменной см. в $This
разделе about_Automatic_Variables.
При передаче объекта, представляющего тип, например литерала типа, например [int]
, Get-Member
возвращаются сведения о типе [System.RuntimeType]
. Однако при использовании параметра Static возвращает статические члены определенного типа, Get-Member
представленного экземпляром System.RuntimeType
.