Get-Member
Získá vlastnosti a metody objektů.
Syntax
Default (Výchozí)
Get-Member
[[-Name] <String[]>]
[-InputObject <PSObject>]
[-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 parametru nebo stavte objekt na 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
Příklady
Příklad 1: Získání členů procesních objektů
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;}
Tento příkaz zobrazí vlastnosti a metody objekty procesu (System.ServiceProcess.ServiceController), které jsou generovány rutinou Get-Service.
Příkaz pomocí operátoru kanálu (|) odešle výstup příkazu Get-ServiceGet-Member.
Vzhledem k tomu, Get-Member část příkazu nemá žádné parametry, používá všechny výchozí hodnoty. Proto získá všechny typy členů, ale nezískne statické členy a nezobrazí vnitřní členy.
Příklad 2: Získání členů objektů služby
PS> Get-Service | Get-Member -Force
PS> (Get-Service Schedule).PSBase
Tento příklad získá všechny členy (vlastnosti a metody) objektů služby (System.ServiceProcess.ServiceController) načtených rutinou Get-Service, včetně vnitřních členů, jako je PSBase a PSObject, a get_ a set_ metody.
První příkaz používá rutinu Get-Service k získání objektů, které představují služby v systému. Pomocí operátoru kanálu (|) předává objekty služby rutině Get-Member.
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í. get-member získá tyto členy, ale ve výchozím nastavení je skryje.
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.
Příklad 3: Získání rozšířených členů objektů služby
PS> Get-Service| Get-Member -View Extended
TypeName: System.ServiceProcess.ServiceController
Name MemberType Definition
---- ---------- ----------
Name AliasProperty Name = ServiceName
Tento příkaz získá metody a vlastnosti objektů služby, které byly rozšířeny pomocí souboru Types.ps1xml nebo rutiny Add-Member.
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í
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;}
Tento příkaz získá vlastnosti skriptu objektů protokolu událostí v systémovém protokolu v Prohlížeči událostí.
Příkaz používá MemberType parametr získat pouze objekty s hodnotou ScriptProperty pro vlastnost MemberType.
Příkaz vrátí vlastnost EventID objektu EventLog.
Příklad 5: Získání objektů se zadanou vlastností
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;}
Tento příkaz získá objekty, které mají vlastnost MachineName ze seznamu rutin.
První příkaz uloží názvy několika rutin do proměnné $A.
Druhý příkaz používá příkaz ForEach k vyvolání každého příkazu, odeslání výsledků Get-Membera omezení výsledků z Get-Member na členy, kteří mají název MachineName.
Výsledky ukazují, že objekty procesu (System.Diagnostics.Process) a objekty služby (System.ServiceProcess.ServiceController) mají vlastnost MachineName.
Příklad 6: Získání členů pro pole
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
Tento příklad ukazuje, jak najít vlastnosti a metody pole objektů, pokud máte pouze jeden objekt daného typu.
Vzhledem k tomu, že cílem příkazu je najít vlastnosti pole, první příkaz používá InputObject parametr. Používá symbol at (@) k označení pole. V tomto případě pole obsahuje pouze jeden objekt, celé číslo 1.
Třetí příkaz používá rutinu Get-Member k získání vlastností a metod pole celých čísel a příkaz je uloží do proměnné $A.
Čtvrtý příkaz používá vlastnost Count pole k vyhledání počtu objektů v proměnné $A.
Příklad 7: Určení vlastností objektu, které můžete nastavit
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
Tento příklad ukazuje, jak určit, které vlastnosti objektu lze změnit. Tento příklad používá soubor, ale tento formát příkazu můžete použít k vyhledání měnitelných vlastností libovolného objektu v prostředí Windows PowerShell.
První příkaz použije rutinu Get-Item k získání textového souboru a pak uloží objekt souboru do proměnné $File.
Druhý příkaz získá všechny změněné vlastnosti objektu souboru v proměnné $File a zobrazí názvy vlastností v tabulce.
Třetí příkaz získá změnitelné vlastnosti všech objektů v relaci Windows PowerShellu.
Příklad 8: Získání členů každé položky v kolekci
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()
...
Tento příklad ukazuje, jak InputObject parametr funguje v rutině Get-Member. Když použijete parametr InputObject k získání členů kolekce, Get-Member získá členy kolekce. Když předáte kolekci objektů do Get-Member, Get-Member získá členy každé položky v kolekci.
První příkaz získá služby v místním počítači a uloží služby do proměnné $S.
Druhý příkaz předá proměnnou $S do rutiny Get-Member. Get-Member získá typy jednotlivých členů $S a členů tohoto typu. V tomto případě získá ServiceController objekty a vypíše členy, jako je RequiredServices a Close.
Třetí příkaz používá InputObject parametr Get-Member k odeslání proměnné $S. Get-Member získá typ (System.Object[]) a členy kolekce (nebo pole) ServiceController objekty, jako je Count a Clone.
Parametry
-Force
Přidá vnitřní členy (PSBase, PSAdapted, PSObject, PSTypeNames) a kompilátorem generované get_ a set_ metody do zobrazení. Ve výchozím nastavení Get-Member získá tyto vlastnosti ve všech zobrazeních kromě základního a přizpůsobeného, ale nezobrazí je.
Následující seznam popisuje vlastnosti přidané při použití parametru Force:
- PSBase: Původní vlastnosti objektu rozhraní .NET Framework bez rozšíření nebo přizpůsobení. Jedná se o vlastnosti definované pro třídu objektu a uvedené v MSDN.
- PsAdapted. Vlastnosti a metody definované v systému rozšířených typů Windows PowerShellu.
- PSExtended. Vlastnosti a metody přidané do souborů Types.ps1xml nebo pomocí rutiny Add-Member.
- PSObject. Adaptér, který převede základní objekt na objekt prostředí Windows PowerShellPSObject.
- PSTypeNames. Seznam typů objektů, které objekt popisují v pořadí specifického. Při formátování objektu windows PowerShell vyhledá typy v souborech Format.ps1xml v instalačním adresáři Prostředí Windows PowerShell ($pshome). Používá definici formátování pro první typ, který najde.
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í InputObject parametr není totéž jako propojení objektu Get-Member. Rozdíly jsou následující:
- Když předáte kolekci objektů Get-Member, Get-Member získá členy jednotlivých objektů v kolekci, například vlastnosti každého řetězce v poli řetězců.
- Při použití InputObject odeslat kolekci objektů, Get-Member zí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 Vše.
Přijatelné hodnoty pro tento parametr jsou:
- AliasProperty
- CodeProperty
- Vlastnictví
- VlastnostPoznámky
- ScriptProperty
- Vlastnosti
- PropertySet
- Metoda
- CodeMethod
- SkriptMetoda
- Metody
- ParametrizovanáProperty
- Množina členů
- Událost
- Dynamický
- Všechno
Informace o těchto hodnotách najdete v tématu PSMemberTypes – výčet v knihovně MSDN.
Ne všechny objekty mají každý typ členu. Pokud zadáte typ člena, který objekt nemá, windows 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
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 parametrem MemberType, Viewnebo Static, 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, bude parametr View ignorován. 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ůsobena, Rozšířena.
Platné hodnoty jsou:
- Základna. Získá pouze původní vlastnosti a metody objektu .NET Framework (bez rozšíření nebo přizpůsobení).
- Přizpůsobený. Získá pouze vlastnosti a metody definované v rozšířeném systému windows PowerShell.
- Rozšířený. Získá pouze vlastnosti a metody, které byly přidány do souborů Types.ps1xml nebo pomocí Add-Member rutiny.
- 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: | None |
| 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
Libovolný objekt můžete pipetovat do Get-Member.
Výstupy
MemberDefinition
Get-Member vrátí objekt pro každou vlastnost nebo metodu, kterou získá.
Poznámky
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 najdete v tématu about_Automatic_Variables.