Megosztás a következőn keresztül:


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 .

Get-Member Betűrendbe rendezett taglistát ad vissza. Először a metódusok jelennek meg, majd a tulajdonságok.

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 parancs része nem tartalmaz paramétereket, 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 létrehozott tagjait a kijelzőhöz. Ezeket a tulajdonságokat és metódusokat ugyanúgy használhatja, mint az objektum adaptált metódusát. A második parancs bemutatja, hogyan jelenítheti meg az Schedule szolgáltatás PSBase tulajdonságának értékét. 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ájl vagy a parancsmag használatával 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 beolvasja az eseménynapló-objektumok szkripttulajdonságait a rendszernaplóban Eseménynapló.

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 a MemberType tulajdonsághoz tartozó értékkel NoteProperty rendelkező objektumokat kapja meg.

A parancs az EventLogRecord objektum Üzenet tulajdonságát adja vissza.

5. példa: Objektumok lekérése megadott tulajdonsággal

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. Az foreach utasítás meghívja az egyes parancsokat, és elküldi az eredményeket a következőnek Get-Member: . A Név paraméter a MachineName névvel rendelkező 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 objektumokat és tömböket csövez Get-Memberbe, 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 rendszer egyetlen objektumként kezeli a tömböt.

$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 állítva. Ha $array az InputObject paraméterrel Get-Member ad át, 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 határozható 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

8. példa: Egy objektum tulajdonságainak listázása a létrehozásuk sorrendjében

Ez a példa létrehoz egy új PSObject objektumot , és tulajdonságokat ad hozzá. Get-Member betűrendben listázza a tulajdonságokat. A tulajdonságoknak az objektumhoz adott sorrendben való megtekintéséhez a PSObject belső tagot kell használnia.

$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

Paraméterek

-Force

Hozzáadja a belső tagokat és 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 bővítmény vagy adaptáció nélkül. Ezek az objektumosztályhoz definiált tulajdonságok.
  • PSAdapted: A Kiterjesztett PowerShell-típusrendszerben definiált tulajdonságok és metódusok.
  • PSExtended: A fájlokban vagy a Types.ps1xml Add-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 megkapja, de nem jeleníti meg őket.

Típus:SwitchParameter
Position:Named
Alapértelmezett érték:None
Kötelező:False
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-InputObject

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

Az InputObject paraméter használata nem ugyanaz, mint egy objektum beírásaGet-Member. A különbségek a következők:

  • Amikor objektumgyűjteményt Get-Membercsövez be, Get-Member lekéri a gyűjtemény egyes objektumainak tagjait, például az egyes sztringek tulajdonságait egy sztringtömbben.
  • Amikor az InputObject használatával küld el egy objektumgyűjteményt, Get-Member lekéri a gyűjtemény tagjait, például a tömb tulajdonságait egy sztringtömbben.
Típus:PSObject
Position:Named
Alapértelmezett érték:None
Kötelező:False
Folyamatbemenet elfogadása:True
Helyettesítő karakterek elfogadása:False

-MemberType

Megadja a parancsmag által lekért tagtípust. Az alapértelmezett érték 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 jelölő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.

Ezekről az értékekről további információt a PSMemberTypes Enumerálás című témakörben talál.

Nem minden objektum rendelkezik minden tagtípussal. Ha olyan tagtípust ad meg, amelyet az objektum nem tartalmaz, 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 View paramétert. Ha a MemberType paramétert statikus vagy megtekintési paraméterekkel használja, Get-Member lekéri a két csoporthoz tartozó tagokat.

Típus:PSMemberTypes
Aliasok:Type
Elfogadott értékek:AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet, Event, Dynamic, All
Position:Named
Alapértelmezett érték:None
Kötelező:False
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-Name

Az objektum egy vagy több tulajdonságának vagy metódusának nevét adja meg. Get-Member 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.

Típus:String[]
Position:0
Alapértelmezett érték:None
Kötelező:False
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása: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 Nézet vagy a Kényszerítés paraméterekkel használja, a parancsmag figyelmen kívül hagyja ezeket a paramétereket. Ha a Statikus paramétert a MemberType paraméterrel használja, Get-Member csak a két csoporthoz tartozó tagokat kéri le.

Típus:SwitchParameter
Position:Named
Alapértelmezett érték:None
Kötelező:False
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-View

Azt adja meg, hogy ez a parancsmag csak bizonyos típusok tulajdonságait és metódusait kapja meg. 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 Kiterjesztett PowerShell-típusrendszerben definiált tulajdonságokat és metódusokat kapja meg.
  • Kiterjedt. Csak a fájlokban Types.ps1xml vagy a Add-Member parancsmaggal hozzáadott tulajdonságokat és metódusokat kapja meg.
  • Mind. Lekéri a tagokat az Alap, az Adaptált és a Kiterjesztett nézetben.

A Nézet 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 csoporthoz tartozó tagokat. Ha ugyanabban a parancsban használja a Statikus és a Nézet paramétereket, a Nézet paraméter figyelmen kívül lesz hagyva.

Típus:PSMemberViewTypes
Elfogadott értékek:Extended, Adapted, Base, All
Position:Named
Alapértelmezett érték:Adapted, Extended
Kötelező:False
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

Bevitelek

PSObject

A parancsmaghoz bármilyen objektumot csövezhet.

Kimenetek

MemberDefinition

Ez a parancsmag egy MemberDefinition értéket ad vissza minden olyan tulajdonsághoz vagy metódushoz, amelyet megkap.

Jegyzetek

A PowerShell a következő aliasokat Get-Membertartalmazza:

  • Minden platform:
    • gm

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

Az automatikus változót olyan $This szkriptblokkokban használhatja, amelyek ú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 lásd: $This about_Automatic_Variables.

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