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 zadat objekt, použijte inputObject parametr nebo kanál objektu do Get-Member. Chcete-li získat informace o statických členech, členové třídy, nikoli instance, použijte statický parametr. Pokud chcete získat pouze určité typy členů, například NoteProperties, použijte parametr MemberType .

Příklady

Příklad 1: Získání členů procesový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á výchozí hodnoty parametrů. 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 Get-Service rutinou, 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žije parametr Force k přidání vnitřních členů a členů vygenerovaných kompilátorem objektů do zobrazení. Tyto vlastnosti a metody můžete použít stejným způsobem jako 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 v 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 vlastnosti MemberType .

Příkaz vrátí vlastnost Messageobjektu EventLogRecord .

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 od Get-Member členů, 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ž dáte kanál a pole objektů, Get-Memberrutina vrátí seznam členů pro každý jedinečný typ objektu v poli. Pokud předáte pole pomocí parametru InputObject , 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á $array obsahuje objekt Int32 a řetězcový objekt, jak je vidět, když je pole vloženo do Get-Member. Při $array předání pomocí parametruGet-Member InputObject 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

Parametry

-Force

Přidá do zobrazení vnitřní členy a get_ kompilátoru a metody set_ . 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 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é popisují objekt v pořadí specificity. Při formátování objektu PowerShell vyhledá typy v souborech v Format.ps1xml 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 Adaptované, ale nezobrazuje je.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Určuje objekt, jehož členy jsou načteny.

Použití parametru InputObject není stejné jako potrubí 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, jako jsou vlastnosti pole v matici řetězců.
Type:PSObject
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-MemberType

Určuje typ člena, který tato rutina získá. Výchozí formát 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ýčty 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 NEBO. Předání hodnot jako pole je nejjednodušší možností a také umožňuje použít doplňování tabulátoru u hodnot.

Informace o těchto hodnotách naleznete v tématu PSMemberTypes – výčet.

Ne všechny objekty mají každý typ člena. Pokud zadáte typ člena, který objekt nemá, vrátí PowerShell 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 , Get-Member získá členy, 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
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 , 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 statický parametr s parametrem Name .

Type:String[]
Position:0
Default value:None
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ů, nikoli u žádné konkrétní instance třídy.

Pokud použijete statický parametr s parametrem View , bude parametr View ignorován. 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
Accept pipeline input:False
Accept wildcard characters:False

-View

Určuje, že tato rutina získá pouze konkrétní typy vlastnosti a metody. Zadejte jednu nebo více hodnot. Výchozí nastavení je Přizpůsobeno, Rozšířeno.

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 systému rozšířeného typu PowerShellu.
  • Rozšířený. Získá pouze vlastnosti a metody přidané 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 ve stejném příkazu použijete parametry Static and View , bude parametr View ignorován.

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

Vstupy

PSObject

Libovolný objekt můžete převést na 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í parametru InputObject , nebo potrubím objektu, před čárkou do Get-Member.

Automatickou $This proměnnou 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, například literál typu, například [int], Get-Member vrátí informace o [System.RuntimeType] typu. Pokud ale použijete statický parametr, Get-Member vrátí statické členy konkrétního typu reprezentované System.RuntimeType instancí.