Поделиться через


Get-Member

Возвращает свойства и методы объектов.

Синтаксис

Default (по умолчанию)

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-MemberInputObject возвращаются члены типа 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
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-InputObject

Указывает объект, элементы которого извлекаются.

Использование параметра InputObject не совпадает с отправкой объекта Get-Memberв . Различия приведены следующим образом:

  • При канале коллекции объектов Get-MemberGet-Member в коллекцию получает элементы отдельных объектов в коллекции, например свойства каждой строки в массиве строк.
  • При использовании InputObject для отправки коллекции объектов Get-Member получает элементы коллекции, такие как свойства массива в массиве строк.

Свойства параметра

Тип:PSObject
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:True
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-MemberType

Указывает тип члена, который получает этот командлет. Значение по умолчанию — All.

Допустимые значения для этого параметра:

  • AliasProperty
  • CodeProperty
  • Property
  • NoteProperty
  • ScriptProperty
  • Properties
  • PropertySet
  • Method
  • CodeMethod
  • ScriptMethod
  • Methods
  • ParameterizedProperty
  • MemberSet
  • Event
  • Dynamic
  • All

Эти значения определяются как перечисление, основанное на флагах. Можно объединить несколько значений, чтобы задать несколько флагов с помощью этого параметра. Значения можно передать параметру MemberType в виде массива значений или в виде строки, разделенной запятыми этих значений. Командлет объединяет значения с помощью операции binary-OR. Передача значений в виде массива является самым простым вариантом, а также позволяет использовать дополнение при нажатии Tab для значений.

Сведения об этих значениях см. в разделе "Перечисление PSMemberTypes".

Не все объекты имеют каждый тип элемента. Если указать тип члена, который у объекта нет, PowerShell возвращает значение NULL. Чтобы получить связанные типы элементов, например все расширенные члены, используйте параметр View. Если вы используете параметр MemberType со статическими параметрами или параметрами представления , Get-Member получает элементы, принадлежащие обоим наборам.

Свойства параметра

Тип:PSMemberTypes
Default value:None
Допустимые значения:AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet, Event, Dynamic, All
Поддерживаются подстановочные знаки:False
DontShow:False
Aliases:Тип

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Name

Задает имена одного или нескольких свойств или методов объекта. Get-Member получает только указанные свойства и методы.

Если вы используете параметр Name с параметром MemberType, View или Static , Get-Member получает только элементы, удовлетворяющие критериям всех параметров.

Чтобы получить статический элемент по имени, используйте параметр Static с параметром имени .

Свойства параметра

Тип:

String[]

Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:0
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Static

Указывает, что этот командлет получает только статические свойства и методы объекта. Статические свойства и методы определяются в классе объектов, а не в определенном экземпляре класса.

Если вы используете статический параметр с параметрами view или Force , командлет игнорирует эти параметры. Если вы используете статический параметр с параметром MemberType , Get-Member получает только элементы, принадлежащие обоим наборам.

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-View

Указывает, что этот командлет получает только определенные свойства и методы. Укажите одно или несколько значений. Значение по умолчанию — "Адаптировано", "Расширенный".

Допустимые значения для этого параметра:

  • Основа. Получает только исходные свойства и методы объекта .NET (без расширения или адаптации).
  • Адаптированный. Возвращает только свойства и методы, определенные в системе расширенных типов PowerShell.
  • Растянутый. Возвращает только свойства и методы, добавленные в Types.ps1xml файлы или с помощью командлета Add-Member .
  • Все. Возвращает элементы в базовых, адаптированных и расширенных представлениях.

Параметр представления определяет полученные элементы, а не только отображение этих элементов.

Чтобы получить определенные типы элементов, например свойства скрипта, используйте параметр MemberType. При использовании параметров MemberType и View в одной команде Get-Member возвращает элементы, принадлежащие обоим наборам. Если в той же команде используются статические , параметр View игнорируется.

Свойства параметра

Тип:PSMemberViewTypes
Default value:Adapted, Extended
Допустимые значения:Extended, Adapted, Base, All
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

CommonParameters

Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.

Входные данные

PSObject

Вы можете передать любой объект в этот cmdlet.

Выходные данные

MemberDefinition

Этот командлет возвращает MemberDefinition для каждого свойства или метода, который получает его.

Примечания

PowerShell включает следующие псевдонимы для Get-Member:

  • Все платформы:
    • gm

Сведения об объекте коллекции можно получить либо с помощью параметра InputObject , либо путем отправки объекта перед запятой Get-Member.

Вы можете использовать $this автоматическую переменную в блоках скриптов, определяющих значения новых свойств и методов. Переменная $this ссылается на экземпляр объекта, к которому добавляются свойства и методы. Дополнительные сведения об переменной $this см. в about_Automatic_Variables.

При передаче объекта, представляющего тип, например литерал типа, например [int], Get-Member возвращайте сведения о типе [System.RuntimeType] . Однако при использовании статического параметра Get-Member возвращает статические члены конкретного типа, представленные экземпляром System.RuntimeType .