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 pipe ett objekt för att Get-Member. Om du vill få information om statiska medlemmar använder medlemmarna i klassen, inte för instansen, parametern Static. Om du bara vill hämta vissa typer av medlemmar, till exempel NotePropertiesanvä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 för att Get-Member.

Eftersom Get-Member del av 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 View för att endast hämta utökade medlemmar i tjänstobjekten. I det här fallet är den utökade medlemmen egenskapen Namn, 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 egenskapen EventID för objektet EventLog.

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 över 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-Memberoch begränsa resultatet från Get-Member till medlemmar som har namnet MachineName.

Resultatet 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 egenskaperna och metoderna 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 egenskaperna och metoderna 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 av 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 medlemmar i en samling hämtar Get-Member medlemmarna i samlingen. När du skicka en samling objekt till Get-Memberhämtar Get-Member medlemmarna i 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 visar medlemmar, 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) för 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 till visningen. 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 det utökade Windows PowerShell-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 ordning efter specificitet. När du formaterar objektet 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.
Typ:SwitchParameter
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken: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. Skillnaderna är följande:

  • När du skicka en samling objekt till Get-Memberhämtar Get-Member- medlemmarna i de enskilda objekten i samlingen, till exempel egenskaperna för varje sträng i en strängmatris.
  • När du använder InputObject- för att skicka en samling objekt hämtar Get-Member medlemmarna i samlingen, till exempel matrisens egenskaper i en matris med strängar.
Typ:PSObject
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:True
Godkänn jokertecken:False

-MemberType

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

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

  • AliasProperty
  • CodeProperty
  • Egenskap
  • NoteProperty
  • ScriptProperty
  • Egenskaper
  • PropertySet
  • Metod
  • CodeMethod
  • ScriptMethod
  • Metoder
  • ParameterizedProperty
  • Medlemsuppsättning
  • 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 View. Om du använder parametern MemberType med parametrarna Static eller View hämtar Get-Member de medlemmar som tillhör båda uppsättningarna.

Typ:PSMemberTypes
Alias:Type
Godkända värden:AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet, Event, Dynamic, All
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken: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 Name med parametern MemberType, Vieweller Static får 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 Name.

Typ:String[]
Position:0
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken: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 parametern Static med parametern View ignoreras parametern View. Om du använder parametern Static med parametern MemberType hämtar Get-Member bara de medlemmar som tillhör båda uppsättningarna.

Typ:SwitchParameter
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-View

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

Giltiga värden är:

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

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

Typ:PSMemberViewTypes
Godkända värden:Extended, Adapted, Base, All
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken: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 hämtas.

Kommentarer

  • Du kan hämta information om ett samlingsobjekt antingen med hjälp av parametern InputObject eller genom att skicka ett 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 det objekt som egenskaperna och metoderna läggs till i. Mer information om variabeln $This finns i about_Automatic_Variables.