Freigeben über


Get-Member

Ruft die Eigenschaften und Methoden von Objekten ab.

Syntax

Default (Standard)

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

Beschreibung

Das Cmdlet Get-Member ruft die Member, die Eigenschaften und Methoden von Objekten ab.

Verwenden Sie zum Angeben des Objekts den InputObject-Parameter , oder übergeben Sie ein Objekt an Get-Member. Um Informationen zu statischen Membern abzurufen, verwenden Sie die Member der Klasse, nicht die Instanz, den parameter Static. Verwenden Sie den Parameter MemberType, um nur bestimmte Elementtypen abzurufen, z. B. NoteProperties-.

Beispiele

Beispiel 1: Abrufen der Member von Prozessobjekten

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

Mit diesem Befehl werden die Eigenschaften und Methoden der Prozessobjekte (System.ServiceProcess.ServiceController) angezeigt, die vom Cmdlet Get-Service generiert werden.

Der Befehl verwendet den Pipelineoperator (|), um die Ausgabe eines Get-Service-Befehls an Get-Member zu senden.

Da der Get-Member-Teil des Befehls über keine Parameter verfügt, werden alle Standardwerte verwendet. Daher werden alle Membertypen abgerufen, aber keine statischen Member abgerufen und keine systeminternen Member angezeigt.

Beispiel 2: Abrufen von Mitgliedern von Dienstobjekten

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

In diesem Beispiel werden alle Member (Eigenschaften und Methoden) der Dienstobjekte (System.ServiceProcess.ServiceController) abgerufen, die vom Cmdlet Get-Service abgerufen werden, einschließlich der systeminternen Member, z. B. PSBase und PSObject, sowie der Methoden get_ und set_.

Im ersten Befehl wird das Cmdlet Get-Service verwendet, um Objekte abzurufen, die die Dienste auf dem System darstellen. Er verwendet einen Pipelineoperator (|), um die Dienstobjekte an das Cmdlet Get-Member zu übergeben.

Der Befehl Get-Member verwendet den Force-Parameter , um der Anzeige die systeminternen Member und die vom Compiler generierten Member der Objekte hinzuzufügen. Get-Member ruft diese Member ab, blendet sie jedoch standardmäßig aus.

Sie können diese Eigenschaften und Methoden auf die gleiche Weise wie eine angepasste Methode des Objekts verwenden. Der zweite Befehl zeigt, wie der Wert der PSBase-Eigenschaft des Schedule-Diensts angezeigt wird.

Beispiel 3: Abrufen erweiterter Elemente von Dienstobjekten

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

Mit diesem Befehl werden die Methoden und Eigenschaften von Dienstobjekten abgerufen, die mithilfe der Datei Types.ps1xml oder des Cmdlets Add-Member erweitert wurden.

Der Befehl Get-Member verwendet den View-Parameter, um nur die erweiterten Member der Serviceobjekte abzurufen. In diesem Fall handelt es sich bei dem erweiterten Member um die Name-Eigenschaft, bei der es sich um eine Aliaseigenschaft der ServiceName-Eigenschaft handelt.

Beispiel 4: Abrufen von Skripteigenschaften von Ereignisprotokollobjekten

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

Mit diesem Befehl werden die Skripteigenschaften von Ereignisprotokollobjekten im Systemprotokoll in der Ereignisanzeige abgerufen.

Der Befehl verwendet den MemberType-Parameter , um nur Objekte mit dem Wert ScriptProperty für ihre MemberType-Eigenschaft abzurufen.

Der Befehl gibt die EventID-Eigenschaft des EventLog-Objekts zurück.

Beispiel 5: Abrufen von Objekten mit einer angegebenen Eigenschaft

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

Mit diesem Befehl werden Objekte, die über eine MachineName-Eigenschaft verfügen, aus einer Liste von Cmdlets abgerufen.

Der erste Befehl speichert die Namen mehrerer Cmdlets in der Variablen $A.

Der zweite Befehl verwendet eine ForEach-Anweisung , um jeden Befehl aufzurufen, die Ergebnisse an Get-Member zu senden und die Ergebnisse von Get-Member auf Member mit dem Namen MachineName zu beschränken.

Die Ergebnisse zeigen, dass nur Prozessobjekte (System.Diagnostics.Process) und Dienstobjekte (System.ServiceProcess.ServiceController) über eine MachineName-Eigenschaft verfügen.

Beispiel 6: Abrufen von Mitgliedern für ein Array

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

In diesem Beispiel wird veranschaulicht, wie Sie die Eigenschaften und Methoden eines Arrays von Objekten suchen, wenn nur ein Objekt des angegebenen Typs vorhanden ist.

Da das Ziel des Befehls darin besteht, die Eigenschaften eines Arrays zu finden, verwendet der erste Befehl den InputObject-Parameter . Es verwendet das at-Symbol (@), um ein Array anzugeben. In diesem Fall enthält das Array nur ein Objekt, die ganze Zahl 1.

