Udostępnij za pośrednictwem


Get-Member

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

Składnia

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

Opis

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

Aby określić obiekt, użyj parametru InputObject lub potoku obiektu, aby get-member. Aby uzyskać informacje o statycznych elementach członkowskich, 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

PS> Get-Service | Get-Member
TypeName: System.ServiceProcess.ServiceController
Name                      MemberType    Definition
----                      ----------    ----------
Name                      AliasProperty Name = ServiceName
Close                     Method        System.Void Close()
Continue                  Method        System.Void Continue()
CreateObjRef              Method        System.Runtime.Remoting.ObjRef CreateObjRef(Type requestedType)
Dispose                   Method        System.Void Dispose()
Equals                    Method        System.Boolean Equals(Object obj)
ExecuteCommand            Method        System.Void ExecuteCommand(Int32 command)
GetHashCode               Method        System.Int32 GetHashCode()
GetLifetimeService        Method        System.Object GetLifetimeService()
GetType                   Method        System.Type GetType()
InitializeLifetimeService Method        System.Object InitializeLifetimeService()
Pause                     Method        System.Void Pause()
Refresh                   Method        System.Void Refresh()
Start                     Method        System.Void Start(), System.Void Start(String[] args)
Stop                      Method        System.Void Stop()
ToString                  Method        System.String ToString()
WaitForStatus             Method        System.Void WaitForStatus(ServiceControllerStatus desiredStatus), System.Voi...
CanPauseAndContinue       Property      System.Boolean CanPauseAndContinue {get;}
CanShutdown               Property      System.Boolean CanShutdown {get;}
CanStop                   Property      System.Boolean CanStop {get;}
Container                 Property      System.ComponentModel.IContainer Container {get;}
DependentServices         Property      System.ServiceProcess.ServiceController[] DependentServices {get;}
DisplayName               Property      System.String DisplayName {get;set;}
MachineName               Property      System.String MachineName {get;set;}
ServiceHandle             Property      System.Runtime.InteropServices.SafeHandle ServiceHandle {get;}
ServiceName               Property      System.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;}
Status                    Property      System.ServiceProcess.ServiceControllerStatus Status {get;}

To polecenie wyświetla właściwości i metody obiektów procesu (System.ServiceProcess.ServiceController), które są generowane przez polecenie cmdlet Get-Service.

Polecenie używa operatora potoku (|) do wysyłania danych wyjściowych polecenia Get-Service w celu get-member.

Ponieważ części polecenia Get-Member nie ma żadnych parametrów, używa wszystkich wartości domyślnych. W związku z tym pobiera wszystkie typy składowych, ale nie pobiera statycznych elementów członkowskich i nie wyświetla składowych wewnętrznych.

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

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

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

Pierwsze polecenie używa polecenia cmdlet Get-Service w celu pobrania obiektów reprezentujących usługi w systemie. Używa operatora potoku (|) do przekazania obiektów usługi do polecenia cmdlet Get-Member.

Polecenie Get-Member używa parametru Force, aby dodać wewnętrzne elementy członkowskie i elementy członkowskie generowane przez kompilator obiektów do wyświetlania. get-member pobiera tych członków, ale domyślnie je ukrywa.

Można użyć tych właściwości i metod w taki sam sposób, jak w przypadku zastosowania dostosowanej metody obiektu. Drugie polecenie pokazuje, jak wyświetlić wartość właściwości PSBase usługi Schedule.

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

PS> Get-Service| Get-Member -View Extended
TypeName: System.ServiceProcess.ServiceController
Name MemberType    Definition
---- ----------    ----------
Name AliasProperty Name = ServiceName

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

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ń

PS> Get-EventLog -Log System | Get-Member -MemberType ScriptProperty
TypeName: System.Diagnostics.EventLogEntry
Name    MemberType     Definition
----    ----------     ----------
EventID ScriptProperty System.Object EventID {get=$this.get_EventID() -band 0xFFFF;}

To polecenie pobiera właściwości skryptu obiektów dziennika zdarzeń w dzienniku systemu w Podglądzie zdarzeń.

Polecenie używa parametru MemberType, aby uzyskać tylko obiekty o wartości ScriptProperty dla właściwości MemberType.

Polecenie zwraca właściwość EventID obiektu EventLog.

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

PS> $A = "Get-Process", "Get-Service", "Get-Culture", "Get-PSDrive", "Get-ExecutionPolicy"
PS> ForEach ($Cmdlet in $A) {Invoke-Command $Cmdlet | Get-Member -Name MachineName}
TypeName: System.Diagnostics.Process
Name        MemberType Definition
----        ---------- ----------
MachineName Property   System.String MachineName {get;}
TypeName: System.ServiceProcess.ServiceController
Name        MemberType Definition
----        ---------- ----------
MachineName Property   System.String MachineName {get;set;}

