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


Get-Member

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

Syntax

Default (Alapértelmezett)

Get-Member
    [[-Name] <String[]>]
    [-InputObject <PSObject>]
    [-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 a InputObject paramétert, vagy csövezzön egy objektumot a 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 NoteProperties, használja a MemberType paramétert.

Példák

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

PS> Get-Service | Get-Member
TypeName: System.ServiceProcess.ServiceController
Name                      MemberType    Definition
----                      ----------    ----------
Name                      AliasProperty Name = ServiceName
Close                     Method        System.Void Close()
Continue                  Method        System.Void Continue()
CreateObjRef              Method        System.Runtime.Remoting.ObjRef CreateObjRef(Type requestedType)
Dispose                   Method        System.Void Dispose()
Equals                    Method        System.Boolean Equals(Object obj)
ExecuteCommand            Method        System.Void ExecuteCommand(Int32 command)
GetHashCode               Method        System.Int32 GetHashCode()
GetLifetimeService        Method        System.Object GetLifetimeService()
GetType                   Method        System.Type GetType()
InitializeLifetimeService Method        System.Object InitializeLifetimeService()
Pause                     Method        System.Void Pause()
Refresh                   Method        System.Void Refresh()
Start                     Method        System.Void Start(), System.Void Start(String[] args)
Stop                      Method        System.Void Stop()
ToString                  Method        System.String ToString()
WaitForStatus             Method        System.Void WaitForStatus(ServiceControllerStatus desiredStatus), System.Voi...
CanPauseAndContinue       Property      System.Boolean CanPauseAndContinue {get;}
CanShutdown               Property      System.Boolean CanShutdown {get;}
CanStop                   Property      System.Boolean CanStop {get;}
Container                 Property      System.ComponentModel.IContainer Container {get;}
DependentServices         Property      System.ServiceProcess.ServiceController[] DependentServices {get;}
DisplayName               Property      System.String DisplayName {get;set;}
MachineName               Property      System.String MachineName {get;set;}
ServiceHandle             Property      System.Runtime.InteropServices.SafeHandle ServiceHandle {get;}
ServiceName               Property      System.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;}
Status                    Property      System.ServiceProcess.ServiceControllerStatus Status {get;}

Ez a parancs megjeleníti a Get-Service parancsmag által létrehozott folyamatobjektumok (System.ServiceProcess.ServiceController) tulajdonságait és metódusait.

A parancs a folyamat operátorral (|) küldi el egy Get-Service parancs kimenetét Get-Member.

Mivel a parancs Get-Member része nem tartalmaz paramétereket, az összes alapértelmezett értéket használja. Így az összes tagtípust megkapja, de nem kap statikus tagokat, és nem jelenít meg belső tagokat.

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

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

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

Az első parancs a Get-Service parancsmaggal szerzi be a rendszeren lévő szolgáltatásokat képviselő objektumokat. Egy folyamatkezelő (|) használatával továbbítja a szolgáltatásobjektumokat a Get-Member parancsmagnak.

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 megjelenítéshez. Get-Member lekéri ezeket a tagokat, de alapértelmezés szerint elrejti őket.

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.

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

PS> Get-Service| Get-Member -View Extended
TypeName: System.ServiceProcess.ServiceController
Name MemberType    Definition
---- ----------    ----------
Name AliasProperty Name = ServiceName

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

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

PS> Get-EventLog -Log System | Get-Member -MemberType ScriptProperty
TypeName: System.Diagnostics.EventLogEntry
Name    MemberType     Definition
----    ----------     ----------
EventID ScriptProperty System.Object EventID {get=$this.get_EventID() -band 0xFFFF;}

Ez a parancs lekéri az eseménynapló-objektumok szkripttulajdonságait az Eseménynapló rendszernaplójában.

A parancs a MemberType paramétert használja, hogy csak a ScriptProperty értékkel rendelkező objektumokat kérje le a MemberType tulajdonsághoz.

A parancs a EventLog objektum EventID tulajdonságát adja vissza.

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

PS> $A = "Get-Process", "Get-Service", "Get-Culture", "Get-PSDrive", "Get-ExecutionPolicy"
PS> ForEach ($Cmdlet in $A) {Invoke-Command $Cmdlet | Get-Member -Name MachineName}
TypeName: System.Diagnostics.Process
Name        MemberType Definition
----        ---------- ----------
MachineName Property   System.String MachineName {get;}
TypeName: System.ServiceProcess.ServiceController
Name        MemberType Definition
----        ---------- ----------
MachineName Property   System.String MachineName {get;set;}

Ez a parancs lekéri azokat az objektumokat, amelyek MachineName tulajdonsággal rendelkeznek a parancsmagok listájából.

Az első parancs több parancsmag nevét tárolja a $A változóban.

A második parancs egy ForEach utasítással hívja meg az egyes parancsokat, elküldi az eredményeket Get-Member, és korlátozza a Get-Member eredményeit a MachineName nevű tagokra.

Az eredmények azt mutatják, hogy csak a folyamatobjektumok (System.Diagnostics.Process) és a szolgáltatásobjektumok (System.ServiceProcess.ServiceController) rendelkeznek MachineName tulajdonságmal.

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

