Get-Member

Ruft die Eigenschaften und Methoden von Objekten ab.

Syntax

Get-Member [[-Name] <string[]>] [-Force] [-InputObject] [-MemberType {<AliasProperty> | <CodeProperty> | <Property> | <NoteProperty> | <ScriptProperty> | <Properties> | <PropertySet> | <Method> | <CodeMethod> | <ScriptMethod> | <Methods> | <ParameterizedProperty> | <MemberSet> | <Event> | <All>}] [-Static] [-View {<Extended> | <Adapted> | <Base> | <All>}] [<CommonParameters>]

Beschreibung

Mit dem Cmdlet "Get-Member" werden die Elemente (Eigenschaften und Methoden) von Objekten abgerufen.

Verwenden Sie zum Angeben des Objekts den InputObject-Parameter, oder übergeben Sie ein Objekt über die Pipeline an Get-Member. Um Informationen über statische Elemente (Elemente der Klasse, nicht der Instanz) abzurufen, verwenden Sie den Static-Parameter. Wenn Sie nur bestimmte Typen von Elementen, z. B. NoteProperties, abrufen möchten, verwenden Sie den MemberType-Parameter.

Parameter

-Force

Fügt der Anzeige die systeminternen Elemente (PSBase, PSAdapted, PSObject, PSTypeNames) sowie die vom Compiler generierte get_-Methode und set_-Methode hinzu. Standardmäßig werden mit Get-Member diese Eigenschaften in allen Ansichten außer "Base" und "Adapted" abgerufen, jedoch nicht angezeigt.

In der folgenden Liste werden die Eigenschaften beschrieben, die bei Verwendung des Force-Parameters hinzugefügt werden:

– PSBase: Die ursprünglichen Eigenschaften des .NET Framework-Objekts ohne Erweiterung oder Anpassung. Dies sind die Eigenschaften, die für die Objektklasse definiert sind und in MSDN aufgeführt werden.

– PSAdapted: Die im erweiterten Windows PowerShell-Typsystem definierten Eigenschaften und Methoden.

– PSExtended: Die Eigenschaften und Methoden, die in der Datei "Types.ps1xml" oder mit dem Cmdlet "Add-Member" hinzugefügt wurden.

– PSObject: Der Adapter, der das Basisobjekt in ein Windows PowerShell-PSObject-Objekt konvertiert.

– PSTypeNames: Eine nach Spezifität sortierte Liste von Objekttypen, die das Objekt beschreiben. Beim Formatieren des Objekts sucht Windows PowerShell die Typen in der Datei "Format.ps1xml" im Windows PowerShell-Installationsverzeichnis ("$pshome"). Die Formatierungsdefinition für den ersten gefundenen Typ wird verwendet.

 

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-InputObject <psobject>

Gibt das Objekt an, dessen Elemente abgerufen werden.

Das Verwenden des InputObject-Parameters und das Übergeben eines Objekts über die Pipeline an Get-Member sind nicht äquivalent. Die Unterschiede sind:

– Wenn Sie eine Auflistung von Objekten über die Pipeline an Get-Member übergeben, ruft Get-Member die Elemente der einzelnen Objekte in der Auflistung ab, z. B. die Eigenschaften der ganzen Zahlen in einem Array von ganzen Zahlen.

– Wenn Sie eine Auflistung von Objekten mit InputObject senden, ruft Get-Member die Elemente der Auflistung ab, z. B. die Eigenschaften des Arrays in einem Array von ganzen Zahlen.

 

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

true (ByValue)

Platzhalterzeichen akzeptieren?

false

-MemberType <PSMemberTypes>

Ruft nur Elemente mit dem angegebenen Elementtyp ab. Der Standardwert ist "All".

Die gültigen Werte für diesen Parameter lauten:

– AliasProperty: Eine Eigenschaft, die einen neuen Namen für eine vorhandene Eigenschaft definiert.

– CodeMethod: Eine Methode, die auf eine statische Methode einer .NET Framework-Klasse verweist.

– CodeProperty: Eine Eigenschaft, die auf eine statische Eigenschaft einer .NET Framework-Klasse verweist.

– Event: Gibt an, dass das Objekt eine Meldung sendet, um eine Aktion oder eine Statusänderung anzugeben.

– MemberSet: Eine vordefinierte Auflistung von Eigenschaften und Methoden, z. B. PSBase, PSObject und PSTypeNames.