Der dritte Befehl verwendet das Cmdlet Get-Member , um die Eigenschaften und Methoden eines Arrays von ganzen Zahlen abzurufen, und speichert sie in der Variablen $A.

Der vierte Befehl verwendet die Count-Eigenschaft des Arrays, um die Anzahl der Objekte in der Variablen $A zu ermitteln.

Beispiel 7: Bestimmen, welche Objekteigenschaften Sie festlegen können

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

In diesem Beispiel wird gezeigt, wie Sie bestimmen, welche Eigenschaften eines Objekts geändert werden können. Im Beispiel wird eine Datei verwendet, aber Sie können dieses Befehlsformat verwenden, um die veränderbaren Eigenschaften eines beliebigen Objekts in Windows PowerShell zu suchen.

Der erste Befehl verwendet das Cmdlet Get-Item, um eine Textdatei abzurufen, und speichert dann das Dateiobjekt in der Variablen $File.

Der zweite Befehl ruft alle änderbaren Eigenschaften des Dateiobjekts in der Variablen $File ab und zeigt die Namen der Eigenschaften in einer Tabelle an.

Mit dem dritten Befehl werden die änderbaren Eigenschaften aller Objekte in der Windows PowerShell-Sitzung abgerufen.

Beispiel 8: Abrufen von Mitgliedern der einzelnen Elemente in einer Auflistung

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

In diesem Beispiel wird gezeigt, wie der Parameter InputObject im Cmdlet Get-Member funktioniert. Wenn Sie den InputObject-Parameter verwenden, um die Member einer Auflistung abzurufen, ruft Get-Member die Member der Auflistung ab. Wenn Sie eine Auflistung von Objekten über die Pipeline an Get-Member übergeben, ruft Get-Member die Member der einzelnen Elemente in der Auflistung ab.

Mit dem ersten Befehl werden die Dienste auf dem lokalen Computer abgerufen und in der Variablen $S gespeichert.

Mit dem zweiten Befehl wird die Variable $S über die Pipeline an das Cmdlet Get-Member übergeben. Get-Member ruft die Typen der einzelnen Member von $S und die Member dieses Typs ab. In diesem Fall werden ServiceController-Objekte abgerufen und die Member aufgelistet, z. B. RequiredServices und Close.

Der dritte Befehl verwendet den InputObject-Parameter von Get-Member , um die $S Variable zu übermitteln. Get-Member ruft den Typ (System.Object[]) und die Member der Auflistung (oder des Arrays) von ServiceController-Objekten ab, z. B. Count und Clone.

Parameter

-Force

Fügt der Anzeige die systeminternen Member (PSBase, PSAdapted, PSObject, PSTypeNames) und die vom Compiler generierten get_- und set_Methoden hinzu. Standardmäßig ruft Get-Member diese Eigenschaften in allen Ansichten mit Ausnahme von "Basis" und "Angepasst" ab, zeigt sie jedoch nicht an.

In der folgenden Liste werden die Eigenschaften beschrieben, die hinzugefügt werden, wenn Sie den Parameter "Force" verwenden:

  • PSBase: Die ursprünglichen Eigenschaften des .NET Framework-Objekts ohne Erweiterung oder Anpassung. Dies sind die Eigenschaften, die für die Objektklasse definiert und in MSDN aufgeführt sind.
  • PSAdapted. Die Eigenschaften und Methoden, die im erweiterten Typsystem von Windows PowerShell definiert sind.
  • PSExtended. Die Eigenschaften und Methoden, die in den Dateien "Types.ps1xml" oder mithilfe des Cmdlets "Add-Member" hinzugefügt wurden.
  • PSObject. Der Adapter, der das Basisobjekt in einWindows PowerShell-PSObject-Objekt konvertiert.
  • PSTypeNames. Eine Liste von Objekttypen, die das Objekt beschreiben, in der Reihenfolge ihrer Spezifität. Beim Formatieren des Objekts sucht Windows PowerShell nach den Typen in den Dateien Format.ps1xml im Windows PowerShell-Installationsverzeichnis ($pshome). Sie verwendet die Formatierungsdefinition für den ersten gefundenen Typ.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-InputObject

Gibt das Objekt an, dessen Member abgerufen werden.

Die Verwendung des InputObject-Parameters ist nicht dasselbe wie das Weiterleiten eines Objekts an Get-Member. Es gibt folgende Unterschiede:

  • Wenn Sie eine Auflistung von Objekten über die Pipeline an Get-Member übergeben, ruft Get-Member die Member der einzelnen Objekte in der Auflistung ab, z. B. die Eigenschaften der einzelnen Zeichenfolgen in einem Array von Zeichenfolgen.
  • Wenn Sie InputObject verwenden, um eine Auflistung von Objekten zu übermitteln, ruft Get-Member die Member der Auflistung ab, z. B. die Eigenschaften des Arrays in einem Array von Zeichenfolgen.

