Get-Member

Ruft die Eigenschaften und Methoden der Objekte ab.

Syntax

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

Beschreibung

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

Verwenden Sie zum Angeben des Objekts den InputObject-Parameter oder das Pipen eines Objekts an Get-Member. Verwenden Sie zum Abrufen von Informationen zu statischen Membern die Member der Klasse, nicht der Instanz, den Static-Parameter . Verwenden Sie den MemberType-Parameter, um nur bestimmte Typen von Membern abzurufen, z. B. NoteProperties.

Beispiele

Beispiel 1: Abrufen der Elemente von Prozessobjekten

Mit diesem Befehl werden die Eigenschaften und Methoden der vom Get-Service Cmdlet generierten Dienstobjekte angezeigt.

Da der Get-Member Teil des Befehls keine Parameter enthält, verwendet er Standardwerte für die Parameter. Standardmäßig Get-Member werden keine statischen oder systeminternen Member abgerufen.

Get-Service | Get-Member

TypeName: System.Service.ServiceController#StartupType

Name                      MemberType    Definition
----                      ----------    ----------
Name                      AliasProperty Name = ServiceName
RequiredServices          AliasProperty RequiredServices = ServicesDependedOn
Disposed                  Event         System.EventHandler Disposed(System.Object, System.EventArgs)
Close                     Method        void Close()
Continue                  Method        void Continue()
Dispose                   Method        void Dispose(), void IDisposable.Dispose()
Equals                    Method        bool Equals(System.Object obj)
ExecuteCommand            Method        void ExecuteCommand(int command)
GetHashCode               Method        int GetHashCode()
GetLifetimeService        Method        System.Object GetLifetimeService()
GetType                   Method        type GetType()
InitializeLifetimeService Method        System.Object InitializeLifetimeService()
Pause                     Method        void Pause()
Refresh                   Method        void Refresh()
Start                     Method        void Start(), void Start(string[] args)
Stop                      Method        void Stop()
WaitForStatus             Method        void WaitForStatus(System.ServiceProcess.ServiceControllerSt...
BinaryPathName            Property      System.String {get;set;}
CanPauseAndContinue       Property      bool CanPauseAndContinue {get;}
CanShutdown               Property      bool CanShutdown {get;}
CanStop                   Property      bool CanStop {get;}
Container                 Property      System.ComponentModel.IContainer Container {get;}
DelayedAutoStart          Property      System.Boolean {get;set;}
DependentServices         Property      System.ServiceProcess.ServiceController[] DependentServices {get;}
Description               Property      System.String {get;set;}
DisplayName               Property      string DisplayName {get;set;}
MachineName               Property      string MachineName {get;set;}
ServiceHandle             Property      System.Runtime.InteropServices.SafeHandle ServiceHandle {get;}
ServiceName               Property      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;}
StartType                 Property      System.ServiceProcess.ServiceStartMode StartType {get;}
StartupType               Property      Microsoft.PowerShell.Commands.ServiceStartupType {get;set;}
Status                    Property      System.ServiceProcess.ServiceControllerStatus Status {get;}
UserName                  Property      System.String {get;set;}
ToString                  ScriptMethod  System.Object ToString();

Beispiel 2: Abrufen von Mitgliedern von Dienstobjekten

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

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

Der Get-Member Befehl verwendet den Parameter Force , um die systeminternen Member und compilergenerierten Elemente der Objekte zur Anzeige hinzuzufügen. Sie können diese Eigenschaften und Methoden auf die gleiche Weise verwenden wie eine angepasste Methode des Objekts. Der zweite Befehl veranschaulicht, wie Sie den Wert der PSBase-Eigenschaft des Zeitplandiensts anzeigen können.

Beispiel 3: Abrufen erweiterter Elemente von Dienstobjekten

In diesem Beispiel werden die Methoden und Eigenschaften von Dienstobjekten abzurufen, die mithilfe einer Types.ps1xml Datei oder des Add-Member Cmdlets erweitert wurden.

Get-Service | Get-Member -View Extended

TypeName: System.Service.ServiceController#StartupType

Name             MemberType    Definition
----             ----------    ----------
Name             AliasProperty Name = ServiceName
RequiredServices AliasProperty RequiredServices = ServicesDependedOn
ToString         ScriptMethod  System.Object ToString();

Der Get-Member Befehl verwendet den Parameter "View ", um nur die erweiterten Member der Dienstobjekte abzurufen. In diesem Fall ist das erweiterte Element die Name-Eigenschaft , die eine Aliaseigenschaft der ServiceName-Eigenschaft ist.

Beispiel 4: Abrufen von Skripteigenschaften von Ereignisprotokollobjekten

In diesem Beispiel werden die Skripteigenschaften von Ereignisprotokollobjekten im Systemprotokoll in Ereignisanzeige abrufen.

Get-WinEvent -LogName System -MaxEvents 1 | Get-Member -MemberType NoteProperty

TypeName: System.Diagnostics.Eventing.Reader.EventLogRecord

