Get-Member
Hiermee haalt u de eigenschappen en methoden van objecten op.
Syntax
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 sluist u een object door naar Get-Member
. Als u informatie wilt ophalen over statische leden, de leden van de klasse, niet van het exemplaar, gebruikt u de parameter Static . Als u alleen bepaalde typen leden wilt ophalen, zoals NoteProperties, gebruikt u de parameter MemberType .
Get-Member
retourneert een lijst met leden die alfabetisch is gesorteerd. Methoden worden eerst vermeld, gevolgd door de eigenschappen.
Voorbeelden
Voorbeeld 1: De leden van procesobjecten ophalen
Met deze opdracht worden de eigenschappen en methoden van de serviceobjecten weergegeven 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. Krijgt standaard Get-Member
geen statische of intrinsieke leden.
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) van serviceobjecten 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 de compiler gegenereerde leden van de objecten aan de weergave toe te voegen. U kunt deze eigenschappen en methoden op dezelfde manier gebruiken als een aangepaste methode van het object. De tweede opdracht laat zien hoe de waarde van de eigenschap PSBase van de Schedule-service wordt weergegeven. 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 View om alleen de uitgebreide leden van de serviceobjecten op te halen. In dit geval is het uitgebreide lid de eigenschap Name . Dit is een aliaseigenschap van de eigenschap ServiceName .
Voorbeeld 4: scripteigenschappen van gebeurtenislogboekobjecten ophalen
In dit voorbeeld worden de scripteigenschappen van gebeurtenislogboekobjecten in het systeemlogboek in Logboeken opgehaald.
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 krijgt alleen objecten met een waarde van NoteProperty
voor de eigenschap MemberType .
De opdracht retourneert de eigenschap Message van het object EventLogRecord .
Voorbeeld 5: objecten ophalen met een opgegeven eigenschap
In dit voorbeeld worden objecten opgehaald met de 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.Service.ServiceController#StartupType
Name MemberType Definition
---- ---------- ----------
MachineName Property string MachineName {get;set;}
De resultaten laten zien dat alleen procesobjecten en serviceobjecten een machinenaam-eigenschap 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 en matrix met objecten doorsluizen naar 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 $array
variabele bevat een Int32-object en een tekenreeksobject , zoals te zien is wanneer de matrix wordt doorgesluisd naar Get-Member
. Wanneer $array
wordt doorgegeven met behulp van de parameter Get-Member
InputObject retourneert de leden van het type Object[].
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
bevat de eigenschappen in alfabetische volgorde. Als u de eigenschappen wilt zien in de volgorde waarin ze zijn toegevoegd aan het object, moet u het intrinsieke lid PSObject 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 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 PowerShell-installatiemap ($PSHOME
). De opmaakdefinitie wordt gebruikt voor het eerste type dat wordt gevonden.
Deze eigenschappen worden standaard in alle weergaven weergegeven, Get-Member
behalve Basis en Aangepast, maar worden niet weergegeven.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Hiermee geeft u het object op waarvan de leden worden opgehaald.
Het gebruik van de parameter InputObject is niet hetzelfde als het doorspitten van een object naar Get-Member
. De verschillen zijn als volgt:
- Wanneer u een verzameling objecten doorsluizen naar
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 te verzenden,
Get-Member
haalt u de leden van de verzameling op, zoals de eigenschappen van de matrix in een matrix met tekenreeksen.
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-MemberType
Hiermee geeft u het lidtype op dat deze cmdlet krijgt. 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 een vlag. 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-OR-bewerking. Het doorgeven van waarden als een matrix is de eenvoudigste optie en stelt u ook in staat om tabvoltooiing te gebruiken voor de waarden.
Zie PSMemberTypes Enumeration (PsMemberTypes Enumeration) voor 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 wilt ophalen, zoals alle uitgebreide leden, gebruikt u de parameter Weergave . Als u de parameter MemberType gebruikt met de parameters Statisch of Weergeven , Get-Member
haalt u de leden op die tot beide sets behoren.
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
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 parameter Static met de parameter Name .
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Static
Geeft aan dat deze cmdlet alleen de statische eigenschappen en methoden van het object ophaalt. Statische eigenschappen en methoden worden gedefinieerd op basis van de klasse van objecten, niet op een bepaald exemplaar van de klasse.
Als u de parameter Static gebruikt met de parameters Weergeven of Forceren , worden deze parameters genegeerd door de cmdlet. Als u de parameter Static gebruikt met de parameter MemberType , Get-Member
worden alleen de leden opgehaald die tot beide sets behoren.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-View
Hiermee geeft u op dat deze cmdlet alleen bepaalde typen eigenschappen en methoden krijgt. Geef een of meer van de waarden op. De standaardwaarde is Aangepast, Uitgebreid.
De aanvaardbare waarden voor deze parameter zijn:
- Base. Hiermee haalt u alleen de oorspronkelijke eigenschappen en methoden van het .NET-object op (zonder extensie of aanpassing).
- Aangepast. Haalt alleen de eigenschappen en methoden op die zijn gedefinieerd in het uitgebreide PowerShell-typesysteem.
- Uitgebreid. Hiermee haalt u alleen de eigenschappen en methoden op die zijn toegevoegd in een
Types.ps1xml
bestand of met behulp van deAdd-Member
cmdlet. - Alle. Hiermee haalt u de leden op in de weergaven Basis, Aangepast en Uitgebreid.
De parameter Weergave bepaalt welke leden worden opgehaald, niet alleen de weergave van deze leden.
Als u bepaalde lidtypen wilt ophalen, zoals scripteigenschappen, gebruikt u de parameter MemberType . Als u de parameters MemberType en View in dezelfde opdracht gebruikt, Get-Member
worden de leden opgehaald die tot beide sets behoren. Als u de parameters Statisch en Weergave in dezelfde opdracht gebruikt, wordt de parameter Weergave genegeerd.
Type: | PSMemberViewTypes |
Accepted values: | Extended, Adapted, Base, All |
Position: | Named |
Default value: | Adapted, Extended |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Invoerwaarden
U kunt elk object doorsnijden naar deze cmdlet.
Uitvoerwaarden
Deze cmdlet retourneert een MemberDefinition voor elke eigenschap of methode die wordt gebruikt.
Notities
PowerShell bevat de volgende aliassen voor Get-Member
:
- Alle platformen:
gm
U kunt informatie over een verzamelingsobject ophalen met behulp van de parameter InputObject of door het object, voorafgegaan door een komma, door te spitsen naar 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_Variables voor meer informatie over de$This
variabele.
Als u een object doorgeeft dat een type vertegenwoordigt, zoals een letterlijke waarde zoals [int]
, 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.