PS> $A = @(1)
PS> $A.Count
1
PS> Get-Member -InputObject $A
TypeName: System.Object[]
Name               MemberType    Definition
----               ----------    ----------
Count              AliasProperty Count = Length
Address            Method        System.Object& Address(Int32 )
Clone              Method        System.Object Clone()
...
PS> $A = @(1,2,3)
PS> Get-Member -InputObject $A
TypeName: System.Object[]
Name               MemberType    Definition
----               ----------    ----------
Count              AliasProperty Count = Length
Address            Method        System.Object& Address(Int32 )
Clone              Method        System.Object Clone()
...
PS> $A.Count
3

Ez a példa bemutatja, hogyan keresheti meg az objektumok tömbjének tulajdonságait és metódusait, ha csak egy adott típusú objektummal rendelkezik.

Mivel a parancs célja egy tömb tulajdonságainak megkeresése, az első parancs a InputObject paramétert használja. Az at szimbólumot (@) használja egy tömb jelzésére. Ebben az esetben a tömb csak egy objektumot, az 1 egész számot tartalmazza.

A harmadik parancs a Get-Member parancsmagot használja az egész számok tömbjének tulajdonságainak és metódusainak lekéréséhez, és a parancs menti őket a $A változóba.

A negyedik parancs a tömb Darabszám tulajdonságával keresi meg a $A változóban lévő objektumok számát.

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

PS> $File = Get-Item c:\test\textFile.txt
PS> $File.psobject.properties | Where-Object {$_.issettable} | Format-Table -Property name
Name
----
PSPath
PSParentPath
PSChildName
PSDrive
PSProvider
PSIsContainer
IsReadOnly
CreationTime
CreationTimeUtc
LastAccessTime
LastAccessTimeUtc
LastWriteTime
LastWriteTimeUtc
Attributes
PS> [appdomain]::CurrentDomain.GetAssemblies() | ForEach-Object { $_.getexportedtypes() } | ForEach-Object {$_.getproperties() | Where-Object {$_.canwrite }} | Select-Object reflectedtype, name

Ez a példa bemutatja, hogyan határozható meg, hogy egy objektum mely tulajdonságai módosíthatók. A példa egy fájlt használ, de ezzel a parancsformátummal megkeresheti bármelyik objektum módosítható tulajdonságait a Windows PowerShellben.

Az első parancs a Get-Item parancsmagot használja egy szövegfájl lekéréséhez, majd menti a fájlobjektumot a $File változóba.

A második parancs lekéri a fájlobjektum összes módosítható tulajdonságát a $File változóban, és megjeleníti a tábla tulajdonságainak nevét.

A harmadik parancs lekéri a Windows PowerShell-munkamenet összes objektumának módosítható tulajdonságait.

8. példa: A gyűjtemény egyes elemeinek tagjainak lekérése