To polecenie pobiera obiekty, które mają właściwość MachineName z listy poleceń cmdlet.

Pierwsze polecenie przechowuje nazwy kilku poleceń cmdlet w zmiennej $A.

Drugie polecenie używa instrukcji ForEach, aby wywołać każde polecenie, wysłać wyniki do get-memberi ograniczyć wyniki z Get-Member do członków o nazwie MachineName.

Wyniki pokazują, że tylko obiekty przetwarzania (System.Diagnostics.Process) i obiekty usługi (System.ServiceProcess.ServiceController) mają właściwość MachineName.

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

PS> $A = @(1)
PS> $A.Count
1
PS> Get-Member -InputObject $A
TypeName: System.Object[]
Name               MemberType    Definition
----               ----------    ----------
Count              AliasProperty Count = Length
Address            Method        System.Object& Address(Int32 )
Clone              Method        System.Object Clone()
...
PS> $A = @(1,2,3)
PS> Get-Member -InputObject $A
TypeName: System.Object[]
Name               MemberType    Definition
----               ----------    ----------
Count              AliasProperty Count = Length
Address            Method        System.Object& Address(Int32 )
Clone              Method        System.Object Clone()
...
PS> $A.Count
3

W tym przykładzie pokazano, jak znaleźć właściwości i metody tablicy obiektów, gdy masz tylko jeden obiekt danego typu.

Ponieważ celem polecenia jest znalezienie właściwości tablicy, pierwsze polecenie używa parametru InputObject. Używa symbolu at (@), aby wskazać tablicę. W takim przypadku tablica zawiera tylko jeden obiekt , liczbę całkowitą 1.

Trzecie polecenie używa polecenia cmdlet Get-Member w celu pobrania właściwości i metod tablicy liczb całkowitych, a polecenie zapisuje je w zmiennej $A.

Czwarte polecenie używa właściwości Count tablicy, aby znaleźć liczbę obiektów w zmiennej $A.

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

PS> $File = Get-Item c:\test\textFile.txt
PS> $File.psobject.properties | Where-Object {$_.issettable} | Format-Table -Property name
Name
----
PSPath
PSParentPath
PSChildName
PSDrive
PSProvider
PSIsContainer
IsReadOnly
CreationTime
CreationTimeUtc
LastAccessTime
LastAccessTimeUtc
LastWriteTime
LastWriteTimeUtc
Attributes
PS> [appdomain]::CurrentDomain.GetAssemblies() | ForEach-Object { $_.getexportedtypes() } | ForEach-Object {$_.getproperties() | Where-Object {$_.canwrite }} | Select-Object reflectedtype, name

W tym przykładzie pokazano, jak określić, które właściwości obiektu można zmienić. W tym przykładzie użyto pliku, ale można użyć tego formatu polecenia, aby znaleźć właściwości, które można zmienić dla dowolnego obiektu w programie Windows PowerShell.

Pierwsze polecenie używa polecenia cmdlet Get-Item do pobrania pliku tekstowego, a następnie zapisuje obiekt pliku w zmiennej $File.

Drugie polecenie pobiera wszystkie możliwe do zmiany właściwości obiektu pliku w zmiennej $File i wyświetla nazwy właściwości w tabeli.

Trzecie polecenie pobiera zmienialne właściwości wszystkich obiektów w sesji programu Windows PowerShell.

Przykład 8. Pobieranie elementów członkowskich każdego elementu w kolekcji

