Get-Member
Hiermee haalt u de eigenschappen en methoden van objecten op.
Syntaxis
Get-Member
[[-Name] <String[]>]
[-InputObject <PSObject>]
[-MemberType <PSMemberTypes>]
[-View <PSMemberViewTypes>]
[-Static]
[-Force]
[<CommonParameters>]
Description
De cmdlet Get-Member haalt de leden, de eigenschappen en methoden van objecten op.
Als u het object wilt opgeven, gebruikt u de InputObject-parameter 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.
Voorbeelden
Voorbeeld 1: De leden van procesobjecten ophalen
PS> Get-Service | Get-Member
TypeName: System.ServiceProcess.ServiceController
Name MemberType Definition
---- ---------- ----------
Name AliasProperty Name = ServiceName
Close Method System.Void Close()
Continue Method System.Void Continue()
CreateObjRef Method System.Runtime.Remoting.ObjRef CreateObjRef(Type requestedType)
Dispose Method System.Void Dispose()
Equals Method System.Boolean Equals(Object obj)
ExecuteCommand Method System.Void ExecuteCommand(Int32 command)
GetHashCode Method System.Int32 GetHashCode()
GetLifetimeService Method System.Object GetLifetimeService()
GetType Method System.Type GetType()
InitializeLifetimeService Method System.Object InitializeLifetimeService()
Pause Method System.Void Pause()
Refresh Method System.Void Refresh()
Start Method System.Void Start(), System.Void Start(String[] args)
Stop Method System.Void Stop()
ToString Method System.String ToString()
WaitForStatus Method System.Void WaitForStatus(ServiceControllerStatus desiredStatus), System.Voi...
CanPauseAndContinue Property System.Boolean CanPauseAndContinue {get;}
CanShutdown Property System.Boolean CanShutdown {get;}
CanStop Property System.Boolean CanStop {get;}
Container Property System.ComponentModel.IContainer Container {get;}
DependentServices Property System.ServiceProcess.ServiceController[] DependentServices {get;}
DisplayName Property System.String DisplayName {get;set;}
MachineName Property System.String MachineName {get;set;}
ServiceHandle Property System.Runtime.InteropServices.SafeHandle ServiceHandle {get;}
ServiceName Property System.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;}
Status Property System.ServiceProcess.ServiceControllerStatus Status {get;}
Met deze opdracht worden de eigenschappen en methoden van de procesobjecten (System.ServiceProcess.ServiceController) weergegeven die worden gegenereerd door de Get-Service-cmdlet.
De opdracht maakt gebruik van de pijplijnoperator (|) om de uitvoer van een opdracht Get-Service te verzenden naar Get-Member-.
Omdat de Get-Member- deel van de opdracht geen parameters heeft, worden alle standaardwaarden gebruikt. Als zodanig worden alle lidtypen opgehaald, maar er worden geen statische leden opgehaald en worden geen intrinsieke leden weergegeven.
Voorbeeld 2: Leden van serviceobjecten ophalen
PS> Get-Service | Get-Member -Force
PS> (Get-Service Schedule).PSBase
In dit voorbeeld worden alle leden (eigenschappen en methoden) van de serviceobjecten (System.ServiceProcess.ServiceController) opgehaald door de cmdlet Get-Service, inclusief de intrinsieke leden, zoals PSBase en PSObject, en de get_- en set_-methoden.
De eerste opdracht maakt gebruik van de cmdlet Get-Service om objecten op te halen die de services op het systeem vertegenwoordigen. Er wordt een pijplijnoperator (|) gebruikt om de serviceobjecten door te geven aan de cmdlet Get-Member.
De opdracht Get-Member gebruikt de parameter Force om de intrinsieke leden en door compiler gegenereerde leden van de objecten toe te voegen aan de weergave. Get-Member- krijgt deze leden, maar deze worden standaard verborgen.
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.
Voorbeeld 3: Uitgebreide leden van serviceobjecten ophalen
PS> Get-Service| Get-Member -View Extended
TypeName: System.ServiceProcess.ServiceController
Name MemberType Definition
---- ---------- ----------
Name AliasProperty Name = ServiceName
Met deze opdracht worden de methoden en eigenschappen opgehaald van serviceobjecten die zijn uitgebreid met behulp van het bestand Types.ps1xml of de Add-Member cmdlet.
De opdracht Get-Member 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, een aliaseigenschap van de eigenschap ServiceName.
Voorbeeld 4: Scripteigenschappen ophalen van gebeurtenislogboekobjecten
PS> Get-EventLog -Log System | Get-Member -MemberType ScriptProperty
TypeName: System.Diagnostics.EventLogEntry
Name MemberType Definition
---- ---------- ----------
EventID ScriptProperty System.Object EventID {get=$this.get_EventID() -band 0xFFFF;}
Met deze opdracht worden de scripteigenschappen opgehaald van gebeurtenislogboekobjecten in het systeemlogboek in Logboeken.
De opdracht gebruikt de parameter MemberType om alleen objecten op te halen met de waarde ScriptProperty voor de eigenschap MemberType.
De opdracht retourneert de eigenschap EventID van het EventLog-object.
Voorbeeld 5: Objecten ophalen met een opgegeven eigenschap
PS> $A = "Get-Process", "Get-Service", "Get-Culture", "Get-PSDrive", "Get-ExecutionPolicy"
PS> ForEach ($Cmdlet in $A) {Invoke-Command $Cmdlet | Get-Member -Name MachineName}
TypeName: System.Diagnostics.Process
Name MemberType Definition
---- ---------- ----------
MachineName Property System.String MachineName {get;}
TypeName: System.ServiceProcess.ServiceController
Name MemberType Definition
---- ---------- ----------
MachineName Property System.String MachineName {get;set;}
Met deze opdracht worden objecten opgehaald die een eigenschap MachineName hebben uit een lijst met cmdlets.
Met de eerste opdracht worden de namen van verschillende cmdlets opgeslagen in de variabele $A.
De tweede opdracht maakt gebruik van een ForEach--instructie om elke opdracht aan te roepen, de resultaten te verzenden naar Get-Member-en de resultaten van Get-Member- te beperken tot leden met de naam MachineName.
De resultaten laten zien dat alleen procesobjecten (System.Diagnostics.Process) en serviceobjecten (System.ServiceProcess.ServiceController) een eigenschap MachineName hebben.
Voorbeeld 6: Leden ophalen voor een matrix
PS> $A = @(1)
PS> $A.Count
1
PS> Get-Member -InputObject $A
TypeName: System.Object[]
Name MemberType Definition
---- ---------- ----------
Count AliasProperty Count = Length
Address Method System.Object& Address(Int32 )
Clone Method System.Object Clone()
...
PS> $A = @(1,2,3)
PS> Get-Member -InputObject $A
TypeName: System.Object[]
Name MemberType Definition
---- ---------- ----------
Count AliasProperty Count = Length
Address Method System.Object& Address(Int32 )
Clone Method System.Object Clone()
...
PS> $A.Count
3
In dit voorbeeld ziet u hoe u de eigenschappen en methoden van een matrix met objecten kunt vinden wanneer u slechts één object van het opgegeven type hebt.
Omdat het doel van de opdracht is om de eigenschappen van een matrix te vinden, gebruikt de eerste opdracht de parameter InputObject. Het at-symbool (@) wordt gebruikt om een matrix aan te geven. In dit geval bevat de matrix slechts één object, het gehele getal 1.
De derde opdracht maakt gebruik van de cmdlet Get-Member om de eigenschappen en methoden van een matrix met gehele getallen op te halen en de opdracht slaat deze op in de $A variabele.
De vierde opdracht maakt gebruik van de eigenschap Count van de matrix om het aantal objecten in de $A variabele te vinden.
Voorbeeld 7: Bepalen welke objecteigenschappen u kunt instellen
PS> $File = Get-Item c:\test\textFile.txt
PS> $File.psobject.properties | Where-Object {$_.issettable} | Format-Table -Property name
Name
----
PSPath
PSParentPath
PSChildName
PSDrive
PSProvider
PSIsContainer
IsReadOnly
CreationTime
CreationTimeUtc
LastAccessTime
LastAccessTimeUtc
LastWriteTime
LastWriteTimeUtc
Attributes
PS> [appdomain]::CurrentDomain.GetAssemblies() | ForEach-Object { $_.getexportedtypes() } | ForEach-Object {$_.getproperties() | Where-Object {$_.canwrite }} | Select-Object reflectedtype, name
In dit voorbeeld ziet u hoe u kunt bepalen welke eigenschappen van een object kunnen worden gewijzigd. In het voorbeeld wordt een bestand gebruikt, maar u kunt deze opdrachtindeling gebruiken om de veranderlijke eigenschappen van elk object in Windows PowerShell te vinden.
De eerste opdracht maakt gebruik van de Get-Item cmdlet om een tekstbestand op te halen en slaat vervolgens het bestandsobject op in de $File variabele.
Met de tweede opdracht worden alle veranderlijke eigenschappen van het bestandsobject in de $File variabele opgehaald en worden de namen van de eigenschappen in een tabel weergegeven.
Met de derde opdracht worden de veranderlijke eigenschappen van alle objecten in uw Windows PowerShell-sessie opgehaald.
Voorbeeld 8: Leden van elk item in een verzameling ophalen
PS> $S = Get-Service
PS> $S | 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 System.Void Close()
Continue Method System.Void Continue()
CreateObjRef Method System.Runtime.Remoting.ObjRef CreateObjRef(type requestedTy
Dispose Method System.Void Dispose()
...
PS> Get-Member -InputObject $S
TypeName: System.Object[]
Name MemberType Definition
---- ---------- ----------
Count AliasProperty Count = Length
Address Method System.Object&, mscorlib, Version=2.0.0.0, Cultu
Clone Method System.Object Clone()
CopyTo Method System.Void CopyTo(array array, int index), Syst
Equals Method bool Equals(System.Object obj)
Get Method System.Object Get(int )
GetEnumerator Method System.Collections.IEnumerator GetEnumerator()
GetHashCode Method int GetHashCode()
...
In dit voorbeeld ziet u hoe de parameter InputObject werkt in de cmdlet Get-Member. Wanneer u de parameter InputObject gebruikt om de leden van een verzameling op te halen, haalt Get-Member- de leden van de verzameling op. Wanneer u een verzameling objecten doorsluist naar Get-Member-, haalt Get-Member- de leden van elk item in de verzameling op.
Met de eerste opdracht worden de services op de lokale computer opgeslagen en worden de services opgeslagen in de $S variabele.
Met de tweede opdracht wordt de variabele $S naar de cmdlet Get-Member uitgevoerd. Get-Member- de typen van elk lid van $S en de leden van dat type ophaalt. In dit geval worden ServiceController-objecten opgehaald en worden de leden weergegeven, zoals RequiredServices en Close.
De derde opdracht maakt gebruik van de parameter InputObject van Get-Member- om de $S variabele in te dienen. Get-Member- het type (System.Object[]) en de leden van de verzameling (of matrix) van ServiceController objecten, zoals Count en Clone.
Parameters
-Force
Voegt de intrinsieke leden (PSBase, PSAdapted, PSObject, PSTypeNames) en de door de compiler gegenereerde get_- en set_-methoden toe aan de weergave. Standaard krijgt Get-Member- deze eigenschappen in alle andere weergaven dan Base en Aangepast, maar deze worden niet weergegeven.
In de volgende lijst worden de eigenschappen beschreven die worden toegevoegd wanneer u de parameter Force gebruikt:
- PSBase: De oorspronkelijke eigenschappen van het .NET Framework-object zonder extensie of aanpassing. Dit zijn de eigenschappen die zijn gedefinieerd voor de objectklasse en vermeld in MSDN.
- PSAdapted. De eigenschappen en methoden die zijn gedefinieerd in het uitgebreide windows PowerShell-systeem.
- PSExtended. De eigenschappen en methoden die zijn toegevoegd in de types.ps1xml-bestanden of met behulp van de cmdlet Add-Member.
- PSObject. De adapter waarmee het basisobject wordt geconverteerd naar een Windows PowerShell-PSObject-object.
- PSTypeNames. Een lijst met objecttypen die het object beschrijven, in volgorde van specificiteit. Bij het opmaken van het object zoekt Windows PowerShell naar de typen in de Windows PowerShell-installatiemap ($pshome). Hierbij wordt de opmaakdefinitie gebruikt voor het eerste type dat wordt gevonden.
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 doorspeken van een object voor Get-Member-. De verschillen zijn als volgt:
- Wanneer u een verzameling objecten doorsluist naar Get-Member-, haalt Get-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 in te dienen, 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 Alles.
De acceptabele waarden voor deze parameter zijn:
- AliasProperty
- CodeProperty
- Eigenschap
- NoteProperty
- ScriptProperty
- Eigenschappen
- PropertySet
- Methode
- CodeMethod
- ScriptMethod
- Methoden
- ParameterizedProperty
- MemberSet
- Gebeurtenis
- Dynamisch
- Alle
Zie opsomming PSMemberTypes Enumeration in de MSDN-bibliotheek voor meer informatie over deze waarden.
Niet alle objecten hebben elk type lid. Als u een lidtype opgeeft dat het object niet heeft, retourneert Windows 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 bij beide sets horen.
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- krijgt alleen de opgegeven eigenschappen en methoden.
Als u de parameter
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, wordt de parameter View genegeerd. 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 Aangepast, Uitgebreid.
Geldige waarden zijn:
- Base. Hiermee worden alleen de oorspronkelijke eigenschappen en methoden van het .NET Framework-object opgehaald (zonder extensie of aanpassing).
- Aangepast. Hiermee haalt u alleen de eigenschappen en methoden op die zijn gedefinieerd in het uitgebreide windows PowerShell-typesysteem.
- Verlengd. Hiermee haalt u alleen de eigenschappen en methoden op die zijn toegevoegd in de types.ps1xml-bestanden of met behulp van de cmdlet Add-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: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
Invoerwaarden
U kunt elk object doorsluisen naar Get-Member-.
Uitvoerwaarden
Get-Member- retourneert een object voor elke eigenschap of methode die wordt opgehaald.
Notities
U kunt informatie over een verzamelingsobject ophalen met behulp van de parameter
InputObject of door het object, voorafgegaan door een komma, omGet-Member- te. 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 variabele $This.