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
De Get-Member
cmdlet haalt de leden, de eigenschappen en methoden van objecten op.
Als u het object wilt opgeven, gebruikt u de parameter InputObject of geeft u een object door aan Get-Member
. Gebruik de statische parameter om informatie over statische leden op te halen, de leden van de klasse, niet van het exemplaar. Als u alleen bepaalde typen leden, zoals NoteProperties, wilt ophalen, 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 door de Get-Service
cmdlet worden gegenereerd.
Omdat het Get-Member
deel van de opdracht geen parameters heeft, worden standaardwaarden gebruikt voor de parameters. Get-Member
Standaard worden geen statische of intrinsieke leden weergegeven.
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();
Voorbeeld 2: Leden van serviceobjecten ophalen
In dit voorbeeld worden alle leden (eigenschappen en methoden) opgehaald van serviceobjecten die zijn opgehaald door de Get-Service
cmdlet, inclusief de intrinsieke leden, zoals PSBase, PSObject en de methoden get_ en set_ .
Get-Service | Get-Member -Force
(Get-Service Schedule).PSBase
De Get-Member
opdracht gebruikt 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 PSBase-eigenschap 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.Service.ServiceController#StartupType
Name MemberType Definition
---- ---------- ----------
Name AliasProperty Name = ServiceName
RequiredServices AliasProperty RequiredServices = ServicesDependedOn
ToString ScriptMethod System.Object ToString();
De Get-Member
opdracht gebruikt de parameter Weergave 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 voor NoteProperty
de eigenschap MemberType .
Met de opdracht wordt de eigenschap Message van het object EventLogRecord geretourneerd.
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
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.Service.ServiceController#StartupType
Name MemberType Definition
---- ---------- ----------
MachineName Property string MachineName {get;set;}
In de resultaten ziet u 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 doorsluist naar en een matrix van objecten, Get-Member
retourneert de cmdlet een ledenlijst voor elk uniek objecttype in de matrix.
Als u de matrix doorgeeft met 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 $array
variabele bevat een Int32-object en een tekenreeksobject , zoals wordt gezien wanneer de matrix wordt doorgesluisd naar Get-Member
. Wanneer $array
wordt doorgegeven met de parameter Get-Member
InputObject, worden de leden van het type Object[] geretourneerd.
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 nieuw PSObject gemaakt en worden er eigenschappen aan toegevoegd. Get-Member
een lijst met de eigenschappen in alfabetische volgorde. Als u de eigenschappen in de volgorde wilt zien waarin ze aan het object zijn toegevoegd, moet u het intrinsiek PSObject-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 deAdd-Member
cmdlet.PSObject
: De adapter waarmee het basisobject wordt geconverteerd 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 worden deze eigenschappen in alle weergaven opgeslagen, Get-Member
behalve Base en Aangepast, maar worden ze 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,
Get-Member
Get-Member
worden de leden van de afzonderlijke objecten in de verzameling opgehaald, zoals de eigenschappen van elke tekenreeks in een matrix met tekenreeksen. - Wanneer u InputObject gebruikt om een verzameling objecten in te dienen,
Get-Member
worden de leden van de verzameling opgehaald, 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 aanvaardbare 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 De opsomming PSMemberTypes voor 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 , Get-Member
haalt u 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
haalt alleen de opgegeven eigenschappen en methoden op.
Als u de parameter Name gebruikt met de parameter MemberType, View of Static , Get-Member
haalt u alleen de leden op die voldoen aan de criteria van alle parameters.
Als u een statisch lid op naam wilt ophalen, gebruikt u de statische parameter 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 statische parameter gebruikt met de parameters View of Force , negeert de cmdlet deze parameters. Als u de statische parameter gebruikt met de parameter MemberType , Get-Member
haalt u alleen de leden op 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 Aangepast, Uitgebreid.
De aanvaardbare 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
bestand of met behulp van deAdd-Member
cmdlet. - Alles. 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, Get-Member
haalt u de leden op die tot beide sets behoren. Als u de parameters Statisch en Weergave in dezelfde opdracht gebruikt, wordt de parameter Weergave 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 geretourneerd.
Notities
PowerShell bevat de volgende aliassen voor Get-Member
:
- Alle platforms:
gm
U kunt informatie over een verzamelingsobject ophalen met behulp van de parameter InputObject of door het object, voorafgegaan door een komma, door te leiden naar Get-Member
.
U kunt de $This
automatische variabele in scriptblokken gebruiken 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_Variables voor meer informatie over de $This
variabele.
Als u een object doorgeeft dat een type vertegenwoordigt, zoals een letterlijke [int]
waarde van een type, Get-Member
retourneert u informatie over het [System.RuntimeType]
type. Wanneer u echter de statische parameter gebruikt, Get-Member
worden de statische leden van het specifieke type geretourneerd dat wordt vertegenwoordigd door het System.RuntimeType
exemplaar.