Get-Member
Получает свойства и методы объектов.
Синтаксис
Get-Member
[-InputObject <PSObject>]
[[-Name] <String[]>]
[-MemberType <PSMemberTypes>]
[-View <PSMemberViewTypes>]
[-Static]
[-Force]
[<CommonParameters>]
Описание
Командлет Get-Member
получает элементы, свойства и методы объектов.
Чтобы указать объект, используйте параметр InputObject или передайте объект Get-Member
в . Чтобы получить сведения о статических членах, члены класса, а не экземпляра, используйте статический параметр. Чтобы получить только определенные типы элементов, например 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;}
В результатах показано, что только объекты обработки и объекты службы имеют свойство 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
кроме Base и Adapted, но не отображает их.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-InputObject
Указывает объект с полученными членами.
Использование параметра InputObject не совпадает с отправкой объекта Get-Member
в . Имеются следующие различия:
- При канале коллекции объектов
Get-Member
Get-Member
в коллекцию получает элементы отдельных объектов в коллекции, например свойства каждой строки в массиве строк. - При использовании InputObject для отправки коллекции объектов
Get-Member
получает элементы коллекции, такие как свойства массива в массиве строк.
Тип: | PSObject |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | 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 со статическими параметрами или параметрами представления , Get-Member
получает элементы, принадлежащие обоим наборам.
Тип: | PSMemberTypes |
Aliases: | Type |
Допустимые значения: | AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet, Event, Dynamic, All |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Name
Указывает имя одного или нескольких свойств или методов объекта. Get-Member
получает только указанные свойства и методы.
Если вы используете параметр Name с параметром MemberType, View или Static, Get-Member
получает только элементы, удовлетворяющие критериям всех параметров.
Чтобы получить статический член по имени, используйте статический параметр с параметром Name .
Тип: | String[] |
Position: | 0 |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Static
Указывает, что этот командлет получает только статические свойства и методы объекта. Статические свойства и методы определяются по классу объекта, а не по отдельному экземпляру класса.
Если вы используете статический параметр с параметрами view или Force, командлет игнорирует эти параметры. Если вы используете статический параметр с параметром MemberType, Get-Member
получает только элементы, принадлежащие обоим наборам.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-View
Указывает, что этот командлет получает только определенные свойства и методы. Укажите одно или несколько значений. Значение по умолчанию — "Адаптировано", "Расширенный".
Допустимые значения для этого параметра:
- База. Получает только исходные свойства и методы объекта .NET (без расширения или адаптации).
- Адаптированный. Возвращает только свойства и методы, определенные в системе расширенных типов PowerShell.
- Растянутый. Возвращает только свойства и методы, добавленные в
Types.ps1xml
файлы или с помощью командлетаAdd-Member
. - Все. Получает элементы представлений Base, Adapted и Extended.
Параметр View определяет извлеченные элементы, а не только отображение этих элементов.
Чтобы получить определенные типы элементов, например свойства скрипта, используйте параметр MemberType . При использовании параметров MemberType и View в одной команде Get-Member
возвращает элементы, принадлежащие обоим наборам. Если вы используете параметры статического и представления в той же команде, параметр View игнорируется.
Тип: | PSMemberViewTypes |
Допустимые значения: | Extended, Adapted, Base, All |
Position: | Named |
Default value: | Adapted, Extended |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
Входные данные
Вы можете передать любой объект в этот командлет.
Выходные данные
Этот командлет возвращает MemberDefinition для каждого свойства или метода, который получает его.
Примечания
PowerShell включает следующие псевдонимы для Get-Member
:
- Все платформы:
gm
Сведения об объекте коллекции можно получить либо с помощью параметра InputObject , либо путем отправки объекта перед запятой Get-Member
.
Вы можете использовать автоматическую $This
переменную в блоках скриптов, определяющих значения новых свойств и методов. Переменная $This
ссылается на экземпляр объекта, к которому добавляются свойства и методы. Дополнительные сведения об переменной $This
см. в about_Automatic_Variables.
При передаче объекта, представляющего тип, например литерал типа, например [int]
, Get-Member
возвращайте сведения о типе [System.RuntimeType]
. Однако при использовании статического параметра Get-Member
возвращает статические члены конкретного типа, представленные экземпляром System.RuntimeType
.
Связанные ссылки
PowerShell