Sdílet prostřednictvím


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 jeNoteProperties, použijte parametr MemberType.

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 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 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.