Get-Member
Pobiera właściwości i metody obiektów.
Składnia
Default (Domyślna)
Get-Member
[-InputObject <PSObject>]
[[-Name] <String[]>]
[-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 w celu 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
Get-Member zwraca listę elementów członkowskich posortowanych alfabetycznie. Metody są wyświetlane jako pierwsze, a następnie właściwości.
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 wygenerowanych przez polecenie cmdlet Get-Service.
Ponieważ część Get-Member 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 polecenie cmdlet Get-Service, w tym elementy członkowskie wewnętrzne, takie jak psbase, psobjectoraz 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 zastosowania dostosowanej metody 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 pliku Types.ps1xml lub polecenia cmdlet 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();
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ądzie 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 nazwa ogranicza wyniki z Get-Member do elementów członkowskich o nazwie 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-Memberpolecenie cmdlet zwraca listę elementów członkowskich dla każdego unikatowego typu obiektu w tablicy.
Jeśli przekażesz tablicę 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 potokowana do Get-Member. Po przekazaniu $array przy użyciu parametru InputObjectGet-Member 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
Przykład 8: Wyświetlanie listy właściwości obiektu w kolejności, w której zostały utworzone
W tym przykładzie zostanie utworzona nowa PSObject i doda do niej właściwości.
Get-Member wyświetla listę właściwości w kolejności alfabetycznej. Aby wyświetlić właściwości w kolejności, w której zostały dodane do obiektu, należy użyć elementu wewnętrznego 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
Parametry
-Force
Dodaje wewnętrzne elementy członkowskie i metody get_ generowane przez kompilator oraz set_ do wyświetlania. Na poniższej liście opisano właściwości dodawane podczas używania parametru Force:
-
psbase: oryginalne właściwości obiektu platformy .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 plikachTypes.ps1xmllub przy użyciu polecenia cmdletAdd-Member. -
psobject: karta, która konwertuje obiekt podstawowy na obiekt programu PowerShell PSObject. -
pstypenames: lista typów obiektów opisujących obiekt w kolejności specyficznej. Podczas formatowania obiektu program PowerShell wyszukuje typy w plikachFormat.ps1xmlw katalogu instalacyjnym programu PowerShell ($PSHOME). Używa definicji formatowania dla pierwszego znalezionego typu.
Domyślnie Get-Member pobiera te właściwości we wszystkich widokach z wyjątkiem Base i Adaptowane, ale nie wyświetla ich.
Właściwości parametru
| Typ: | SwitchParameter |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | 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-Memberpobiera 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-Memberpobiera elementy członkowskie kolekcji, takie jak właściwości tablicy w tablicy ciągów.
Właściwości parametru
| Typ: | PSObject |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | True |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-MemberType
Określa typ elementu członkowskiego pobierany przez to polecenie cmdlet. Wartość domyślna to All.
Dopuszczalne wartości tego parametru to:
AliasPropertyCodePropertyPropertyNotePropertyScriptPropertyPropertiesPropertySetMethodCodeMethodScriptMethodMethodsParameterizedPropertyMemberSetEventDynamicAll
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 tablicy 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ą i umożliwia skorzystanie z funkcji automatycznego uzupełniania dla wartości tablicy.
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 View. Jeśli używasz parametru MemberType z parametrem Static lub View parametry, Get-Member pobiera elementy członkowskie należące do obu zestawów.
Właściwości parametru
| Typ: | PSMemberTypes |
| Domyślna wartość: | None |
| Dopuszczalne wartości: | AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet, Event, Dynamic, All |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
| Aliasy: | Typ |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | 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 Static parametr, 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
Właściwości parametru
| Typ: | String[] |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
(All)
| Position: | 0 |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | 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 lub Force parametry, polecenie cmdlet ignoruje te parametry. Jeśli używasz parametru Static z parametrem MemberType, Get-Member pobiera tylko elementy członkowskie należące do obu zestawów.
Właściwości parametru
| Typ: | SwitchParameter |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | 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.
Dopuszczalne wartości 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 plikach
Types.ps1xmllub przy użyciu polecenia cmdletAdd-Member. - Wszystkie 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.
Właściwości parametru
| Typ: | PSMemberViewTypes |
| Domyślna wartość: | Adapted, Extended |
| Dopuszczalne wartości: | Extended, Adapted, Base, All |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
CommonParameters
To polecenie cmdlet obsługuje typowe parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction i -WarningVariable. Aby uzyskać więcej informacji, zobacz about_CommonParameters.
Dane wejściowe
PSObject
Do tego polecenia cmdlet można przekierować dowolny obiekt.
Dane wyjściowe
MemberDefinition
To polecenie cmdlet zwraca MemberDefinition dla każdej właściwości lub metody, która jest pobierana.
Uwagi
Program PowerShell zawiera następujące aliasy dla Get-Member:
- Wszystkie platformy:
gm
Informacje o obiekcie kolekcji można uzyskać przy użyciu parametru InputObject lub przez potokowanie obiektu poprzedzonego przecinkiem w celu Get-Member.
Można użyć $this automatycznej zmiennej w blokach skryptów, które definiują wartości nowych właściwości i metod. Zmienna $this odnosi 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 zwraca informacje o typie [System.RuntimeType]. Jeśli jednak używasz parametru Static, Get-Member zwraca statyczne elementy członkowskie określonego typu reprezentowanego przez wystąpienie System.RuntimeType.