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 Member, die Eigenschaften und Methoden von -Objekten ab.
Verwenden Sie zum Angeben des Objekts den InputObject-Parameter, oder leiten Sie ein Objekt an .Get-Member
Um Informationen zu statischen Membern abzurufen, verwenden die Member der Klasse, nicht der instance, den Static-Parameter. Verwenden Sie den MemberType-Parameter, um nur bestimmte Typen von Membern abzurufen, z. B. NoteProperties.
Beispiele
Beispiel 1: Abrufen der Member von Prozessobjekten
Mit diesem Befehl werden die Eigenschaften und Methoden der vom Cmdlet generierten Get-Service
Dienstobjekte angezeigt.
Da der Get-Member
Teil des Befehls über keine Parameter verfügt, werden Standardwerte für die Parameter verwendet. 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 Membern von Dienstobjekten
In diesem Beispiel werden alle Member (Eigenschaften und Methoden) der vom Get-Service
Cmdlet abgerufenen Dienstobjekte abgerufen, einschließlich der systeminternen Member wie PSBase, PSObject und der Methoden get_ und set_ .
Get-Service | Get-Member -Force
(Get-Service Schedule).PSBase
Der Get-Member
Befehl verwendet den Force-Parameter , um der Anzeige die systeminternen Member und vom Compiler generierten Member der Objekte 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. Weitere Informationen zu systeminternen Membern finden Sie unter about_Intrinsic_Members anzeigen des Werts der PSBase-Eigenschaft des Schedule-Diensts. Weitere Informationen zu intrinsischen Elementen finden Sie unter about_Intrinsic_Members
Beispiel 3: Abrufen erweiterter Member von Dienstobjekten
In diesem Beispiel werden die Methoden und Eigenschaften von Dienstobjekten abgerufen, 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 View-Parameter , um nur die erweiterten Member der Dienstobjekte abzurufen. In diesem Fall ist das erweiterte Element die Name-Eigenschaft , eine Aliaseigenschaft der ServiceName-Eigenschaft .
Beispiel 4: Abrufen von Skripteigenschaften von Ereignisprotokollobjekten
In diesem Beispiel werden die Skripteigenschaften von Ereignisprotokollobjekten im Systemprotokoll in Ereignisanzeige abgerufen.
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 dem Wert von NoteProperty
für ihre 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 mit einer MachineName-Eigenschaft in der Ausgabe aus einer Liste von Cmdlets abgerufen.
Die $list
Variable enthält eine Liste von Cmdlets, die ausgewertet werden sollen. Die foreach-Anweisung ruft jeden Befehl auf und sendet die Ergebnisse an Get-Member
. Der Name-Parameter schränkt die Ergebnisse Get-Member
auf Member ein, die den Namen MachineName haben.
$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 über eine MachineName-Eigenschaft verfügen.
Beispiel 6: Abrufen von Membern für ein Array
In diesem Beispiel wird veranschaulicht, wie Sie die Member eines Arrays von Objekten finden. Wenn Sie eine Pipe und ein Array von Objekten an Get-Member
ausführen, gibt das Cmdlet eine Memberliste für jeden eindeutigen Objekttyp im Array zurück.
Wenn Sie das Array mit dem InputObject-Parameter ü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
gesehen wird. Wenn $array
mit dem InputObject-ParameterGet-Member
übergeben wird, werden die Member des Object[]- Typs zurückgegeben.
Beispiel 7: Bestimmen 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 Member und die vom Compiler generierten get_ - und set_ -Methoden zur Anzeige hinzu. In der folgenden Liste werden die Eigenschaften beschrieben, die hinzugefügt werden, wenn Sie den Force-Parameter verwenden:
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 Eigenschaften und Methoden, die im Erweiterten PowerShell-Typsystem definiert sind.PSExtended
: Die Eigenschaften und Methoden, die in denTypes.ps1xml
Dateien oder mithilfe desAdd-Member
Cmdlets hinzugefügt wurden.PSObject
: Der Adapter, der das Basisobjekt in ein PowerShell-PSObject-Objekt konvertiert.PSTypeNames
: Eine Liste von Objekttypen, die das Objekt in der Reihenfolge der Spezifität beschreiben. Beim Formatieren des Objekts sucht PowerShell nach den Typen in denFormat.ps1xml
Dateien im PowerShell-Installationsverzeichnis ($PSHOME
). Dabei wird die Formatierungsdefinition für den ersten gefundenen Typ verwendet.
Ruft standardmäßig Get-Member
diese Eigenschaften in allen Ansichten mit Ausnahme von Base und Adapt ab, zeigt sie jedoch nicht an.
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 ist nicht identisch mit dem Piping eines Objekts an Get-Member
. Es gibt die folgenden Unterschiede:
- Wenn Sie eine Auflistung von -Objekten an
Get-Member
übergeben,Get-Member
ruft die Member der einzelnen Objekte in der Auflistung ab, z. B. die Eigenschaften jeder Zeichenfolge in einem Array von Zeichenfolgen. - Wenn Sie InputObject verwenden, um eine Auflistung von -Objekten zu übermitteln,
Get-Member
ruft die Member 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 Membertyp an, den dieses Cmdlet abruft. Der Standardwert lautet All
.
Zulässige Werte für diesen Parameter:
AliasProperty
CodeProperty
Property
NoteProperty
ScriptProperty
Properties
PropertySet
Method
CodeMethod
ScriptMethod
Methods
ParameterizedProperty
MemberSet
Event
Dynamic
All
Diese Werte werden als flagbasierte Enumeration definiert. Sie können mehrere Werte miteinander kombinieren, um mehrere Flags mit diesem Parameter festzulegen. Die Werte können als Array von Werten oder als durch Trennzeichen getrennte Zeichenfolge dieser Werte an den MemberType-Parameter übergeben werden. Das Cmdlet kombiniert die Werte mithilfe eines binär-OR-Vorgangs. Das Übergeben von Werten als Array ist die einfachste Option und ermöglicht es Ihnen auch, die Tabulatorvervollständigung für die Werte zu verwenden.
Informationen zu diesen Werten finden Sie unter PSMemberTypes-Enumeration.
Nicht alle Objekte verfügen über jeden Membertyp. Wenn Sie einen Membertyp angeben, den das Objekt nicht aufweist, gibt PowerShell einen NULL-Wert 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, ruft die Member ab, 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 Member abgerufen, Get-Member
die die Kriterien aller Parameter erfüllen.
Um ein statisches Element nach Name 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, ruft nur die Member ab, 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 ab (ohne Erweiterung oder Anpassung).
- 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 desAdd-Member
Cmdlets hinzugefügt wurden. - Alle. Ruft die Member in den Ansichten „Base“, „Adapted“ und „Extended“ ab.
Der View-Parameter bestimmt die abgerufenen Member, nicht nur die Anzeige dieser Member.
Verwenden Sie den MemberType-Parameter , um bestimmte Membertypen abzurufen, z. B. Skripteigenschaften. Wenn Sie die Parameter MemberType und View im gleichen Befehl verwenden, ruft die Member ab, Get-Member
die zu beiden Sätzen gehören. Wenn Sie die Parameter Static und View im gleichen Befehl verwenden, wird der View-Parameter 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
Sie können jedes Objekt an übergeben Get-Member
.
Ausgaben
Get-Member
gibt ein Objekt für jede Eigenschaft oder Methode zurück, die bzw. die abgerufen wird.
Hinweise
Sie können Informationen zu einem Auflistungsobjekt abrufen, indem Sie entweder den InputObject-Parameter verwenden oder das Objekt mit einem Komma an Get-Member
pipieren.
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 instance des Objekts, dem 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, wie z. B. ein Typliteral, [int]
Get-Member
geben Sie Informationen zum [System.RuntimeType]
Typ zurück. Wenn Sie jedoch den Static-Parameter verwenden, werden die statischen Member des spezifischen Typs zurückgegeben, Get-Member
der System.RuntimeType
vom instance dargestellt wird.