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


Get-Member

Получает свойства и методы объектов.

Синтаксис

Get-Member
   [-InputObject <PSObject>]
   [[-Name] <String[]>]
   [-MemberType <PSMemberTypes>]
   [-View <PSMemberViewTypes>]
   [-Static]
   [-Force]
   [<CommonParameters>]

Описание

Командлет Get-Member получает члены, свойства и методы объектов .

Чтобы указать объект , используйте параметр InputObject или передайте объект в Get-Member. Чтобы получить сведения о статических членах, члены класса, а не экземпляра, используют параметр Static . Чтобы получить только определенные типы элементов, например NoteProperties, используйте параметр MemberType .

Примеры

Пример 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 отображения значения свойства PSBase службы расписания. Дополнительные сведения о встроенных членах см. в разделе 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-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

Параметры

-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 , параметр View игнорируется. При использовании параметра 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

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

PSObject

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

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

MemberDefinition

Get-Member возвращает объект для каждого свойства или метода, который получает его.

Примечания

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

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

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