PS> $S = Get-Service
PS> $S | Get-Member
TypeName: System.ServiceProcess.ServiceController
Name                      MemberType    Definition
----                      ----------    ----------
Name                      AliasProperty Name = ServiceName
RequiredServices          AliasProperty RequiredServices = ServicesDependedOn
Disposed                  Event         System.EventHandler Disposed(System.Object, System.EventArgs
Close                     Method        System.Void Close()
Continue                  Method        System.Void Continue()
CreateObjRef              Method        System.Runtime.Remoting.ObjRef CreateObjRef(type requestedTy
Dispose                   Method        System.Void Dispose()
...
PS> Get-Member -InputObject $S
TypeName: System.Object[]
Name           MemberType    Definition
----           ----------    ----------
Count          AliasProperty Count = Length
Address        Method        System.Object&, mscorlib, Version=2.0.0.0, Cultu
Clone          Method        System.Object Clone()
CopyTo         Method        System.Void CopyTo(array array, int index), Syst
Equals         Method        bool Equals(System.Object obj)
Get            Method        System.Object Get(int )
GetEnumerator  Method        System.Collections.IEnumerator GetEnumerator()
GetHashCode    Method        int GetHashCode()
...

Ez a példa bemutatja, hogyan működik az InputObject paraméter a Get-Member parancsmagban. Ha a InputObject paramétert használja egy gyűjtemény tagjainak lekéréséhez, a Get-Member lekéri a gyűjtemény tagjait. Ha objektumgyűjteményt csövez be Get-Member, Get-Member lekéri a gyűjtemény egyes elemeinek tagjait.

Az első parancs lekéri a szolgáltatásokat a helyi számítógépen, és menti a szolgáltatásokat a $S változóba.

A második parancs a $S változót a Get-Member parancsmagra irányítja. Get-Member lekéri a $S egyes tagjainak és az adott típusú tagoknak a típusait. Ebben az esetben ServiceController-objektumokat kap, és felsorolja a tagokat, például a RequiredServices és a Close elemet.

A harmadik parancs a Get-MemberInputObject paraméterét használja a $S változó elküldéséhez. Get-Member lekéri a típust (System.Object[]) és a ServiceController objektumok gyűjteményének (vagy tömbjének) tagjait, például a Darabszámot és a Klónozást.

Paraméterek

-Force

Hozzáadja a belső tagokat (PSBase, PSAdapted, PSObject, PSTypeNames) és a fordító által létrehozott get_ és set_ metódusokat a megjelenítéshez. Alapértelmezés szerint Get-Member ezeket a tulajdonságokat az Alap és az Adaptált nézeten kívül minden nézetben megkapja, de nem jeleníti meg őket.

Az alábbi lista a Force paraméter használatakor hozzáadott tulajdonságokat ismerteti:

  • PSBase: A .NET-keretrendszer objektumának eredeti tulajdonságai bővítmény vagy adaptáció nélkül. Ezek az objektumosztályhoz definiált és az MSDN-ben felsorolt tulajdonságok.
  • PSAdapted. A Bővített Windows PowerShell-típusrendszerben definiált tulajdonságok és metódusok.
  • PSExtended. A Types.ps1xml fájlokban vagy a Add-Member parancsmag használatával hozzáadott tulajdonságok és metódusok.
  • PSObject. Az alapobjektumot Windows 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 Windows PowerShell a Windows PowerShell telepítési könyvtárában ($pshome) megkeresi a Format.ps1xml fájlok típusait. Az első megtalált típus formázási definícióját használja.

Paramétertulajdonságok

Típus:SwitchParameter
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték: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 Get-Member. A különbségek a következők:

  • Ha objektumgyűjteményt csövez Get-Member, Get-Member lekéri a gyűjtemény egyes objektumainak tagjait, például az egyes sztringek tulajdonságait egy sztringtömbben.
  • Ha 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.

Paramétertulajdonságok

Típus:PSObject
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:True
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-MemberType

Megadja a parancsmag által lekért tagtípust. Az alapértelmezett érték az Összes.

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

  • AliasProperty
  • CodeProperty
  • Ingatlan
  • JegyzetTulajdonság
  • ScriptProperty
  • Tulajdonságok
  • Tulajdonságkészlet
  • Metódus
  • CodeMethod
  • ScriptMethod
  • Módszerek
  • ParaméterezettTulajdonság
  • MemberSet
  • Esemény
  • Dinamikus
  • Összes

Ezekről az értékekről további információt PSMemberTypes Enumeration az MSDN-kódtárban talál.

Nem minden objektum rendelkezik minden tagtípussal. Ha olyan tagtípust ad meg, amellyel az objektum nem rendelkezik, a Windows 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 használja a Statikus vagy Nézet paraméterekkel, a Tag lekérése lekéri a két csoporthoz tartozó tagokat.

Paramétertulajdonságok

Típus:PSMemberTypes
Alapértelmezett érték:None
Elfogadott értékek:AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet, Event, Dynamic, All
Támogatja a helyettesítő karaktereket:False
DontShow:False
Aliasok:Típus

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték: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, Viewvagy Static paraméterrel használja, a Tag lekérése csak azokat a tagokat kéri le, amelyek megfelelnek az összes paraméter feltételeinek.

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

Paramétertulajdonságok

Típus:

String[]

Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:0
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték: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 használja a View paraméterrel, a View paraméter figyelmen kívül lesz hagyva. Ha a Statikus paramétert használja a MemberType paraméterrel, a Get-Member csak a két csoporthoz tartozó tagokat kapja meg.

Paramétertulajdonságok

Típus:SwitchParameter
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték: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.

Az érvényes értékek a következők:

  • Alap. Csak a .NET-keretrendszer objektum eredeti tulajdonságait és metódusait kapja meg (bővítmény vagy adaptáció nélkül).
  • Igazítani. Csak a Bővített Windows PowerShell-típusrendszerben definiált tulajdonságokat és metódusokat kapja meg.
  • Kiterjedt. Csak a Types.ps1xml fájlokban vagy a Add-Member parancsmaggal hozzáadott tulajdonságokat és metódusokat kapja meg.
  • Összes. Lekéri a tagokat az Alap, az Adaptált és a Kiterjesztett nézetben.

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 a MemberType és View paramétereket használja ugyanabban a parancsban, a Tag lekérése lekéri a két csoporthoz tartozó tagokat. Ha a Statikus és View paramétereket használja ugyanabban a parancsban, a View paraméter figyelmen kívül lesz hagyva.

Paramétertulajdonságok

Típus:PSMemberViewTypes
Alapértelmezett érték:None
Elfogadott értékek:Extended, Adapted, Base, All
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

CommonParameters

Ez a parancsmag a következő gyakori paramétereket támogatja: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction és -WarningVariable. További információért lásd about_CommonParameters.

Bevitelek

PSObject

Bármilyen objektumot becsúszthat Get-Member.

Kimenetek

MemberDefinition

Get-Member minden egyes 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 megelőző pipálásával Get-Member.

    Az $This automatikus változót olyan 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 vonatkozik, amelyhez a tulajdonságokat és metódusokat hozzáadja. A $This változóval kapcsolatos további információkért lásd: about_Automatic_Variables.