Dela via


Get-Member

Hämtar egenskaper och metoder för objekt.

Syntax

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

Description

Cmdleten Get-Member hämtar objektens medlemmar, egenskaper och metoder.

Om du vill ange objektet använder du parametern InputObject eller skicka ett objekt till Get-Member. Om du vill få information om statiska medlemmar använder medlemmarna i klassen, inte instansen, parametern Static . Om du bara vill hämta vissa typer av medlemmar, till exempel NoteProperties, använder du parametern MemberType .

Exempel

Exempel 1: Hämta medlemmar i processobjekt

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

Det här kommandot visar egenskaperna och metoderna för processobjekten (System.ServiceProcess.ServiceController) som genereras av cmdleten Get-Service.

Kommandot använder pipelineoperatorn (|) för att skicka utdata från ett Get-Service-kommando till Get-Member.

Eftersom get-member-delen i kommandot inte har några parametrar använder den alla standardvärden. Därför hämtar den alla medlemstyper, men den får inte statiska medlemmar och visar inte inbyggda medlemmar.

Exempel 2: Hämta medlemmar i tjänstobjekt

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

I det här exemplet hämtas alla medlemmar (egenskaper och metoder) för tjänstobjekten (System.ServiceProcess.ServiceController) som hämtas av cmdleten Get-Service, inklusive de inbyggda medlemmarna, till exempel PSBase och PSObject, samt metoderna get_ och set_.

Det första kommandot använder cmdleten Get-Service för att hämta objekt som representerar tjänsterna i systemet. Den använder en pipelineoperator (|) för att skicka tjänstobjekten till cmdleten Get-Member .

Kommandot Get-Member använder parametern Force för att lägga till de inbyggda medlemmarna och kompilatorgenererade medlemmarna i objekten i visningen. Get-Member hämtar dessa medlemmar, men de döljs som standard.

Du kan använda dessa egenskaper och metoder på samma sätt som du använder en anpassad metod för objektet. Det andra kommandot visar hur du visar värdet för PSBase-egenskapen för schedule-tjänsten.

Exempel 3: Hämta utökade medlemmar i tjänstobjekt

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

Det här kommandot hämtar metoderna och egenskaperna för tjänstobjekt som har utökats med hjälp av filen Types.ps1xml eller cmdleten Add-Member.

Kommandot Get-Member använder parametern Visa för att endast hämta utökade medlemmar i tjänstobjekten. I det här fallet är den utökade medlemmen egenskapen Name, som är en aliasegenskap för egenskapen ServiceName.

Exempel 4: Hämta skriptegenskaper för händelseloggobjekt

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

Det här kommandot hämtar skriptegenskaperna för händelseloggobjekt i systemloggen i Loggboken.

Kommandot använder parametern MemberType för att endast hämta objekt med värdet ScriptProperty för egenskapen MemberType.

Kommandot returnerar EventID-egenskapen för EventLog-objektet .

Exempel 5: Hämta objekt med en angiven egenskap

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

Det här kommandot hämtar objekt som har en MachineName-egenskap från en lista med cmdletar.

Det första kommandot lagrar namnen på flera cmdletar i variabeln $A.

Det andra kommandot använder en ForEach-instruktion för att anropa varje kommando, skicka resultatet till Get-Member och begränsa resultaten från Get-Member till medlemmar som har namnet MachineName.

Resultaten visar att endast processobjekt (System.Diagnostics.Process) och tjänstobjekt (System.ServiceProcess.ServiceController) har en MachineName-egenskap.

Exempel 6: Hämta medlemmar för en matris

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

Det här exemplet visar hur du hittar egenskaper och metoder för en matris med objekt när du bara har ett objekt av den angivna typen.

Eftersom målet med kommandot är att hitta egenskaperna för en matris använder det första kommandot parametern InputObject . Den använder at-symbolen (@) för att ange en matris. I det här fallet innehåller matrisen bara ett objekt, heltal 1.

Det tredje kommandot använder cmdleten Get-Member för att hämta egenskaper och metoder för en matris med heltal, och kommandot sparar dem i variabeln $A.

Det fjärde kommandot använder egenskapen Count för matrisen för att hitta antalet objekt i variabeln $A.

Exempel 7: Avgöra vilka objektegenskaper du kan ange

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

Det här exemplet visar hur du avgör vilka egenskaper för ett objekt som kan ändras. I exemplet används en fil, men du kan använda det här kommandoformatet för att hitta de ändringsbara egenskaperna för alla objekt i Windows PowerShell.

Det första kommandot använder cmdleten Get-Item för att hämta en textfil och sparar sedan filobjektet i variabeln $File.

Det andra kommandot hämtar alla föränderliga egenskaper för filobjektet i variabeln $File och visar namnen på egenskaperna i en tabell.

Det tredje kommandot hämtar de ändringsbara egenskaperna för alla objekt i din Windows PowerShell session.

Exempel 8: Hämta medlemmar i varje objekt i en samling

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

Det här exemplet visar hur parametern InputObject fungerar i cmdleten Get-Member . När du använder parametern InputObject för att hämta medlemmarna i en samling hämtar Get-Member medlemmarna i samlingen. När du skickar en samling objekt till Get-Member hämtar Get-Member medlemmarna för varje objekt i samlingen.

Det första kommandot hämtar tjänsterna på den lokala datorn och sparar tjänsterna i variabeln $S.

Det andra kommandot skickar variabeln $S till cmdleten Get-Member . Get-Member hämtar typerna av varje medlem i $S och medlemmar av den typen. I det här fallet hämtar den ServiceController-objekt och listar medlemmarna, till exempel RequiredServices och Close.

