Get-Member
Získá vlastnosti a metody objektů.
Syntaxe
Default (Výchozí)
Get-Member
[-InputObject <PSObject>]
[[-Name] <String[]>]
[-MemberType <PSMemberTypes>]
[-View <PSMemberViewTypes>]
[-Static]
[-Force]
[<CommonParameters>]
Description
Rutina Get-Member získá členy, vlastnosti a metody objektů.
Chcete-li určit objekt, použijte InputObject parametr nebo pipe objekt Get-Member. Chcete-li získat informace o statických členech, členy třídy, nikoli instance, použijte parametr Static. Pokud chcete získat pouze určité typy členů, jako je
Get-Member vrátí seznam členů seřazených abecedně. Metody jsou uvedeny jako první, následované vlastnostmi.
Příklady
Příklad 1: Získání členů procesních objektů
Tento příkaz zobrazí vlastnosti a metody objektů služby vygenerované rutinou Get-Service.
Vzhledem k tomu, že Get-Member část příkazu nemá žádné parametry, používá pro parametry výchozí hodnoty. Ve výchozím nastavení Get-Member nezískute statické ani vnitřní členy.
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();
Příklad 2: Získání členů objektů služby
Tento příklad získá všechny členy (vlastnosti a metody) objektů služby načtených rutinou Get-Service, včetně vnitřních členů, jako jsou psbase, psobjecta get_ a set_ metody.
Get-Service | Get-Member -Force
(Get-Service Schedule).psbase
Příkaz Get-Member používá parametr Force k přidání vnitřních členů a členů objektů generovaných kompilátorem do zobrazení. Tyto vlastnosti a metody můžete použít stejným způsobem, jakým byste použili upravenou metodu objektu. Druhý příkaz ukazuje, jak zobrazit hodnotu psbase vlastnost Schedule service. Další informace o vnitřních členech najdete v tématu about_Intrinsic_Members
Příklad 3: Získání rozšířených členů objektů služby
Tento příklad získá metody a vlastnosti objektů služby, které byly rozšířeny pomocí souboru Types.ps1xml nebo rutiny 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();
Příkaz Get-Member používá parametr View k získání pouze rozšířených členů objektů služby. V tomto případě je rozšířeným členem vlastnost Name, což je vlastnost aliasu vlastnosti ServiceName.
Příklad 4: Získání vlastností skriptu objektů protokolu událostí
Tento příklad získá vlastnosti skriptu objektů protokolu událostí v systémovém protokolu v Prohlížeči událostí.
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 získá pouze objekty s hodnotou NoteProperty pro vlastnost MemberType.
Příkaz vrátí vlastnost Message objektu EventLogRecord.
Příklad 5: Získání objektů se zadanou vlastností
Tento příklad získá objekty, které mají MachineName vlastnost ve výstupu ze seznamu rutin.
Proměnná $list obsahuje seznam rutin, které se mají vyhodnotit. Příkaz foreach vyvolá každý příkaz a odešle výsledky Get-Member. Parametr Name omezuje výsledky z Get-Member na členy, kteří mají název 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;}
Výsledky ukazují, že pouze procesní objekty a objekty služby mají vlastnost MachineName.
Příklad 6: Získání členů pro pole
Tento příklad ukazuje, jak najít členy pole objektů. Když předáte a matici objektů, které se mají Get-Member, vrátí rutina seznam členů pro každý jedinečný typ objektu v poli.
Pokud předáte pole pomocí parametru InputObject, bude pole považováno za jeden objekt.
$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...
...
Proměnná $array obsahuje objekt Int32 a řetězcový objekt, jak je vidět, když je pole předané na Get-Member. Při předání $array pomocí parametru InputObjectGet-Member vrátí členy typu Object[].
Příklad 7: Určení vlastností objektu, které můžete nastavit
Tento příklad ukazuje, jak určit, které vlastnosti objektu lze změnit.
$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
Příklad 8: Výpis vlastností objektu v pořadí, v jakém byly vytvořeny
Tento příklad vytvoří nový objekt PSObject a přidá do něj vlastnosti.
Get-Member uvádí vlastnosti v abecedním pořadí. Chcete-li zobrazit vlastnosti v pořadí, v jakém byly přidány do objektu, musíte použít objekt psobject vnitřní člen.
$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
Přidá vnitřní členy a kompilátor generované get_ a set_ metody do zobrazení. Následující seznam popisuje vlastnosti přidané při použití parametru Force:
-
psbase: Původní vlastnosti objektu .NET bez rozšíření nebo přizpůsobení. Jedná se o vlastnosti definované pro třídu objektu. -
psadapted: Vlastnosti a metody definované v rozšířeném systému typů PowerShellu. -
psextended: Vlastnosti a metody přidané do souborůTypes.ps1xmlnebo pomocí rutinyAdd-Member. -
psobject: Adaptér, který převede základní objekt na objekt PSObject PowerShellu. -
pstypenames: Seznam typů objektů, které objekt popisují v pořadí specifického. Při formátování objektu PowerShell vyhledá typy vFormat.ps1xmlsouborech v instalačním adresáři PowerShellu ($PSHOME). Používá definici formátování pro první typ, který najde.
Ve výchozím nastavení Get-Member získá tyto vlastnosti ve všech zobrazeních s výjimkou base a Přizpůsobené, ale nezobrazuje je.
Vlastnosti parametru
| Typ: | SwitchParameter |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-InputObject
Určuje objekt, jehož členy jsou načteny.
Použití parametru InputObject není totéž jako připojení objektu k Get-Member. Rozdíly jsou následující:
- Když předáte kolekci objektů do
Get-Member,Get-Memberzíská členy jednotlivých objektů v kolekci, jako jsou vlastnosti každého řetězce v poli řetězců. - Když použijete InputObject k odeslání kolekce objektů,
Get-Memberzíská členy kolekce, například vlastnosti pole v poli řetězců.
Vlastnosti parametru
| Typ: | PSObject |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | True |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-MemberType
Určuje typ člena, který tato rutina získá. Výchozí hodnota je All.
Přijatelné hodnoty pro tento parametr jsou:
AliasPropertyCodePropertyPropertyNotePropertyScriptPropertyPropertiesPropertySetMethodCodeMethodScriptMethodMethodsParameterizedPropertyMemberSetEventDynamicAll
Tyto hodnoty jsou definovány jako výčtové hodnoty na bázi příznaků. Pomocí tohoto parametru můžete zkombinovat více hodnot a nastavit více příznaků. Hodnoty lze předat parametru MemberType jako pole hodnot nebo jako řetězec oddělený čárkami těchto hodnot. Rutina zkombinuje hodnoty pomocí binární operace OR. Předání hodnot jako pole je nejjednodušší možností a také umožňuje využít automatické doplňování pomocí klávesy Tab pro hodnoty.
Informace o těchto hodnotách naleznete v tématu PSMemberTypes Výčet.
Ne všechny objekty mají každý typ členu. Pokud zadáte typ člena, který objekt nemá, PowerShell vrátí hodnotu null. Pokud chcete získat související typy členů, například všechny rozšířené členy, použijte parametr Zobrazit. Pokud použijete parametr MemberType s parametry Static nebo View, Get-Member získá členy, které patří do obou sad.
Vlastnosti parametru
| Typ: | PSMemberTypes |
| Default value: | None |
| Přípustné hodnoty: | AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet, Event, Dynamic, All |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
| Aliasy: | Typ |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-Name
Určuje názvy jedné nebo více vlastností nebo metod objektu.
Get-Member získá pouze zadané vlastnosti a metody.
Pokud použijete parametr Name s MemberType , Viewnebo Static parametr, Get-Member získá pouze členy, které splňují kritéria všech parametrů.
Pokud chcete získat statický člen podle názvu, použijte parametr Static s parametrem Name.
Vlastnosti parametru
| Typ: | String[] |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
(All)
| Position: | 0 |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-Static
Označuje, že tato rutina získá pouze statické vlastnosti a metody objektu. Statické vlastnosti a metody jsou definovány ve třídě objektů, ne v žádné konkrétní instanci třídy.
Pokud použijete parametr Static s parametrem View nebo Vynutit parametry, rutina tyto parametry ignoruje. Pokud použijete parametr Static s parametrem MemberType, Get-Member získá pouze členy, které patří do obou sad.
Vlastnosti parametru
| Typ: | SwitchParameter |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-View
Určuje, že tato rutina získá pouze konkrétní typy vlastností a metod. Zadejte jednu nebo více hodnot. Výchozí hodnota je přizpůsobená, rozšířená.
Přijatelné hodnoty pro tento parametr jsou:
- Základna. Získá pouze původní vlastnosti a metody objektu .NET (bez rozšíření nebo přizpůsobení).
- Přizpůsobený. Získá pouze vlastnosti a metody definované v rozšířeném systému typů PowerShellu.
- Rozšířený. Získá pouze vlastnosti a metody přidané do
Types.ps1xmlsouborů nebo pomocíAdd-Memberrutiny. - Všichni. Získá členy v základní, přizpůsobené a rozšířené zobrazení.
Parametr View určuje načtené členy, nejen zobrazení těchto členů.
Pokud chcete získat konkrétní typy členů, například vlastnosti skriptu, použijte parametr MemberType. Pokud použijete parametry MemberType a View ve stejném příkazu, Get-Member získá členy, které patří do obou sad. Pokud použijete parametry Statické a Zobrazení ve stejném příkazu, bude parametr View ignorován.
Vlastnosti parametru
| Typ: | PSMemberViewTypes |
| Default value: | Adapted, Extended |
| Přípustné hodnoty: | Extended, Adapted, Base, All |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
CommonParameters
Tato rutina podporuje běžné parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction a -WarningVariable. Další informace najdete v about_CommonParameters.
Vstupy
PSObject
K tomuto cmdletu můžete přesměrovat libovolný objekt.
Výstupy
MemberDefinition
Tato rutina vrátí MemberDefinition pro každou vlastnost nebo metodu, kterou získá.
Poznámky
PowerShell obsahuje následující aliasy pro Get-Member:
- Všechny platformy:
gm
Informace o objektu kolekce můžete získat buď pomocí InputObject parametru, nebo propojením objektu, před čárkou, Get-Member.
Můžete použít $this automatickou proměnnou v blocích skriptu, které definují hodnoty nových vlastností a metod. Proměnná $this odkazuje na instanci objektu, do kterého se přidávají vlastnosti a metody. Další informace o proměnné $this naleznete v tématu about_Automatic_Variables.
Pokud předáte objekt představující typ , například literál typu, například [int], Get-Member vrátit informace o typu [System.RuntimeType]. Pokud však použijete parametr Static, Get-Member vrátí statické členy konkrétního typu reprezentované instancí System.RuntimeType.