Get-Member

Lekéri az objektumok tulajdonságait és metódusait.

Syntax

Get-Member
   [-InputObject <PSObject>]
   [[-Name] <String[]>]
   [-MemberType <PSMemberTypes>]
   [-View <PSMemberViewTypes>]
   [-Static]
   [-Force]
   [<CommonParameters>]

Description

A Get-Member parancsmag lekéri az objektumok tagjait, tulajdonságait és metódusait.

Az objektum megadásához használja az InputObject paramétert, vagy csövezzön be egy objektumot.Get-Member A statikus tagokkal kapcsolatos információk lekéréséhez az osztály tagjai, nem pedig a példány tagjai a Statikus paramétert használják. Ha csak bizonyos típusú tagokat szeretne lekérni, például a NoteProperties paramétert, használja a MemberType paramétert .

Példák

1. példa: Folyamatobjektumok tagjainak lekérése

Ez a parancs megjeleníti a parancsmag által Get-Service létrehozott szolgáltatásobjektumok tulajdonságait és metódusait.

Mivel a Get-Member parancsnak nincs paramétere, a paraméterekhez alapértelmezett értékeket használ. Alapértelmezés szerint Get-Member nem kap statikus vagy belső tagokat.

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();

2. példa: Szolgáltatásobjektumok tagjainak lekérése

Ez a példa lekéri a parancsmag által Get-Service lekért szolgáltatásobjektumok összes tagját (tulajdonságait és metódusait), beleértve a belső tagokat, például a PSBase-t, a PSObjectet, valamint a get_ és set_ metódusokat.

Get-Service | Get-Member -Force
(Get-Service Schedule).PSBase

A Get-Member parancs a Force paraméter használatával adja hozzá az objektumok belső tagjait és fordító által generált tagjait a kijelzőhöz. Ezeket a tulajdonságokat és metódusokat ugyanúgy használhatja, mint az objektum egy adaptált metódusát. A második parancs bemutatja, hogyan jeleníthető meg a Schedule szolgáltatás PSBase tulajdonságának értéke. További információ a belső tagokról: about_Intrinsic_Members

3. példa: Szolgáltatásobjektumok kiterjesztett tagjainak lekérése

Ez a példa lekéri a fájllal vagy parancsmaggal Types.ps1xml bővített szolgáltatásobjektumok metódusait és Add-Member tulajdonságait.

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();

A Get-Member parancs a View paramétert használja a szolgáltatásobjektumok kiterjesztett tagjainak lekéréséhez. Ebben az esetben a kiterjesztett tag a Name tulajdonság, amely a ServiceName tulajdonság aliastulajdonsága.

4. példa: Eseménynapló-objektumok szkripttulajdonságainak lekérése

Ez a példa lekéri az eseménynapló-objektumok szkripttulajdonságait a Rendszernapló eseménymegtekintő.

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

A MemberType paraméter csak azokat az objektumokat kapja meg, amelyek memberType tulajdonságának NoteProperty értéke van.

A parancs visszaadja az EventLogRecord objektum Message tulajdonságát.

5. példa: Adott tulajdonsággal rendelkező objektumok lekérése

Ez a példa a parancsmagok listájából lekéri azokat az objektumokat, amelyek kimenetében MachineName tulajdonság található.

A $list változó a kiértékelendő parancsmagok listáját tartalmazza. A foreach utasítás meghívja az egyes parancsokat, és elküldi az eredményeket a következőnek Get-Member: . A Name paraméter a MachineName nevű tagokra Get-Member korlátozza az eredményeket.

$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;}

Az eredmények azt mutatják, hogy csak a folyamatobjektumok és a szolgáltatásobjektumok rendelkeznek MachineName tulajdonságmal.

6. példa: Tagok lekérése tömbhöz

Ez a példa bemutatja, hogyan keresheti meg egy objektumtömb tagjait. Amikor az objektumokat és az objektumokat tartalmazó tömböt Get-Memberad vissza, a parancsmag egy taglistát ad vissza a tömb minden egyedi objektumtípusához. Ha az InputObject paraméterrel adja át a tömböt, a tömb egyetlen objektumként lesz kezelve.

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

A $array változó egy Int32-objektumot és egy sztringobjektumot tartalmaz, amint az látható, amikor a tömb a következőre Get-Membervan átirányítva. Ha $array az InputObject paraméterrel Get-Member van átadva, az objektum[] típus tagjait adja vissza.

7. példa: A beállítható objektumtulajdonságok meghatározása

Ez a példa bemutatja, hogyan állapítható meg, hogy egy objektum mely tulajdonságai módosíthatók.

$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

Paraméterek

-Force

Hozzáadja a belső tagokat, valamint a fordító által létrehozott get_ és set_ metódusokat a megjelenítéshez. Az alábbi lista a Force paraméter használatakor hozzáadott tulajdonságokat ismerteti:

  • PSBase: A .NET-objektum eredeti tulajdonságai kiterjesztés vagy adaptáció nélkül. Ezek az objektumosztályhoz definiált tulajdonságok.
  • PSAdapted: A PowerShell kiterjesztett típusrendszerében definiált tulajdonságok és metódusok.
  • PSExtended: A fájlokban vagy a Types.ps1xmlAdd-Member parancsmag használatával hozzáadott tulajdonságok és metódusok.
  • PSObject: Az alapobjektumot PowerShell PSObject objektummá konvertáló adapter.
  • PSTypeNames: Az objektumot leíró objektumtípusok listája, a konkrétság sorrendjében. Az objektum formázásakor a PowerShell megkeresi a Format.ps1xml powershell telepítési könyvtárában ($PSHOME) található fájlok típusait. Az első megtalált típus formázási definícióját használja.

