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-Member
be, 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-Member
van á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 aTypes.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 aFormat.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-Member
csö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 aAdd-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
A parancsmaghoz bármilyen objektumot csövezhet.
Kimenetek
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-Member
tartalmazza:
- 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.