Get-Member

Získá vlastnosti a metody objektů.

Syntax

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 do Types.ps1xml souborů 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í specificity. 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 načte tyto vlastnosti ve všech zobrazeních s výjimkou základního a přizpůsobeného zobrazení, ale nezobrazuje je.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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ů.
Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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.

Type:PSMemberTypes
Aliases:Type
Accepted values:AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet, Event, Dynamic, All
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 .

Type:String[]
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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ákladní. 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í rutiny Add-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.

Type:PSMemberViewTypes
Accepted values:Extended, Adapted, Base, All
Position:Named
Default value:Adapted, Extended
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Vstupy

PSObject

Do této rutiny můžete převést libovolný objekt.

Výstupy

MemberDefinition

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