Get-Member

Pobiera właściwości i metody obiektów.

Składnia

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

Opis

Polecenie Get-Member cmdlet pobiera elementy członkowskie, właściwości i metody obiektów.

Aby określić obiekt, użyj parametru InputObject lub potokuj obiekt do Get-Member. Aby uzyskać informacje na temat statycznych składowych, składowych klasy, a nie wystąpienia, użyj parametru Static . Aby uzyskać tylko niektóre typy elementów członkowskich, takich jak NoteProperties, użyj parametru MemberType .

Przykłady

Przykład 1. Pobieranie elementów członkowskich obiektów procesu

To polecenie wyświetla właściwości i metody obiektów usługi generowanych przez Get-Service polecenie cmdlet.

Get-Member Ponieważ część polecenia nie ma żadnych parametrów, używa wartości domyślnych dla parametrów. Domyślnie Get-Member nie pobiera statycznych ani wewnętrznych elementów członkowskich.

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();

Przykład 2. Pobieranie elementów członkowskich obiektów usługi

Ten przykład pobiera wszystkie elementy członkowskie (właściwości i metody) obiektów usługi pobranych przez Get-Service polecenie cmdlet, w tym składowe wewnętrzne, takie jak PSBase, PSObject, oraz metody get_ i set_ .

Get-Service | Get-Member -Force
(Get-Service Schedule).PSBase

Polecenie Get-Member używa parametru Force , aby dodać do wyświetlania wewnętrzne elementy członkowskie i elementy członkowskie generowane przez kompilator. Można użyć tych właściwości i metod w taki sam sposób, jak w przypadku metody dostosowanej obiektu. Drugie polecenie pokazuje, jak wyświetlić wartość właściwości PSBase usługi Schedule. Aby uzyskać więcej informacji na temat elementów wewnętrznych, zobacz about_Intrinsic_Members

Przykład 3. Uzyskiwanie rozszerzonych elementów członkowskich obiektów usługi

Ten przykład pobiera metody i właściwości obiektów usługi, które zostały rozszerzone przy użyciu Types.ps1xml pliku lub Add-Member polecenia cmdlet.

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();

Polecenie Get-Member używa parametru View , aby uzyskać tylko rozszerzone elementy członkowskie obiektów usługi. W tym przypadku rozszerzony element członkowski jest właściwością Name , która jest właściwością aliasu właściwości ServiceName .

Przykład 4. Pobieranie właściwości skryptu obiektów dziennika zdarzeń

Ten przykład pobiera właściwości skryptu obiektów dziennika zdarzeń w dzienniku systemu w Podgląd zdarzeń.

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 ...

Parametr MemberType pobiera tylko obiekty o wartości NoteProperty dla ich właściwości MemberType .

Polecenie zwraca właściwość Message obiektu EventLogRecord .

Przykład 5. Pobieranie obiektów z określoną właściwością

Ten przykład pobiera obiekty, które mają właściwość MachineName w danych wyjściowych z listy poleceń cmdlet.

Zmienna $list zawiera listę poleceń cmdlet do oceny. Instrukcja foreach wywołuje każde polecenie i wysyła wyniki do .Get-Member Parametr Name ogranicza wyniki z Get-Member do elementów członkowskich, które mają nazwę 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;}

Wyniki pokazują, że tylko obiekty przetwarzania i obiekty usługi mają właściwość MachineName .

Przykład 6. Pobieranie elementów członkowskich dla tablicy

W tym przykładzie pokazano, jak znaleźć elementy członkowskie tablicy obiektów. Podczas potoku i tablicy obiektów do Get-Memberpolecenia cmdlet zwraca listę elementów członkowskich dla każdego unikatowego typu obiektu w tablicy. W przypadku przekazania tablicy przy użyciu parametru InputObject tablica jest traktowana jako pojedynczy obiekt.

$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...
...

Zmienna $array zawiera obiekt Int32 i obiekt ciągu , jak widać, gdy tablica jest potokowa do Get-Member. Po $array przekazaniu przy użyciu parametru Get-MemberInputObject zwraca elementy członkowskie typu Object[].

Przykład 7. Określanie właściwości obiektu, które można ustawić

W tym przykładzie pokazano, jak określić, które właściwości obiektu można zmienić.

$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

Parametry

-Force

Dodaje wewnętrzne elementy członkowskie i metody get_ generowane przez kompilator i set_ do wyświetlania. Poniższa lista zawiera opis właściwości, które są dodawane podczas korzystania z parametru Force :

  • PSBase: oryginalne właściwości obiektu .NET bez rozszerzenia lub adaptacji. Są to właściwości zdefiniowane dla klasy obiektów.
  • PSAdapted: właściwości i metody zdefiniowane w rozszerzonym systemie typów programu PowerShell.
  • PSExtended: właściwości i metody, które zostały dodane w plikach Types.ps1xml lub za pomocą Add-Member polecenia cmdlet .
  • PSObject: adapter, który konwertuje obiekt podstawowy na obiekt PSObject programu PowerShell.
  • PSTypeNames: Lista typów obiektów opisujących obiekt w kolejności specyficznej. Podczas formatowania obiektu program PowerShell wyszukuje typy w plikach w Format.ps1xml katalogu instalacyjnym programu PowerShell ($PSHOME). Używa definicji formatowania dla pierwszego znalezionego typu.

Domyślnie pobiera te właściwości we wszystkich widokach z Get-Member wyjątkiem widoków Base i Adapt, ale nie wyświetla ich.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Określa obiekt, którego elementy członkowskie są pobierane.

