Get-Member
Hiermee haalt u de eigenschappen en methoden van objecten op.
Syntaxis
Get-Member
[-InputObject <PSObject>]
[[-Name] <String[]>]
[-MemberType <PSMemberTypes>]
[-View <PSMemberViewTypes>]
[-Static]
[-Force]
[<CommonParameters>]
Description
Met de cmdlet Get-Member
worden de leden, de eigenschappen en methoden van objecten opgehaald.
Als u het object wilt opgeven, gebruikt u de parameter InputObject of geeft u een object door om Get-Member
. Gebruik de parameter Static om informatie over statische leden op te halen, de leden van de klasse, niet van het exemplaar. Als u alleen bepaalde typen leden wilt ophalen, zoals NoteProperties, gebruikt u de parameter MemberType.
Get-Member
retourneert een lijst met leden die alfabetisch zijn gesorteerd. Methoden worden eerst weergegeven, gevolgd door de eigenschappen.
Voorbeelden
Voorbeeld 1: De leden van procesobjecten ophalen
Met deze opdracht worden de eigenschappen en methoden weergegeven van de serviceobjecten die zijn gegenereerd door de Get-Service
-cmdlet.
Omdat het Get-Member
deel van de opdracht geen parameters heeft, worden standaardwaarden voor de parameters gebruikt. Standaard krijgt Get-Member
geen statische of intrinsieke leden.
Get-Service | Get-Member
TypeName: System.ServiceProcess.ServiceController
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()
CreateObjRef Method System.Runtime.Remoting.ObjRef CreateObjRef(type requestedType)
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...
CanPauseAndContinue Property bool CanPauseAndContinue {get;}
CanShutdown Property bool CanShutdown {get;}
CanStop Property bool CanStop {get;}
Container Property System.ComponentModel.IContainer Container {get;}
DependentServices Property System.ServiceProcess.ServiceController[] DependentServices {get;}
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;}
Status Property System.ServiceProcess.ServiceControllerStatus Status {get;}
ToString ScriptMethod System.Object ToString();
Voorbeeld 2: Leden van serviceobjecten ophalen
In dit voorbeeld worden alle leden (eigenschappen en methoden) opgehaald van serviceobjecten die zijn opgehaald door de cmdlet Get-Service
, inclusief de intrinsieke leden, zoals PSBase-, PSObjecten de get_- en set_-methoden.
Get-Service | Get-Member -Force
(Get-Service Schedule).PSBase
De opdracht Get-Member
maakt gebruik van de parameter Force om de intrinsieke leden en door compiler gegenereerde leden van de objecten toe te voegen aan de weergave. U kunt deze eigenschappen en methoden op dezelfde manier gebruiken als u een aangepaste methode van het object zou gebruiken. De tweede opdracht laat zien hoe u de waarde van de eigenschap PSBase van de Schedule-service weergeeft. Zie about_Intrinsic_Members voor meer informatie over intrinsieke leden
Voorbeeld 3: Uitgebreide leden van serviceobjecten ophalen
In dit voorbeeld worden de methoden en eigenschappen opgehaald van serviceobjecten die zijn uitgebreid met behulp van een Types.ps1xml
-bestand of de Add-Member
-cmdlet.
Get-Service | Get-Member -View Extended
TypeName: System.ServiceProcess.ServiceController
Name MemberType Definition
---- ---------- ----------
Name AliasProperty Name = ServiceName
RequiredServices AliasProperty RequiredServices = ServicesDependedOn
ToString ScriptMethod System.Object ToString();
De opdracht Get-Member
maakt gebruik van de parameter View om alleen de uitgebreide leden van de serviceobjecten op te halen. In dit geval is het uitgebreide lid de eigenschap Name, een aliaseigenschap van de eigenschap ServiceName.
Voorbeeld 4: Scripteigenschappen ophalen van gebeurtenislogboekobjecten
In dit voorbeeld worden de scripteigenschappen opgehaald van gebeurtenislogboekobjecten in het systeemlogboek in Logboeken.
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 ...
De parameter MemberType haalt alleen objecten op met een waarde van NoteProperty
voor de eigenschap MemberType.
De opdracht retourneert de eigenschap Message van het EventLogRecord-object.
Voorbeeld 5: Objecten ophalen met een opgegeven eigenschap
In dit voorbeeld worden objecten opgehaald met een eigenschap MachineName in de uitvoer van een lijst met cmdlets.
De $list
variabele bevat een lijst met cmdlets die moeten worden geëvalueerd. De foreach
-instructie roept elke opdracht aan en verzendt de resultaten naar Get-Member
. De parameter Name beperkt de resultaten van Get-Member
tot leden met de naam 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.ServiceProcess.ServiceController
Name MemberType Definition
---- ---------- ----------
MachineName Property string MachineName {get;set;}
De resultaten laten zien dat alleen procesobjecten en serviceobjecten een eigenschap MachineName hebben.
Voorbeeld 6: Leden ophalen voor een matrix
In dit voorbeeld ziet u hoe u de leden van een matrix met objecten kunt vinden. Wanneer u objecten doorgeeft aan Get-Member
, retourneert de cmdlet een ledenlijst voor elk uniek objecttype in de matrix.
Als u de matrix doorgeeft met behulp van de parameter InputObject, wordt de matrix behandeld als één object.
$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...
...
De variabele $array
bevat een Int32--object en een tekenreeks object, zoals wordt gezien wanneer de matrix wordt doorgesluisd naar Get-Member
. Wanneer $array
wordt doorgegeven met behulp van de parameter InputObjectGet-Member
retourneert de leden van het Object[] type.
Voorbeeld 7: Bepalen welke objecteigenschappen u kunt instellen
In dit voorbeeld ziet u hoe u kunt bepalen welke eigenschappen van een object kunnen worden gewijzigd.
$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
Voorbeeld 8: De eigenschappen van een object weergeven in de volgorde waarin ze zijn gemaakt
In dit voorbeeld wordt een nieuwe PSObject- gemaakt en worden er eigenschappen aan toegevoegd.
Get-Member
geeft een lijst weer van de eigenschappen in alfabetische volgorde. Als u de eigenschappen in de volgorde wilt zien waarin ze aan het object zijn toegevoegd, moet u het PSObject intrinsiek lid gebruiken.
$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
Parameters
-Force
Voegt de intrinsieke leden en de door de compiler gegenereerde get_ en set_ methoden toe aan de weergave. In de volgende lijst worden de eigenschappen beschreven die worden toegevoegd wanneer u de parameter Force gebruikt:
-
PSBase
: de oorspronkelijke eigenschappen van het .NET-object zonder extensie of aanpassing. Dit zijn de eigenschappen die zijn gedefinieerd voor de objectklasse. -
PSAdapted
: de eigenschappen en methoden die zijn gedefinieerd in het uitgebreide PowerShell-typesysteem. -
PSExtended
: de eigenschappen en methoden die zijn toegevoegd aan deTypes.ps1xml
-bestanden of met behulp van de cmdletAdd-Member
. -
PSObject
: de adapter die het basisobject converteert naar een PowerShell-PSObject-object. -
PSTypeNames
: een lijst met objecttypen die het object beschrijven, in volgorde van specificiteit. Bij het opmaken van het object zoekt PowerShell naar de typen in deFormat.ps1xml
bestanden in de Installatiemap van PowerShell ($PSHOME
). Hierbij wordt de opmaakdefinitie gebruikt voor het eerste type dat wordt gevonden.
Standaard krijgt Get-Member
deze eigenschappen in alle weergaven, behalve Base- en Aangepaste, maar worden deze niet weergegeven.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-InputObject
Hiermee geeft u het object waarvan de leden worden opgehaald.
Het gebruik van de parameter InputObject is niet hetzelfde als het doorsluisen van een object naar Get-Member
. De verschillen zijn als volgt:
- Wanneer u een verzameling objecten doorsluist naar
Get-Member
, haaltGet-Member
de leden van de afzonderlijke objecten in de verzameling op, zoals de eigenschappen van elke tekenreeks in een matrix met tekenreeksen. - Wanneer u InputObject gebruikt om een verzameling objecten te verzenden, haalt
Get-Member
de leden van de verzameling op, zoals de eigenschappen van de matrix in een matrix met tekenreeksen.
Type: | PSObject |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-MemberType
Hiermee geeft u het lidtype op dat door deze cmdlet wordt ophaalt. De standaardwaarde is All
.
De acceptabele waarden voor deze parameter zijn:
AliasProperty
CodeProperty
Property
NoteProperty
ScriptProperty
Properties
PropertySet
Method
CodeMethod
ScriptMethod
Methods
ParameterizedProperty
MemberSet
Event
Dynamic
All
Deze waarden worden gedefinieerd als een opsomming op basis van vlaggen. U kunt meerdere waarden combineren om meerdere vlaggen in te stellen met behulp van deze parameter. De waarden kunnen worden doorgegeven aan de parameter MemberType als een matrix met waarden of als een door komma's gescheiden tekenreeks van deze waarden. De cmdlet combineert de waarden met behulp van een binaire OF-bewerking. Het doorgeven van waarden als een matrix is de eenvoudigste optie en u kunt ook tabvoltooiing gebruiken voor de waarden.
Zie opsomming PSMemberTypes Enumerationvoor meer informatie over deze waarden.
Niet alle objecten hebben elk type lid. Als u een lidtype opgeeft dat het object niet heeft, retourneert PowerShell een null-waarde. Als u gerelateerde typen leden, zoals alle uitgebreide leden, wilt ophalen, gebruikt u de parameter Weergave. Als u de parameter MemberType gebruikt met de parameters Static of View, haalt Get-Member
de leden op die tot beide sets behoren.
Type: | PSMemberTypes |
Aliassen: | Type |
Geaccepteerde waarden: | AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet, Event, Dynamic, All |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Name
Hiermee geeft u de namen van een of meer eigenschappen of methoden van het object.
Get-Member
alleen de opgegeven eigenschappen en methoden ophaalt.
Als u de parameter Name gebruikt met de parameter MemberType, Viewof Static parameter, haalt Get-Member
alleen de leden op die voldoen aan de criteria van alle parameters.
Als u een statisch lid op naam wilt ophalen, gebruikt u de parameter Static met de parameter Name.
Type: | String[] |
Position: | 0 |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Static
Geeft aan dat deze cmdlet alleen de statische eigenschappen en methoden van het object ophaalt. Statische eigenschappen en methoden worden gedefinieerd voor de klasse van objecten, niet op een bepaald exemplaar van de klasse.
Als u de parameter Static gebruikt met de parameter View of Force parameters, negeert de cmdlet deze parameters. Als u de parameter Static gebruikt met de parameter MemberType, krijgt Get-Member
alleen de leden die tot beide sets behoren.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-View
Hiermee geeft u op dat deze cmdlet alleen bepaalde typen eigenschappen en methoden ophaalt. Geef een of meer van de waarden op. De standaardwaarde is Aangepaste, Uitgebreide.
De acceptabele waarden voor deze parameter zijn:
- Base. Hiermee worden alleen de oorspronkelijke eigenschappen en methoden van het .NET-object opgehaald (zonder extensie of aanpassing).
- Aangepast. Hiermee haalt u alleen de eigenschappen en methoden op die zijn gedefinieerd in het uitgebreide PowerShell-typesysteem.
- Verlengd. Hiermee haalt u alleen de eigenschappen en methoden op die zijn toegevoegd in een
Types.ps1xml
-bestanden of met behulp van de cmdletAdd-Member
. - Alle. Haalt de leden op in de basis-, aangepaste en uitgebreide weergaven.
De parameter Weergave bepaalt de opgehaalde leden, niet alleen de weergave van die leden.
Als u bepaalde lidtypen, zoals scripteigenschappen, wilt ophalen, gebruikt u de parameter MemberType. Als u de parameters MemberType en View in dezelfde opdracht gebruikt, haalt Get-Member
de leden op die bij beide sets horen. Als u de parameters Static en View in dezelfde opdracht gebruikt, wordt de parameter View genegeerd.
Type: | PSMemberViewTypes |
Geaccepteerde waarden: | Extended, Adapted, Base, All |
Position: | Named |
Default value: | Adapted, Extended |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
Invoerwaarden
U kunt elk object doorsluisen naar deze cmdlet.
Uitvoerwaarden
Met deze cmdlet wordt een MemberDefinition- geretourneerd voor elke eigenschap of methode die wordt ophaalt.
Notities
Windows PowerShell bevat de volgende aliassen voor Get-Member
:
gm
U kunt informatie over een verzamelingsobject ophalen met behulp van de parameter InputObject of door het object, voorafgegaan door een komma, te Get-Member
.
U kunt de $This
automatische variabele gebruiken in scriptblokken waarmee de waarden van nieuwe eigenschappen en methoden worden gedefinieerd. De $This
variabele verwijst naar het exemplaar van het object waaraan de eigenschappen en methoden worden toegevoegd. Zie about_Automatic_Variablesvoor meer informatie over de variabele $This
.
Als u een object doorgeeft dat een typevertegenwoordigt, zoals een letterlijke waarde van een type, zoals [int]
, Get-Member
informatie over het type [System.RuntimeType]
retourneren. Wanneer u echter de parameter Static gebruikt, retourneert Get-Member
de statische leden van het specifieke type dat wordt vertegenwoordigd door het System.RuntimeType
-exemplaar.