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