Sdílet prostřednictvím


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

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.ps1xml nebo pomocí rutiny Add-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 v Format.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 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-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ů.

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:

  • AliasProperty
  • CodeProperty
  • Property
  • NoteProperty
  • ScriptProperty
  • Properties
  • PropertySet
  • Method
  • CodeMethod
  • ScriptMethod
  • Methods
  • ParameterizedProperty
  • MemberSet
  • Event
  • Dynamic
  • All

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.ps1xml souborů 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: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.