Delen via


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 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, 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

PSObject

U kunt elk object doorsluisen naar Get-Member-.

Uitvoerwaarden

MemberDefinition

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, om Get-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.