Det tredje kommandot använder parametern InputObject för Get-Member för att skicka variabeln $S. Get-Member hämtar typen (System.Object[]) och medlemmarna i samlingen (eller matrisen) av ServiceController-objekt , till exempel Antal och Klona.

Parametrar

-Force

Lägger till de inbyggda medlemmarna (PSBase, PSAdapted, PSObject, PSTypeNames) och de kompilatorgenererade get_- och set_-metoderna i displayen. Som standard hämtar Get-Member dessa egenskaper i alla andra vyer än Base och Adapted, men de visas inte.

I följande lista beskrivs de egenskaper som läggs till när du använder parametern Force :

  • PSBase: De ursprungliga egenskaperna för .NET Framework-objektet utan tillägg eller anpassning. Det här är de egenskaper som definierats för objektklassen och som anges i MSDN.
  • PSAdapted. De egenskaper och metoder som definierats i Windows PowerShell utökade typsystemet.
  • PSExtended. De egenskaper och metoder som lades till i Types.ps1xml-filerna eller med hjälp av cmdleten Add-Member.
  • PSObject. Adaptern som konverterar basobjektet till ett Windows PowerShell PSObject-objekt.
  • PSTypeNames. En lista över objekttyper som beskriver objektet i specificitetsordning. När objektet formateras söker Windows PowerShell efter typerna i Format.ps1xml-filerna i Windows PowerShell installationskatalogen ($pshome). Den använder formateringsdefinitionen för den första typen som hittas.
Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Anger det objekt vars medlemmar hämtas.

Att använda parametern InputObject är inte detsamma som att skicka ett objekt till Get-Member. Skillnader:

  • När du skickar en samling objekt till Get-Member hämtar Get-Member medlemmarna i de enskilda objekten i samlingen, till exempel egenskaperna för varje sträng i en matris med strängar.
  • När du använder InputObject för att skicka en samling objekt hämtar Get-Member medlemmarna i samlingen, till exempel egenskaperna för matrisen i en matris med strängar.
Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-MemberType

Anger den medlemstyp som den här cmdleten får. Standardvärdet är Alla.

De acceptabla värdena för den här parametern är:

  • AliasProperty
  • CodeProperty
  • Egenskap
  • NoteProperty
  • ScriptProperty
  • Egenskaper
  • PropertySet
  • Metod
  • CodeMethod
  • ScriptMethod
  • Metoder
  • ParameterizedProperty
  • Memberset
  • Händelse
  • Dynamisk
  • Alla

Information om dessa värden finns i PSMemberTypes Enumeration i MSDN-biblioteket.

Alla objekt har inte alla typer av medlemmar. Om du anger en medlemstyp som objektet inte har returnerar Windows PowerShell ett null-värde.

Om du vill hämta relaterade typer av medlemmar, till exempel alla utökade medlemmar, använder du parametern Visa . Om du använder parametern MemberType med parametrarna Statisk ellerVisa hämtar Get-Member de medlemmar som tillhör båda uppsättningarna.

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
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Name

Anger namnen på en eller flera egenskaper eller metoder för objektet. Get-Member hämtar endast de angivna egenskaperna och metoderna.

Om du använder parametern Namn med parametern MemberType, View eller Static hämtar Get-Member bara de medlemmar som uppfyller kriterierna för alla parametrar.

Om du vill hämta en statisk medlem efter namn använder du parametern Static med parametern Namn .

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

-Static

Anger att den här cmdleten bara hämtar objektets statiska egenskaper och metoder.

Statiska egenskaper och metoder definieras för objektklassen, inte på någon viss instans av klassen.

Om du använder den statiska parametern med parametern Visa ignoreras parametern Visa . Om du använder parametern Static med parametern MemberType hämtar Get-Member bara de medlemmar som tillhör båda uppsättningarna.

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

-View

Anger att den här cmdleten endast hämtar vissa typer av egenskaper och metoder. Ange ett eller flera av värdena. Standardvärdet är Anpassad, Utökad.

Giltiga värden är:

  • Base. Hämtar endast de ursprungliga egenskaperna och metoderna för .NET Framework-objektet (utan tillägg eller anpassning).
  • Anpassade. Hämtar endast de egenskaper och metoder som definierats i Windows PowerShell utökade typsystemet.
  • Utökad. Hämtar endast de egenskaper och metoder som har lagts till i Types.ps1xml-filerna eller med hjälp av cmdleten Add-Member.
  • Alla. Hämtar medlemmarna i vyerna Base, Adapted och Extended.

Parametern Visa avgör vilka medlemmar som hämtats, inte bara visningen av dessa medlemmar.

Om du vill hämta vissa medlemstyper, till exempel skriptegenskaper, använder du parametern MemberType . Om du använder parametrarna MemberType och View i samma kommando hämtar Get-Member de medlemmar som tillhör båda uppsättningarna. Om du använder parametrarna Static och View i samma kommando ignoreras parametern Visa .

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

Indata

PSObject

Du kan skicka valfritt objekt till Get-Member.

Utdata

MemberDefinition

Get-Member returnerar ett objekt för varje egenskap eller metod som den får.

Kommentarer

  • Du kan hämta information om ett samlingsobjekt antingen med hjälp av parametern InputObject eller genom att skicka objektet före ett kommatecken till Get-Member.

    Du kan använda den $This automatiska variabeln i skriptblock som definierar värdena för nya egenskaper och metoder. Variabeln $This refererar till instansen av objektet som egenskaperna och metoderna läggs till i. Mer information om variabeln $This finns i about_Automatic_Variables.