Get-Member
Získá vlastnosti a metody objektů.
Syntaxe
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 do Get-Member
. Chcete-li získat informace o statických členech, členy třídy, nikoli instance, použijte statický parametr. Pokud chcete získat pouze určité typy členů, například NoteProperties, použijte parametr MemberType .
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
.
Get-Member
Vzhledem k tomu, že část příkazu nemá žádné parametry, používá pro parametry výchozí hodnoty. Ve výchozím nastavení Get-Member
nezísadí 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, PSObject a get_ a set_ metody.
Get-Service | Get-Member -Force
(Get-Service Schedule).PSBase
Příkaz Get-Member
používá k přidání vnitřních členů a členů objektů generovaných kompilátorem do zobrazení parametr Force . 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 služby. 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í Types.ps1xml
souboru 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 Prohlížeč 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 jejich MemberType vlastnost.
Příkaz vrátí Message vlastnost EventLogRecord objektu.
Příklad 5: Získání objektů se zadanou vlastností
Tento příklad získá objekty, které mají vlastnost MachineName 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 do Get-Member
. Parametr Name omezuje výsledky na Get-Member
č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ů Get-Member
, rutina vrátí seznam členů pro každý jedinečný typ objektu v poli.
Pokud předáte pole pomocí inputObject parametru, je 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á obsahuje objekt Int32 a řetězcový objekt, jak je vidět, když je pole předaný do Get-Member
.$array
Při $array
předání pomocí InputObject parametru Get-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
zobrazí seznam vlastností 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 vnitřní člen 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
Přidá do zobrazení vnitřní členy a get_ vygenerované kompilátorem a set_ metody. 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 systému rozšířených typů PowerShellu.PSExtended
: Vlastnosti a metody, které byly přidány doTypes.ps1xml
souborů nebo 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í specificity. Při formátování objektu PowerShell vyhledá typy vFormat.ps1xml
souborech 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
načte tyto vlastnosti ve všech zobrazeních s výjimkou základního a přizpůsobeného zobrazení, ale nezobrazuje je.
Typ: | SwitchParameter |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-InputObject
Určuje objekt, jehož členy jsou načteny.
Použití parametru InputObject není stejné jako propojení objektu do Get-Member
. Rozdíly jsou následující:
- Když předáte kolekci objektů do
Get-Member
,Get-Member
zí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-Member
získá členy kolekce, například vlastnosti pole v poli řetězců.
Typ: | PSObject |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-MemberType
Určuje typ člena, který tato rutina získá. Výchozí hodnota je All
.
Tento parametr přijímá tyto hodnoty:
AliasProperty
CodeProperty
Property
NoteProperty
ScriptProperty
Properties
PropertySet
Method
CodeMethod
ScriptMethod
Methods
ParameterizedProperty
MemberSet
Event
Dynamic
All
Tyto hodnoty jsou definovány jako výčet založený na příznaku. 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 použít pro hodnoty dokončování tabulátoru.
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 View . Pokud použijete parametr MemberType s parametry Static nebo View , získá členy, Get-Member
které patří do obou sad.
Typ: | PSMemberTypes |
Aliasy: | Type |
Přípustné hodnoty: | AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet, Event, Dynamic, All |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | 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 parametrem MemberType, View nebo Static , získá pouze členy, Get-Member
které splňují kritéria všech parametrů.
Pokud chcete získat statický člen podle názvu, použijte statický parametr s parametrem Name .
Typ: | String[] |
Position: | 0 |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | 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 statický parametr s parametry View nebo Force , rutina tyto parametry ignoruje. Pokud použijete statický parametr s parametrem MemberType , Get-Member
získá pouze členy, které patří do obou sad.
Typ: | SwitchParameter |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | 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ůsobena, Rozšířena.
Tento parametr přijímá tyto hodnoty:
- 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, které byly přidány do
Types.ps1xml
souborů nebo pomocí rutinyAdd-Member
. - Všechny. 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, získá členy, Get-Member
které patří do obou sad. Pokud použijete parametry Static a View ve stejném příkazu, bude parametr View ignorován.
Typ: | PSMemberViewTypes |
Přípustné hodnoty: | Extended, Adapted, Base, All |
Position: | Named |
Default value: | Adapted, Extended |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
Vstupy
Do této rutiny můžete převést libovolný objekt.
Výstupy
Tato rutina vrátí definici 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, do Get-Member
.
Automatickou proměnnou $This
můžete použít 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 $This
proměnné najdete v tématu about_Automatic_Variables.
Pokud předáte objekt představující typ, jako je literál typu, například [int]
, Get-Member
vrátí informace o [System.RuntimeType]
typu. Při použití statického parametru však Get-Member
vrátí statické členy konkrétního typu reprezentované System.RuntimeType
instancí.