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 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-Memberretourneert 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 de Types.ps1xml bestanden of met behulp van de Add-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 de Format.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
Required:False
Accept pipeline input:False
Accept wildcard characters: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-MemberGet-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
Required:False
Accept pipeline input:True
Accept wildcard characters: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
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 statische parameter 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 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
Required:False
Accept pipeline input:False
Accept wildcard characters: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.
  • Uitgebreid. Hiermee haalt u alleen de eigenschappen en methoden op die zijn toegevoegd in een Types.ps1xml bestand of met behulp van de Add-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
Accepted values:Extended, Adapted, Base, All
Position:Named
Default value:Adapted, Extended
Required:False
Accept pipeline input:False
Accept wildcard characters: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 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.