Parametereigenschaften

Typ:PSObject
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:True
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-MemberType

Gibt den Membertyp an, den dieses Cmdlet abruft. Der Standardwert ist Alle.

Die zulässigen Werte für diesen Parameter sind:

  • AliasProperty
  • CodeProperty
  • Eigentum
  • NoteProperty
  • ScriptProperty
  • Eigenschaften
  • PropertySet
  • Methode
  • CodeMethod
  • ScriptMethod
  • Methodik
  • ParametrizedEigenschaft
  • MemberSet
  • Ereignis
  • Dynamisch
  • Alle

Informationen zu diesen Werten finden Sie unter PSMemberTypes-Enumeration in der MSDN Library.

Nicht alle Objekte weisen jeden Elementtyp auf. Wenn Sie einen Membertyp angeben, über den das Objekt nicht verfügt, gibt Windows PowerShell einen NULL-Wert zurück.

Verwenden Sie den parameter View, um verwandte Typen von Mitgliedern abzurufen, z. B. alle erweiterten Member. Wenn Sie den MemberType-Parameter mit dem Static-Parameteroder demView-Parameter verwenden, ruft Get-Member die Member ab, die zu beiden Sätzen gehören.

Parametereigenschaften

Typ:PSMemberTypes
Standardwert:None
Zulässige Werte:AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet, Event, Dynamic, All
Unterstützt Platzhalter:False
Nicht anzeigen:False
Aliase:Typ

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Name

Gibt die Namen einer oder mehrerer Eigenschaften oder Methoden des Objekts an. Get-Member ruft nur die angegebenen Eigenschaften und Methoden ab.

Wenn Sie den Name-Parameter mit dem MemberType-, View- oder Static-Parameter verwenden, ruft Get-Member nur die Member ab, die die Kriterien aller Parameter erfüllen.

Um ein statisches Element anhand des Namens abzurufen, verwenden Sie den Parameter Static mit dem parameter Name.

Parametereigenschaften

Typ:

String[]

Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:0
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Static

Gibt an, dass dieses Cmdlet nur die statischen Eigenschaften und Methoden des Objekts abruft.

Statische Eigenschaften und Methoden werden für die Klasse von Objekten definiert, nicht für eine bestimmte Instanz der Klasse.

Wenn Sie den Parameter Static mit dem Parameter View verwenden, wird der Parameter View ignoriert. Wenn Sie den Static-Parameter mit dem MemberType-Parameter verwenden, ruft Get-Member nur die Member ab, die zu beiden Sätzen gehören.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-View

Gibt an, dass dieses Cmdlet nur bestimmte Typeneigenschaften und -methoden abruft. Geben Sie einen oder mehrere werte an. Die Standardeinstellung ist Angepasst, Erweitert.

Gültige Werte sind:

  • Basis. Ruft nur die ursprünglichen Eigenschaften und Methoden des .NET Framework-Objekts ab (ohne Erweiterung oder Anpassung).
  • Angepasst. Ruft nur die Eigenschaften und Methoden ab, die im erweiterten Windows PowerShell-Typsystem definiert sind.
  • Ausgedehnt. Ruft nur die Eigenschaften und Methoden ab, die in den Dateien "Types.ps1xml" oder mithilfe des Cmdlets "Add-Member" hinzugefügt wurden.
  • Alle. Ruft die Member in den Ansichten "Basis", "Angepasst" und "Erweitert" ab.

Der parameter View bestimmt die abgerufenen Member, nicht nur die Anzeige dieser Member.

Verwenden Sie zum Abrufen bestimmter Membertypen, z. B. Skripteigenschaften, den MemberType-Parameter. Wenn Sie die Parameter MemberType und View im selben Befehl verwenden, ruft Get-Member die Member ab, die zu beiden Sätzen gehören. Wenn Sie die Parameter Static und View im selben Befehl verwenden, wird der parameter View ignoriert.

Parametereigenschaften

Typ:PSMemberViewTypes
Standardwert:None
Zulässige Werte:Extended, Adapted, Base, All
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

CommonParameters

Dieses Cmdlet unterstützt die allgemeinen Parameter -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.

Eingaben

PSObject

Sie können jedes Objekt über die Pipeline an Get-Member übergeben.

Ausgaben

MemberDefinition

Get-Member gibt ein Objekt für jede Eigenschaft oder Methode zurück, die bzw. die es abruft.

Hinweise

  • Sie können Informationen zu einem Auflistungsobjekt abrufen, indem Sie entweder den InputObject-Parameter verwenden oder das Objekt mit einem vorangestellten Komma an Get-Member übergeben.

    Sie können die $This automatische Variable in Skriptblöcken verwenden, die die Werte neuer Eigenschaften und Methoden definieren. Die Variable $This bezieht sich auf die Instanz des Objekts, der die Eigenschaften und Methoden hinzugefügt werden. Weitere Informationen zur Variablen $This finden Sie unter about_Automatic_Variables.