Name    MemberType   Definition
----    ----------   ----------
Message NoteProperty string Message=The machine-default permission settings do not grant Local ...

Der MemberType-Parameter ruft nur Objekte mit einem Wert NoteProperty für die MemberType-Eigenschaft ab.

Der Befehl gibt die Message-Eigenschaft des EventLogRecord-Objekts zurück.

Beispiel 5: Abrufen von Objekten mit einer angegebenen Eigenschaft

In diesem Beispiel werden Objekte abgerufen, die über eine MachineName-Eigenschaft in der Ausgabe aus einer Liste von Cmdlets verfügen.

Die $list Variable enthält eine Liste der zu bewertenden Cmdlets. Die Foreach-Anweisung ruft jeden Befehl auf und sendet die Ergebnisse an Get-Member. Der Parameter Name beschränkt die Ergebnisse auf Get-Member Elemente mit dem Namen MachineName.

$list = "Get-Process", "Get-Service", "Get-Culture", "Get-PSDrive", "Get-ExecutionPolicy"
foreach ($cmdlet in $list) {& $cmdlet | Get-Member -Name MachineName}

TypeName: System.Diagnostics.Process

Name        MemberType Definition
----        ---------- ----------
MachineName Property   string MachineName {get;}

   TypeName: System.Service.ServiceController#StartupType

Name        MemberType Definition
----        ---------- ----------
MachineName Property   string MachineName {get;set;}

Die Ergebnisse zeigen, dass nur Prozessobjekte und Dienstobjekte eine MachineName-Eigenschaft aufweisen.

Beispiel 6: Abrufen von Mitgliedern für ein Array

In diesem Beispiel wird veranschaulicht, wie Die Member eines Arrays von Objekten gefunden werden. Wenn Sie Objekte Get-Memberanleiten und anführen, gibt das Cmdlet eine Memberliste für jeden eindeutigen Objekttyp im Array zurück. Wenn Sie das Array mithilfe des InputObject-Parameters übergeben, wird das Array als einzelnes Objekt behandelt.

$array = @(1,'hello')
$array | Get-Member

TypeName: System.Int32

