Delen via


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 de Types.ps1xml-bestanden of met behulp van de cmdlet Add-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 de Format.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, 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 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 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:Adapted, Extended
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

Invoerwaarden

PSObject

U kunt elk object doorsluisen naar deze cmdlet.

Uitvoerwaarden

MemberDefinition

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.