Użycie parametru InputObject nie jest takie samo jak potokowanie obiektu do Get-Member. Różnice są następujące:

  • Podczas potoku kolekcji obiektów do Get-MemberGet-Member metody pobiera elementy członkowskie poszczególnych obiektów w kolekcji, takie jak właściwości każdego ciągu w tablicy ciągów.
  • Gdy używasz obiektu InputObject do przesyłania kolekcji obiektów, Get-Member pobiera elementy członkowskie kolekcji, takie jak właściwości tablicy w tablicy ciągów.
Type:PSObject
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-MemberType

Określa typ elementu członkowskiego, który otrzymuje to polecenie cmdlet. Wartość domyślna to All.

Dopuszczalne wartości dla tego parametru to:

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

Te wartości są definiowane jako wyliczenie oparte na flagach. Możesz połączyć wiele wartości ze sobą, aby ustawić wiele flag przy użyciu tego parametru. Wartości można przekazać do parametru MemberType jako tablicę wartości lub jako ciąg rozdzielany przecinkami tych wartości. Polecenie cmdlet połączy wartości przy użyciu operacji binary-OR. Przekazywanie wartości jako tablicy jest najprostszą opcją, a także umożliwia użycie uzupełniania tabulatorów na wartościach.

Aby uzyskać informacje o tych wartościach, zobacz PSMemberTypes, wyliczenie.

Nie wszystkie obiekty mają każdy typ elementu członkowskiego. Jeśli określisz typ elementu członkowskiego, którego obiekt nie ma, program PowerShell zwróci wartość null. Aby uzyskać powiązane typy elementów członkowskich, takie jak wszystkie rozszerzone elementy członkowskie, użyj parametru Wyświetl . Jeśli używasz parametru MemberType z parametrami statycznymi lub widokami , Get-Member pobiera elementy członkowskie należące do obu zestawów.

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
Accept pipeline input:False
Accept wildcard characters:False

-Name

Określa nazwy co najmniej jednej właściwości lub metod obiektu. Get-Member Pobiera tylko określone właściwości i metody.

Jeśli używasz parametru Name z parametrem MemberType, View lub Static , Get-Member pobiera tylko elementy członkowskie spełniające kryteria wszystkich parametrów.

Aby uzyskać statyczny element członkowski według nazwy, użyj parametru Static z parametrem Name .

Type:String[]
Position:0
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Static

Wskazuje, że to polecenie cmdlet pobiera tylko właściwości statyczne i metody obiektu. Właściwości statyczne i metody są definiowane w klasie obiektów, a nie w żadnym konkretnym wystąpieniu klasy.

Jeśli używasz parametru Static z parametrem View , parametr View zostanie zignorowany. Jeśli używasz parametru Static z parametrem MemberType , Get-Member pobiera tylko elementy członkowskie należące do obu zestawów.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-View

Określa, że to polecenie cmdlet pobiera tylko określone typy właściwości i metody. Określ co najmniej jedną wartość. Wartość domyślna to Adaptowana, Rozszerzona.

Dopuszczalne wartości dla tego parametru to:

  • Baza. Pobiera tylko oryginalne właściwości i metody obiektu .NET (bez rozszerzenia lub adaptacji).
  • Dostosowane. Pobiera tylko właściwości i metody zdefiniowane w rozszerzonym systemie typów programu PowerShell.
  • Rozszerzone. Pobiera tylko właściwości i metody, które zostały dodane w Types.ps1xml plikach lub za pomocą Add-Member polecenia cmdlet .
  • Wszystkie. Pobiera elementy członkowskie w widokach podstawowych, dostosowanych i rozszerzonych.

Parametr View określa pobrane elementy członkowskie, a nie tylko wyświetlanie tych elementów członkowskich.

Aby uzyskać określone typy składowe, takie jak właściwości skryptu, użyj parametru MemberType . Jeśli używasz parametrów MemberType i View w tym samym poleceniu, Get-Member pobiera elementy członkowskie należące do obu zestawów. Jeśli używasz parametrów Statyczne i Wyświetl w tym samym poleceniu, parametr Widok jest ignorowany.

Type:PSMemberViewTypes
Accepted values:Extended, Adapted, Base, All
Position:Named
Default value:Adapted, Extended
Accept pipeline input:False
Accept wildcard characters:False

Dane wejściowe

PSObject

Możesz przekazać dowolny obiekt do Get-Memberobiektu .

Dane wyjściowe

MemberDefinition

Get-Member Metoda zwraca obiekt dla każdej właściwości lub metody, która jest pobierana.

Uwagi

Informacje o obiekcie kolekcji można uzyskać za pomocą parametru InputObject lub potokowania obiektu poprzedzonego przecinkiem do Get-Member.

Możesz użyć zmiennej automatycznej $This w blokach skryptów, które definiują wartości nowych właściwości i metod. Zmienna $This odwołuje się do wystąpienia obiektu, do którego dodawane są właściwości i metody. Aby uzyskać więcej informacji na temat zmiennej $This , zobacz about_Automatic_Variables.

Jeśli przekażesz obiekt reprezentujący typ, na przykład literał typu, taki jak [int], Get-Member zwróć informacje o typie [System.RuntimeType] . Jednak w przypadku użycia parametru Get-MemberStatic zwraca statyczne elementy członkowskie określonego typu reprezentowanego System.RuntimeType przez wystąpienie.