Name        MemberType Definition
----        ---------- ----------
CompareTo   Method     int CompareTo(System.Object value), int CompareTo(int value), int ICompar...
Equals      Method     bool Equals(System.Object obj), bool Equals(int obj), bool IEquatable[int...
GetHashCode Method     int GetHashCode()
GetType     Method     type GetType()
GetTypeCode Method     System.TypeCode GetTypeCode(), System.TypeCode IConvertible.GetTypeCode()
ToBoolean   Method     bool IConvertible.ToBoolean(System.IFormatProvider provider)
ToByte      Method     byte IConvertible.ToByte(System.IFormatProvider provider)
...

   TypeName: System.String

Name                 MemberType            Definition
----                 ----------            ----------
Clone                Method                System.Object Clone(), System.Object ICloneable.Clone()
CompareTo            Method                int CompareTo(System.Object value), int CompareTo(str...
Contains             Method                bool Contains(string value), bool Contains(string val...
CopyTo               Method                void CopyTo(int sourceIndex, char[] destination, int ...
EndsWith             Method                bool EndsWith(string value), bool EndsWith(string val...
EnumerateRunes       Method                System.Text.StringRuneEnumerator EnumerateRunes()
Equals               Method                bool Equals(System.Object obj), bool Equals(string va...
GetEnumerator        Method                System.CharEnumerator GetEnumerator(), System.Collect...
GetHashCode          Method                int GetHashCode(), int GetHashCode(System.StringCompa...
...

Get-Member -InputObject $array

TypeName: System.Object[]

Name           MemberType            Definition
----           ----------            ----------
Add            Method                int IList.Add(System.Object value)
Address        Method                System.Object&, System.Private.CoreLib, Version=4.0.0.0, Cu...
Clear          Method                void IList.Clear()
Clone          Method                System.Object Clone(), System.Object ICloneable.Clone()
CompareTo      Method                int IStructuralComparable.CompareTo(System.Object other, Sy...
...

Die $array Variable enthält ein Int32-Objekt und ein Zeichenfolgenobjekt , wie beim Übergeben des Arrays an Get-Member. Wenn $array mithilfe des InputObject-ParametersGet-Member übergeben wird, werden die Elemente des Object[] -Typs zurückgegeben.

Beispiel 7: Ermitteln der Objekteigenschaften, die Sie festlegen können

Dieses Beispiel zeigt, wie Sie bestimmen können, welche Eigenschaften eines Objekts geändert werden können.

$File = Get-Item c:\test\textFile.txt
$File.PSObject.Properties | Where-Object isSettable | Select-Object -Property Name

Name
----
PSPath
PSParentPath
PSChildName
PSDrive
PSProvider
PSIsContainer
IsReadOnly
CreationTime
CreationTimeUtc
LastAccessTime
LastAccessTimeUtc
LastWriteTime
LastWriteTimeUtc
Attributes

Parameter

-Force

Fügt die systeminternen Elemente und die vom Compiler generierten get_ und set_ Methoden zur Anzeige hinzu. In der folgenden Liste werden die Eigenschaften beschrieben, die beim Verwenden des Force-Parameters hinzugefügt werden:

  • PSBase: Die ursprünglichen Eigenschaften des .NET-Objekts ohne Erweiterung oder Anpassung. Dies sind die Eigenschaften, die für die Objektklasse definiert sind.
  • PSAdapted. Die im Erweiterten PowerShell-System definierten Eigenschaften und Methoden.
  • PSExtended. Die Eigenschaften und Methoden, die in den Types.ps1xml Dateien oder mithilfe des Add-Member Cmdlets hinzugefügt wurden.
  • PSObject. Der Adapter, der das Basisobjekt in ein PowerShell PSObject-Objekt konvertiert.
  • PSTypeNames. Eine Liste der Objekttypen, die das Objekt nach Genauigkeit beschreiben. Beim Formatieren des Objekts sucht PowerShell nach den Typen in den Format.ps1xml Dateien im PowerShell-Installationsverzeichnis ($PSHOME). Dabei wird die Formatierungsdefinition für den ersten gefundenen Typ verwendet.

Ruft diese Eigenschaften standardmäßig in allen Ansichten ab, Get-Member außer "Basis " und "Angepasst", wird jedoch nicht angezeigt.

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

-InputObject

Gibt das Objekt an, dessen Member abgerufen werden.

Die Verwendung des InputObject-Parameters entspricht nicht der Leitung eines Objekts an Get-Member. Es gibt die folgenden Unterschiede:

  • Wenn Sie eine Auflistung von Objekten an Get-MemberGet-Member , ruft die Elemente der einzelnen Objekte in der Auflistung ab, z. B. die Eigenschaften jeder Zeichenfolge in einem Array von Zeichenfolgen.
  • Wenn Sie InputObject zum Übermitteln einer Auflistung von Objekten verwenden, Get-Member ruft die Elemente der Auflistung ab, z. B. die Eigenschaften des Arrays in einem Array von Zeichenfolgen.
Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-MemberType

Gibt den Elementtyp an, den dieses Cmdlet abruft. Die Standardeinstellung ist Alle.

Zulässige Werte für diesen Parameter:

  • AliasProperty
  • CodeProperty
  • Eigenschaft
  • NoteProperty
  • ScriptProperty
  • Eigenschaften
  • PropertySet
  • Methode
  • CodeMethod
  • ScriptMethod
  • Methoden
  • ParameterizedProperty
  • MemberSet
  • Ereignis
  • Dynamisch
  • All

Informationen zu diesen Werten finden Sie unter PSMemberTypes-Enumeration.

Nicht alle Objekte verfügen über jeden Membertyp. Wenn Sie einen Membertyp angeben, über den das Objekt nicht verfügt, gibt PowerShell einen Nullwert zurück.

Um verwandte Membertypen, wie z. B. alle erweiterten Member abzurufen, verwenden Sie den View-Parameter. Wenn Sie den MemberType-Parameter mit den Parametern "Static " oder "View " verwenden, werden die Elemente abgerufen, Get-Member die zu beiden Sätzen gehören.

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

Gibt die Namen von mindestens einer Eigenschaft oder Methode des Objekts an. Get-Member ruft nur die angegebenen Eigenschaften und Methoden ab.

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

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

Type:String[]
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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, 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, werden nur die Elemente abgerufen, Get-Member die zu beiden Sätzen gehören.

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

-View

Gibt an, dass dieses Cmdlet nur bestimmte Typeneigenschaften und -methoden abruft. Geben Sie mindestens einen der Werte an. Der Standardwert ist "Angepasst", "Erweitert".

Zulässige Werte für diesen Parameter:

  • Basis. Ruft nur die ursprünglichen Eigenschaften und Methoden des .NET-Objekts (ohne Erweiterung oder Anpassung) ab.
  • Angepasst. Ruft nur die Eigenschaften und Methoden ab, die im erweiterten PowerShell-Typsystem definiert sind.
  • Erweiterte. Ruft nur die Eigenschaften und Methoden ab, die in einer Types.ps1xml Datei oder mithilfe des Add-Member Cmdlets hinzugefügt wurden.
  • Alle. Ruft die Member in den Ansichten „Base“, „Adapted“ und „Extended“ ab.

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

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

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

Eingaben

PSObject

Sie können ein beliebiges Objekt an Get-Member.

Ausgaben

MemberDefinition

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

Hinweise

Sie können Informationen zu einem Auflistungsobjekt entweder mithilfe des InputObject-Parameters oder durch Das Pipieren des Objekts, voran einem Komma, abrufen.Get-Member

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

Wenn Sie ein Objekt übergeben, das einen Typ darstellt, z. B. einen Typliteral, [int]Get-Member geben Sie Informationen zum [System.RuntimeType] Typ zurück. Wenn Sie jedoch den Static-Parameter verwenden, werden die statischen Elemente des spezifischen Typs zurückgegeben, Get-Member der durch die System.RuntimeType Instanz dargestellt wird.