Alapértelmezés szerint Get-Member ezeket a tulajdonságokat az Alap és az Adaptált kivételével minden nézetben lekéri, de nem jeleníti meg őket.

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

-InputObject

Azt az objektumot adja meg, amelynek a tagjai le vannak kérve.

Az InputObject paraméter használata nem ugyanaz, mint amikor egy objektumot a rendszer az objektumnak ad Get-Member. A különbségek a következők:

  • Amikor egy objektumgyűjteményt Get-Memberad át, Get-Member lekéri a gyűjteményben lévő egyes objektumok tagjait, például az egyes sztringek tulajdonságait egy sztringtömbben.
  • Amikor az InputObject használatával küld el objektumgyűjteményt, Get-Member lekéri a gyűjtemény tagjait, például a tömb tulajdonságait egy sztringtömbben.
Type:PSObject
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-MemberType

Megadja a parancsmag által lekért tagtípust. A mező alapértelmezett értéke: All.

A paraméter elfogadható értékei a következők:

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

Ezek az értékek jelzőalapú számbavételként vannak definiálva. Több érték kombinálásával több jelölőt is beállíthat ezzel a paraméterrel. Az értékek átadhatók a MemberType paraméternek értéktömbként vagy az értékek vesszővel elválasztott sztringjeként. A parancsmag bináris VAGY művelettel egyesíti az értékeket. Az értékek tömbként való átadása a legegyszerűbb lehetőség, és lehetővé teszi a tabulátorkiegészítés használatát is az értékeken.

További információ ezekről az értékekről: PSMemberTypes Enumerálás.

Nem minden objektum rendelkezik minden tagtípussal. Ha olyan tagtípust ad meg, amellyel az objektum nem rendelkezik, a PowerShell null értéket ad vissza. A kapcsolódó tagtípusok, például az összes kiterjesztett tag lekéréséhez használja a Nézet paramétert. Ha a MemberType paramétert statikus vagy megtekintési paraméterekkel használja, Get-Member lekéri a két készlethez tartozó tagokat.

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

Az objektum egy vagy több tulajdonságának vagy metódusának nevét adja meg. Get-Member A csak a megadott tulajdonságokat és metódusokat kapja meg.

Ha a Name paramétert a MemberType, a View vagy a Static paraméterrel használja, csak azokat a tagokat kéri le, Get-Member amelyek megfelelnek az összes paraméter feltételének.

Statikus tag név szerinti lekéréséhez használja a Statikus paramétert a Név paraméterrel.

Type:String[]
Position:0
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Static

Azt jelzi, hogy ez a parancsmag csak az objektum statikus tulajdonságait és metódusait kapja meg. A statikus tulajdonságok és metódusok az objektumok osztályán vannak definiálva, nem pedig az osztály egy adott példányán.

Ha a Statikus paramétert a View paraméterrel használja, a Nézet paraméter figyelmen kívül lesz hagyva. Ha a Statikus paramétert a MemberType paraméterrel használja, Get-Member csak a két készlethez tartozó tagokat kéri le.

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

-View

Megadja, hogy ez a parancsmag csak bizonyos típusú tulajdonságokat és metódusokat kapjon. Adjon meg egy vagy több értéket. Az alapértelmezett beállítás az Adaptált, Bővített.

A paraméter elfogadható értékei a következők:

  • Alap. Csak a .NET-objektum eredeti tulajdonságait és metódusait kapja meg (kiterjesztés vagy adaptáció nélkül).
  • Igazítani. Csak a PowerShell kiterjesztett típusrendszerben definiált tulajdonságokat és metódusokat kapja meg.
  • Kiterjedt. Csak a fájlokban Types.ps1xml vagy a Add-Member parancsmag használatával hozzáadott tulajdonságokat és metódusokat kapja meg.
  • Összes. Lekéri a tagokat az Alap, az Adaptált és a Kiterjesztett nézetből.

A View paraméter a lekért tagokat határozza meg, nem csak a tagok megjelenítését.

Adott tagtípusok, például szkripttulajdonságok lekéréséhez használja a MemberType paramétert . Ha ugyanabban a parancsban használja a MemberType és a View paramétereket, Get-Member lekéri a két készlethez tartozó tagokat. Ha ugyanabban a parancsban használja a Static és a View paramétereket, a Nézet paraméter figyelmen kívül lesz hagyva.

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

Bevitelek

PSObject

Bármilyen objektumot átirányíthat a parancsra Get-Member.

Kimenetek

MemberDefinition

Get-Member A minden tulajdonsághoz vagy metódushoz visszaad egy objektumot.

Jegyzetek

A gyűjteményobjektumokkal kapcsolatos információkat az InputObject paraméterrel vagy az objektum vesszővel történő beírásával kaphatja meg Get-Member.

Az automatikus változót $This olyan szkriptblokkokban használhatja, amelyek az új tulajdonságok és metódusok értékeit határozzák meg. A $This változó annak az objektumnak a példányára hivatkozik, amelyhez a tulajdonságokat és metódusokat hozzáadja. A változóval kapcsolatos további információkért $Thislásd about_Automatic_Variables.

Ha egy típust (például típuskonstanst [int]) képviselő objektumot ad át, Get-Member a típussal kapcsolatos [System.RuntimeType] információkat ad vissza. A Statikus paraméter Get-Member használatakor azonban a példány által System.RuntimeType képviselt konkrét típus statikus tagjait adja vissza.