– Method: Eine Methode des zugrunde liegenden .NET Framework-Objekts.

– NoteProperty: Eine Eigenschaft mit einem statischen Wert.

– ParameterizedProperty: Eine Eigenschaft, die Parameter und Parameterwerte akzeptiert.

– Property: Eine Eigenschaft des zugrunde liegenden .NET Framework-Objekts.

– PropertySet: Eine vordefinierte Auflistung von Objekteigenschaften.

– ScriptMethod: Eine Methode, deren Wert die Ausgabe eines Skripts ist.

– ScriptProperty: Eine Eigenschaft, deren Wert die Ausgabe eines Skripts ist.

– All: Ruft alle Elementtypen ab.

– Methods: Ruft alle Typen von Methoden des Objekts ab (z. B. Method, CodeMethod, ScriptMethod).

– Properties: Ruft alle Typen von Eigenschaften des Objekts ab (z. B. Property, CodeProperty, AliasProperty, ScriptProperty).

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

Verwenden Sie zum Abrufen verwandter Typen von Elementen, z. B. aller erweiterten Elemente, den View-Parameter. Wenn Sie den MemberType-Parameter mit dem Static-Parameter oder dem View-Parameter verwenden, ruft Get-Member die Elemente ab, die zu beiden Sätzen gehören.

 

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-Name <string[]>

Gibt die Namen einer oder mehrerer Eigenschaften oder Methoden des Objekts an. Mit Get-Member werden nur die angegebenen Eigenschaften und Methoden abgerufen.

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

Um ein statisches Element nach Name abzurufen, verwenden Sie den Static-Parameter mit dem Name-Parameter.

 

Erforderlich?

false

Position?

1

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-Static

Ruft nur die statischen Eigenschaften und Methoden des Objekts ab.

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

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

 

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-View <PSMemberViewTypes>

Ruft nur bestimmte Typen von Elementen (Eigenschaften und Methoden) ab. Geben Sie einen oder mehrere Werte an. Standardmäßig wird "Adapted, Extended" angegeben.

Gültige Werte:

– Base: Ruft nur die ursprünglichen Eigenschaften und Methoden des .NET Framework-Objekts (ohne Erweiterung oder Anpassung) ab.

– Adapted: Ruft nur die im erweiterten Windows PowerShell-Typsystem definierten Eigenschaften und Methoden ab.

– Extended: Ruft nur Eigenschaften und Methoden ab, die in der Datei "Types.ps1xml" oder mit dem Cmdlet "Add-Member" hinzugefügt wurden.

– All: Ruft die Elemente in den Ansichten "Base", "Adapted" und "Extended" ab.

Der View-Parameter bestimmt die abgerufenen Elemente und nicht nur die Anzeige dieser Elemente.

Um bestimmte Elementtypen, z. B. Skripteigenschaften, abzurufen, verwenden Sie den MemberType-Parameter. Wenn Sie den MemberType-Parameter und den View-Parameter im gleichen Befehl verwenden, ruft Get-Member die Elemente ab, die zu beiden Sätzen gehören. Wenn Sie den Static-Parameter und den View-Parameter im gleichen Befehl verwenden, wird der View-Parameter ignoriert.

 

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

<CommonParameters>

Dieses Cmdlet unterstützt die folgenden allgemeinen Parameter: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer und -OutVariable. Weitere Informationen finden Sie unter about_Commonparameters.

Eingaben und Ausgaben

Der Eingabetyp ist der Typ der Objekte, die über die Pipeline an das Cmdlet übergeben werden können. Der Rückgabetyp ist der Typ der Objekte, die das Cmdlet zurückgibt.

 

Eingaben

System.Management.Automation.PSObject

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

Ausgaben

Microsoft.PowerShell.Commands.MemberDefinition

Get-Member gibt ein Objekt für jede abgerufene Eigenschaft oder Methode zurück.

Hinweise

Sie können Informationen über ein Auflistungsobjekt abrufen, indem Sie den InputObject-Parameter verwenden oder das Objekt mit vorangestelltem Komma über die Pipeline an Get-Member übergeben.

Beispiel 1

C:\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;}

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

Die Ausgabe des Befehls "Get-Service" wird mithilfe des Pipelineoperators (|) an Get-Member gesendet.

Da Get-Member im Befehl über keine Parameter verfügt, werden alle Standardwerte verwendet. Mit dem Befehl werden alle Elementtypen abgerufen, jedoch werden keine statischen Elemente abgerufen und keine systeminternen Elemente angezeigt.