PS> $S = Get-Service
PS> $S | Get-Member
TypeName: System.ServiceProcess.ServiceController
Name                      MemberType    Definition
----                      ----------    ----------
Name                      AliasProperty Name = ServiceName
RequiredServices          AliasProperty RequiredServices = ServicesDependedOn
Disposed                  Event         System.EventHandler Disposed(System.Object, System.EventArgs
Close                     Method        System.Void Close()
Continue                  Method        System.Void Continue()
CreateObjRef              Method        System.Runtime.Remoting.ObjRef CreateObjRef(type requestedTy
Dispose                   Method        System.Void Dispose()
...
PS> Get-Member -InputObject $S
TypeName: System.Object[]
Name           MemberType    Definition
----           ----------    ----------
Count          AliasProperty Count = Length
Address        Method        System.Object&, mscorlib, Version=2.0.0.0, Cultu
Clone          Method        System.Object Clone()
CopyTo         Method        System.Void CopyTo(array array, int index), Syst
Equals         Method        bool Equals(System.Object obj)
Get            Method        System.Object Get(int )
GetEnumerator  Method        System.Collections.IEnumerator GetEnumerator()
GetHashCode    Method        int GetHashCode()
...

W tym przykładzie pokazano, jak parametr InputObject działa w get-member polecenia cmdlet. Jeśli używasz parametru InputObject, aby pobrać elementy członkowskie kolekcji, get-member pobiera elementy członkowskie kolekcji. Podczas potoku kolekcji obiektów do get-memberGet-Member pobiera elementy członkowskie w kolekcji.

Pierwsze polecenie pobiera usługi na komputerze lokalnym i zapisuje usługi w zmiennej $S.

Drugie polecenie potokuje zmienną $S do polecenia cmdlet Get-Member. get-member pobiera typy każdego elementu członkowskiego $S i składowych tego typu. W takim przypadku pobiera on obiekty ServiceController i wyświetla listę elementów członkowskich, takich jak RequiredServices i Close.

Trzecie polecenie używa parametru InputObjectGet-Member w celu przesłania zmiennej $S. get-member pobiera typ (System.Object[]) oraz elementy członkowskie kolekcji (lub tablicy) obiektów ServiceController, takich jak Liczba i Klon.

Parametry

-Force

Dodaje wewnętrzne elementy członkowskie (PSBase, PSAdapted, PSObject, PSTypeNames) oraz metody get_ generowane przez kompilator i set_ do wyświetlania. Domyślnie get-member pobiera te właściwości we wszystkich widokach innych niż Base i Adapt, ale nie wyświetla ich.

Na poniższej liście opisano właściwości dodawane podczas używania parametru Force:

  • PSBase: oryginalne właściwości obiektu .NET Framework bez rozszerzenia lub adaptacji. Są to właściwości zdefiniowane dla klasy obiektów i wymienione w witrynie MSDN.
  • PSAdapted. Właściwości i metody zdefiniowane w rozszerzonym systemie typów programu Windows PowerShell.
  • PSExtended. Właściwości i metody, które zostały dodane w plikach Types.ps1xml lub za pomocą polecenia cmdlet Add-Member.
  • OBIEKT PSObject. Adapter, który konwertuje obiekt podstawowy na obiekt programu Windows PowerShellPSObject.
  • PSTypeNames. Lista typów obiektów opisujących obiekt w kolejności specyficznej. Podczas formatowania obiektu program Windows PowerShell wyszukuje typy w plikach Format.ps1xml w katalogu instalacyjnym programu Windows PowerShell ($pshome). Używa definicji formatowania dla pierwszego znalezionego typu.
Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-InputObject

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

Użycie parametru InputObject nie jest takie samo jak potokowanie obiektu w celu get-member. Różnice są następujące:

  • Podczas potoku kolekcji obiektów do get-memberGet-Member 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.
  • Jeśli używasz 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.
Typ:PSObject
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-MemberType

Określa typ elementu członkowskiego pobierany przez to polecenie cmdlet. Wartość domyślna to Wszystkie.

Dopuszczalne wartości tego parametru to:

  • AliasProperty
  • CodeProperty
  • Własność
  • UwagaWłaściwość
  • ScriptProperty
  • Właściwości
  • WłaściwośćSet
  • Metoda
  • CodeMethod
  • ScriptMethod
  • Metody
  • ParametrizedProperty
  • Zestaw elementów członkowskich
  • Zdarzenie
  • Dynamiczny
  • Cały

Aby uzyskać informacje o tych wartościach, zobacz PSMemberTypes Enumeration w bibliotece MSDN.

Nie wszystkie obiekty mają każdy typ elementu członkowskiego. Jeśli określisz typ elementu członkowskiego, którego obiekt nie ma, program Windows PowerShell zwróci wartość null.

Aby uzyskać powiązane typy elementów członkowskich, takie jak wszystkie rozszerzone elementy członkowskie, użyj parametru View. Jeśli używasz parametru MemberType z parametrami Static lub View, Get-Member pobiera elementy członkowskie należące do obu zestawów.

Typ:PSMemberTypes
Aliasy:Type
Dopuszczalne wartości:AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet, Event, Dynamic, All
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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 nazwa z parametrem MemberType, Viewlub parametrem 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 nazwa .

Typ:String[]
Position:0
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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 Dostosowane, Rozszerzone.

Prawidłowe wartości to:

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

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 Static i View w tym samym poleceniu, parametr View zostanie zignorowany.

Typ:PSMemberViewTypes
Dopuszczalne wartości:Extended, Adapted, Base, All
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

Dane wejściowe

PSObject

Dowolny obiekt można przekazać do get-member.

Dane wyjściowe

MemberDefinition

get-member zwraca obiekt dla każdej właściwości lub metody, którą pobiera.

Uwagi

  • Informacje o obiekcie kolekcji można uzyskać przy użyciu parametru InputObject lub przez potokowanie obiektu poprzedzonego przecinkiem, aby get-member.

    Można użyć $This automatycznej zmiennej w blokach skryptu, 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.