Get-Member
Ruft die Eigenschaften und Methoden von Objekten ab.
Syntax
Get-Member
[-InputObject <PSObject>]
[[-Name] <String[]>]
[-MemberType <PSMemberTypes>]
[-View <PSMemberViewTypes>]
[-Static]
[-Force]
[<CommonParameters>]
Beschreibung
Das Cmdlet Get-Member
ruft die Elemente, 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-.
Get-Member
gibt eine Liste von Elementen zurück, die alphabetisch sortiert sind. Methoden werden zuerst aufgelistet, gefolgt von den Eigenschaften.
Beispiele
Beispiel 1: Abrufen der Member von Prozessobjekten
Mit diesem Befehl werden die Eigenschaften und Methoden der vom Cmdlet Get-Service
generierten Dienstobjekte angezeigt.
Da der Get-Member
Teil des Befehls keine Parameter enthält, werden Standardwerte für die Parameter verwendet. Standardmäßig erhalten Get-Member
keine statischen oder systeminternen Member.
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) von Dienstobjekten abgerufen, die vom Cmdlet Get-Service
abgerufen werden, einschließlich der systeminternen Member, z. B. PSBase-, PSObject-sowie der methoden get_ und set_.
Get-Service | Get-Member -Force
(Get-Service Schedule).PSBase
Der befehl Get-Member
verwendet den parameter Force, um die systeminternen Member und compilergenerierten Member der Objekte zur Anzeige hinzuzufügen. 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 Zeitplandiensts angezeigt wird. Weitere Informationen zu systeminternen Membern finden Sie unter about_Intrinsic_Members
Beispiel 3: Abrufen erweiterter Elemente von Dienstobjekten
In diesem Beispiel werden die Methoden und Eigenschaften von Dienstobjekten, die mithilfe einer Types.ps1xml
-Datei oder des cmdlets Add-Member
erweitert wurden, ab.
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 befehl Get-Member
verwendet den Parameter View, um nur die erweiterten Member der Dienstobjekte abzurufen. In diesem Fall ist das erweiterte Element die eigenschaft Name, bei der es sich um eine Aliaseigenschaft der ServiceName-eigenschaft handelt.
Beispiel 4: Abrufen von Skripteigenschaften von Ereignisprotokollobjekten
In diesem Beispiel werden die Skripteigenschaften von Ereignisprotokollobjekten im Systemprotokoll in der Ereignisanzeige aufgerufen.
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 NoteProperty
für die MemberType-Eigenschaft ab.
Der Befehl gibt die eigenschaft Message des EventLogRecord-Objekts zurück.
Beispiel 5: Abrufen von Objekten mit einer angegebenen Eigenschaft
In diesem Beispiel werden Objekte abgerufen, die eine MachineName-Eigenschaft in der Ausgabe aus einer Liste von Cmdlets enthalten.
Die variable $list
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 von Get-Member
auf Member, die den Namen MachineNamehaben.
$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 an Get-Member
weiterleiten und arrays, 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 Zeichenfolgen--Objekt, wie beim Übergeben des Arrays an Get-Member
. Wenn $array
mithilfe des InputObject Parameter übergeben wird, gibt Get-Member
die Elemente des Object[] - Typs zurück.
Beispiel 7: Bestimmen, welche Objekteigenschaften Sie festlegen können
In diesem Beispiel wird gezeigt, wie Sie bestimmen, 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
Beispiel 8: Auflisten der Eigenschaften eines Objekts in der Reihenfolge, in der sie erstellt wurden
In diesem Beispiel wird ein neues PSObject- erstellt und diesem Eigenschaften hinzugefügt.
Get-Member
listet die Eigenschaften in alphabetischer Reihenfolge auf. Um die Eigenschaften in der Reihenfolge anzuzeigen, in der sie dem Objekt hinzugefügt wurden, müssen Sie das PSObject systeminternen Member verwenden.
$Asset = New-Object -TypeName PSObject
$d = [ordered]@{Name="Server30";System="Server Core";PSVersion="4.0"}
$Asset | Add-Member -NotePropertyMembers $d -TypeName Asset
$Asset.PSObject.Properties | Select-Object Name, Value
Name Value
---- -----
Name Server30
System Server Core
PSVersion 4.0
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 Parameter "Force" 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 hinzugefügt wurden oder das cmdletAdd-Member
verwenden. -
PSObject
: Der Adapter, der das Basisobjekt in ein PowerShell-PSObject--Objekt konvertiert. -
PSTypeNames
: Eine Liste von Objekttypen, die das Objekt beschreiben, in der Reihenfolge der Spezifität. Beim Formatieren des Objekts sucht PowerShell nach den Typen in denFormat.ps1xml
Dateien im PowerShell-Installationsverzeichnis ($PSHOME
). Sie verwendet die Formatierungsdefinition für den ersten gefundenen Typ.
Standardmäßig ruft Get-Member
diese Eigenschaften in allen Ansichten ab, mit Ausnahme Base- und Angepassten, zeigt sie jedoch nicht an.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-InputObject
Gibt das Objekt an, dessen Member abgerufen werden.
Die Verwendung des InputObject--Parameters entspricht nicht dem Anfügen eines Objekts an Get-Member
. Die Unterschiede sind wie folgt:
- Wenn Sie eine Auflistung von Objekten an
Get-Member
übergeben, ruftGet-Member
die Elemente 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, ruft
Get-Member
die Elemente der Auflistung ab, z. B. die Eigenschaften des Arrays in einem Array von Zeichenfolgen.
Typ: | PSObject |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-MemberType
Gibt den Membertyp an, den dieses Cmdlet abruft. Der Standardwert ist All
.
Die zulässigen Werte für diesen Parameter sind:
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 kombinieren, um mehrere Flags mithilfe dieses Parameters festzulegen. Die Werte können als Array von Werten oder als kommagetrennte Zeichenfolge dieser Werte an den MemberType Parameter übergeben werden. Das Cmdlet kombiniert die Werte mithilfe eines Binary-OR-Vorgangs. Das Übergeben von Werten als Array ist die einfachste Option und ermöglicht ihnen auch die Verwendung des Tabstopps für die Werte.
Informationen zu diesen Werten finden Sie unter PSMemberTypes Enumeration.
Nicht alle Objekte weisen jeden Elementtyp auf. Wenn Sie einen Elementtyp angeben, über den das Objekt nicht verfügt, gibt 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 Parameter MemberType mit den Parametern Static oder View verwenden, ruft Get-Member
die Elemente ab, die zu beiden Sätzen gehören.
Typ: | PSMemberTypes |
Aliase: | Type |
Zulässige Werte: | AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet, Event, Dynamic, All |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | 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 Parameter Name mit dem Parameter MemberType, Viewoder Static Parameter verwenden, ruft Get-Member
nur die Member ab, die den Kriterien aller Parameter entsprechen.
Um ein statisches Element anhand des Namens abzurufen, verwenden Sie den Parameter Static mit dem parameter Name.
Typ: | String[] |
Position: | 0 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | 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 oder Force Parameter verwenden, ignoriert das Cmdlet diese Parameter. Wenn Sie den Parameter Static mit dem Parameter MemberType verwenden, ruft Get-Member
nur die Member ab, die zu beiden Sätzen gehören.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-View
Gibt an, dass dieses Cmdlet nur bestimmte Typeneigenschaften und -methoden abruft. Geben Sie einen oder mehrere werte an. Der Standardwert ist Angepasst, Extended.
Die zulässigen Werte für diesen Parameter sind:
- 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.
- Ausgedehnt. Ruft nur die Eigenschaften und Methoden ab, die in einer
Types.ps1xml
-Dateien oder mithilfe des cmdletsAdd-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.
Typ: | PSMemberViewTypes |
Zulässige Werte: | Extended, Adapted, Base, All |
Position: | Named |
Standardwert: | Adapted, Extended |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
Eingaben
Sie können jedes Objekt an dieses Cmdlet weiterleiten.
Ausgaben
Dieses Cmdlet gibt eine MemberDefinition- für jede abzurufende Eigenschaft oder Methode zurück.
Hinweise
PowerShell enthält die folgenden Aliase für Get-Member
:
- Alle Plattformen:
gm
Sie können Informationen zu einem Auflistungsobjekt entweder mithilfe des InputObject-Parameters abrufen oder indem Sie das Objekt, dem ein Komma vorangestellt ist, an 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, 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 Typdarstellt, z. B. ein Typliteral wie [int]
, Get-Member
Informationen zum [System.RuntimeType]
Typ zurückgeben. Wenn Sie jedoch den Parameter Static verwenden, gibt Get-Member
die statischen Elemente des spezifischen Typs zurück, der durch die System.RuntimeType
Instanz dargestellt wird.