Beispiel 2

C:\PS>get-service | get-member -force

C:\PS> (get-service -schedule).psbase

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

Im ersten Befehl werden mit dem Cmdlet "Get-Service" Objekte abgerufen, die die Dienste auf dem System darstellen. Die Dienstobjekte werden mit einem Pipelineoperator (|) an das Cmdlet "Get-Member" übergeben.

Im Befehl "Get-Member" werden die systeminternen Elemente und die vom Compiler generierten Elemente der Objekte mithilfe des Force-Parameters der Anzeige hinzugefügt. Mit Get-Member werden diese Elemente abgerufen, jedoch standardmäßig ausgeblendet.

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







Beispiel 3

C:\PS>get-service	| get-member -view extended

   TypeName: System.ServiceProcess.ServiceController

Name MemberType    Definition
---- ----------    ----------
Name AliasProperty Name = ServiceName

Beschreibung
-----------
Mit diesem Befehl werden die Methoden und Eigenschaften von Dienstobjekten abgerufen, die mit der Datei "Types.ps1xml" oder dem Cmdlet "Add-Member" erweitert wurden. 


Im Befehl "Get-Member" werden mithilfe des View-Parameters nur die erweiterten Elemente der Dienstobjekte abgerufen. In diesem Fall ist das erweiterte Element die Name-Eigenschaft, die eine Aliaseigenschaft der ServiceName-Eigenschaft ist.







Beispiel 4

C:\PS>get-eventlog -log system | gm -membertype scriptproperty

   TypeName: System.Diagnostics.EventLogEntry

Name    MemberType     Definition
----    ----------     ----------
EventID ScriptProperty System.Object EventID {get=$this.get_EventID() -band 0xFFFF;}

Beschreibung
-----------
Mit diesem Befehl werden die Skripteigenschaften von Ereignisprotokollobjekten im Systemprotokoll der Ereignisanzeige abgerufen. In diesem Fall ist die einzige Skripteigenschaft die EventID.







Beispiel 5

C:\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;}

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

Im Befehl werden mithilfe des MemberType-Parameters nur Objekte abgerufen, deren MemberType-Eigenschaft den Wert "AliasProperty" aufweist.

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







Beispiel 6

C:\PS>$a = "get-process", "get-service", "get-culture", "get-psdrive", "get-executionpolicy"

C:\PS> foreach ($cmdlet in $a) {invoke-expression $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;}

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

Im ersten Befehl werden die Namen mehrerer Cmdlets in der Variablen "$a" gespeichert.

Im zweiten Befehl werden die einzelnen Befehle mithilfe einer ForEach-Anweisung aufgerufen, die Ergebnisse an Get-Member gesendet und die Ergebnisse von Get-Member auf Elemente mit dem Namen "MachineName" beschränkt.

In den Ergebnissen wird gezeigt, dass nur Prozessobjekte (System.Diagnostics.Process) und Dienstobjekte (System.ServiceProcess.ServiceController) über die MachineName-Eigenschaft verfügen.







Beispiel 7

C:\PS>$a = get-member -inputobject @(1)

C:\PS>$a.count

1

C:\PS> $a = get-member -inputobject 1,2,3

   TypeName: System.Object[]
Name               MemberType    Definition
----               ----------    ----------
Count              AliasProperty Count = Length
Address            Method        System.Object& Address(Int32 )
Clone              Method        System.Object Clone()
...

C:\PS>$a.count
1

Beschreibung
-----------
In diesem Beispiel wird veranschaulicht, wie die Eigenschaften und Methoden eines Objektarrays gesucht werden, wenn nur ein Objekt des angegebenen Typs vorhanden ist.

Da mit dem Befehl die Eigenschaften eines Arrays gesucht werden sollen, wird im ersten Befehl der InputObject-Parameter verwendet. Mit dem at-Symbol (@) wird ein Array angegeben. In diesem Fall enthält das Array nur ein Objekt, die ganze Zahl 1. 

Der dritte Befehl ruft mit dem Cmdlet "Get-Member" die Eigenschaften und Methoden eines Arrays von ganzen Zahlen ab und speichert diese in der Variablen "$a".

Im vierten Befehl wird die Anzahl der Objekte in der Variablen "$a" mithilfe der Count-Eigenschaft ermittelt.







Siehe auch

Anzeigen: