Get-Member

Obtient les propriétés et méthodes des objets.

Syntaxe

Get-Member
   [-InputObject <PSObject>]
   [[-Name] <String[]>]
   [-MemberType <PSMemberTypes>]
   [-View <PSMemberViewTypes>]
   [-Static]
   [-Force]
   [<CommonParameters>]

Description

L’applet Get-Member de commande obtient les membres, les propriétés et les méthodes des objets.

Pour spécifier l’objet, utilisez le paramètre InputObject ou dirigez un objet vers Get-Member. Pour obtenir des informations sur les membres statiques, les membres de la classe, et non de l’instance, utilisent le paramètre Static . Pour obtenir uniquement certains types de membres, tels que NoteProperties, utilisez le paramètre MemberType .

Get-Member retourne une liste de membres triés par ordre alphabétique. Les méthodes sont répertoriées en premier, suivies des propriétés.

Exemples

Exemple 1 : Obtenir les membres des objets de processus

Cette commande affiche les propriétés et méthodes des objets de service générés par l’applet Get-Service de commande.

Étant donné que la Get-Member partie de la commande n’a aucun paramètre, elle utilise des valeurs par défaut pour les paramètres. Par défaut, Get-Member n’obtient pas de membres statiques ou intrinsèques.

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();

Exemple 2 : Obtenir des membres d’objets de service

Cet exemple obtient tous les membres (propriétés et méthodes) des objets de service récupérés par l’applet Get-Service de commande, y compris les membres intrinsèques, tels que PSBase, PSObject et les méthodes get_ et set_ .

Get-Service | Get-Member -Force
(Get-Service Schedule).PSBase

La Get-Member commande utilise le paramètre Force pour ajouter les membres intrinsèques et les membres générés par le compilateur des objets à l’affichage. Vous pouvez utiliser ces propriétés et méthodes de la même façon que vous utilisez une méthode adaptée de l'objet. La deuxième commande montre comment afficher la valeur de la propriété PSBase du service Schedule. Pour plus d’informations sur les membres intrinsèques, consultez about_Intrinsic_Members

Exemple 3 : Obtenir des membres étendus d’objets de service

Cet exemple obtient les méthodes et les propriétés des objets de service qui ont été étendus à l’aide d’un Types.ps1xml fichier ou de l’applet Add-Member de commande.

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();

La Get-Member commande utilise le paramètre View pour obtenir uniquement les membres étendus des objets de service. Dans ce cas, le membre étendu est la propriété Name , qui est une propriété alias de la propriété ServiceName .

Exemple 4 : Obtenir les propriétés de script des objets du journal des événements

Cet exemple obtient les propriétés de script des objets du journal des événements dans le journal système dans l’Observateur d’événements.

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

Le paramètre MemberType obtient uniquement des objets ayant la valeur de NoteProperty leur propriété MemberType .

La commande retourne la propriété Message de l’objet EventLogRecord .

Exemple 5 : Obtenir des objets avec une propriété spécifiée

Cet exemple obtient des objets qui ont une propriété MachineName dans la sortie à partir d’une liste d’applets de commande.

La $list variable contient une liste d’applets de commande à évaluer. L’instruction foreach appelle chaque commande et envoie les résultats à Get-Member. Le paramètre Name limite les résultats des Get-Member membres qui ont le nom 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;}

Les résultats montrent que seuls les objets de traitement et les objets de service ont une propriété MachineName .

Exemple 6 : Obtenir des membres pour un tableau

Cet exemple montre comment rechercher les membres d’un tableau d’objets. Lorsque vous dirigez et tableaux d’objets vers Get-Member, l’applet de commande retourne une liste de membres pour chaque type d’objet unique dans le tableau. Si vous passez le tableau à l’aide du paramètre InputObject , le tableau est traité comme un seul objet.

$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...
...

La $array variable contient un objet Int32 et un objet de chaîne , comme indiqué lorsque le tableau est redirigé vers Get-Member. Lorsqu’il $array est passé à l’aide du paramètre Get-Member InputObject, les membres du type Object[] sont retournés.

Exemple 7 : Déterminer les propriétés d’objet que vous pouvez définir

Cet exemple montre comment déterminer les propriétés d'un objet qui peuvent être modifiées.

$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

Exemple 8 : Répertorier les propriétés d’un objet dans l’ordre dans lequel ils ont été créés

Cet exemple montre comment créer un objet PSObject et y ajouter des propriétés. Get-Member répertorie les propriétés dans l’ordre alphabétique. Pour afficher les propriétés dans l’ordre dans lequel elles ont été ajoutées à l’objet, vous devez utiliser le membre intrinsèque PSObject .

$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

Paramètres

-Force

Ajoute les membres intrinsèques et les méthodes get_ générées par le compilateur et set_ à l’affichage. La liste suivante décrit les propriétés qui sont ajoutées lorsque vous utilisez le paramètre Force :

  • PSBase: propriétés d’origine de l’objet .NET sans extension ni adaptation. Il s’agit des propriétés définies pour la classe d’objet.
  • PSAdapted: propriétés et méthodes définies dans le système de type étendu PowerShell.
  • PSExtended: propriétés et méthodes ajoutées dans les Types.ps1xml fichiers ou à l’aide de l’applet de Add-Member commande.
  • PSObject: adaptateur qui convertit l’objet de base en objet PSObject PowerShell.
  • PSTypeNames: liste de types d’objets qui décrivent l’objet, dans l’ordre de spécificité. Lors de la mise en forme de l’objet, PowerShell recherche les types dans les Format.ps1xml fichiers dans le répertoire d’installation de PowerShell ($PSHOME). Il utilise la définition de la mise en forme du premier type qu'il trouve.

Par défaut, Get-Member obtient ces propriétés dans toutes les vues, sauf Base et Adapté, mais ne les affiche pas.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-InputObject

Spécifie l'objet dont les membres sont récupérés.

L’utilisation du paramètre InputObject n’est pas la même que la piping d’un objet vers Get-Member. Les différences sont les suivantes :

  • Lorsque vous dirigez une collection d’objets vers Get-Member, Get-Member obtient les membres des objets individuels de la collection, tels que les propriétés de chaque chaîne dans un tableau de chaînes.
  • Lorsque vous utilisez InputObject pour envoyer une collection d’objets, Get-Member obtient les membres de la collection, tels que les propriétés du tableau dans un tableau de chaînes.
Type:PSObject
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-MemberType

Spécifie le type de membre que cette applet de commande obtient. Par défaut, il s’agit de All.

Les valeurs valides pour ce paramètre sont :

  • AliasProperty
  • CodeProperty
  • Property
  • NoteProperty
  • ScriptProperty
  • Properties
  • PropertySet
  • Method
  • CodeMethod
  • ScriptMethod
  • Methods
  • ParameterizedProperty
  • MemberSet
  • Event
  • Dynamic
  • All

Ces valeurs sont définies comme une énumération basée sur des indicateurs. Vous pouvez combiner plusieurs valeurs pour définir plusieurs indicateurs à l’aide de ce paramètre. Les valeurs peuvent être transmises au paramètre MemberType en tant que tableau de valeurs ou sous forme de chaîne séparées par des virgules de ces valeurs. L’applet de commande combine les valeurs à l’aide d’une opération binary-OR. La transmission de valeurs en tant que tableau est l’option la plus simple et vous permet également d’utiliser la saisie semi-automatique sous forme de tabulation sur les valeurs.

Pour plus d’informations sur ces valeurs, consultez énumération PSMemberTypes.

Certains objets n'ont pas chaque type de membre. Si vous spécifiez un type de membre dont l’objet n’a pas, PowerShell retourne une valeur Null. Pour obtenir les types de membres associés, tels que tous les membres étendus, utilisez le paramètre View . Si vous utilisez le paramètre MemberType avec les paramètres Static ou View , Get-Member obtient les membres qui appartiennent aux deux jeux.

Type:PSMemberTypes
Alias:Type
Valeurs acceptées:AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet, Event, Dynamic, All
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Name

Spécifie les noms d'une ou plusieurs propriétés ou méthodes de l'objet. Get-Member obtient uniquement les propriétés et méthodes spécifiées.

Si vous utilisez le paramètre Name avec le paramètre MemberType, View ou Static , Get-Member obtient uniquement les membres qui répondent aux critères de tous les paramètres.

Pour obtenir un membre statique par nom, utilisez le paramètre Static avec le paramètre Name .

Type:String[]
Position:0
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Static

Indique que cette applet de commande obtient uniquement les propriétés et méthodes statiques de l’objet. Les méthodes et propriétés statiques sont définies sur la classe d'objets, et non sur une instance particulière de la classe.

Si vous utilisez le paramètre statique avec les paramètres View ou Force , l’applet de commande ignore ces paramètres. Si vous utilisez le paramètre Static avec le paramètre MemberType , Get-Member obtient uniquement les membres qui appartiennent aux deux jeux.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-View

Spécifie que cette applet de commande obtient uniquement des propriétés et des méthodes de types particuliers. Spécifiez une ou plusieurs des valeurs. La valeur par défaut est Adapt, Extended.

Les valeurs valides pour ce paramètre sont :

  • Base. Obtient uniquement les propriétés et méthodes d’origine de l’objet .NET (sans extension ou adaptation).
  • Adapté. Obtient uniquement les propriétés et méthodes définies dans le système de type étendu PowerShell.
  • Prolongé. Obtient uniquement les propriétés et méthodes ajoutées dans un Types.ps1xml fichier ou à l’aide de l’applet de Add-Member commande.
  • Tous. obtient les membres des vues Base, Adapted et Extended.

Le paramètre View détermine les membres récupérés, pas seulement l’affichage de ces membres.

Pour obtenir des types de membres particuliers, tels que des propriétés de script, utilisez le paramètre MemberType . Si vous utilisez les paramètres MemberType et View dans la même commande, Get-Member obtient les membres qui appartiennent aux deux jeux. Si vous utilisez les paramètres Static et View dans la même commande, le paramètre View est ignoré.

Type:PSMemberViewTypes
Valeurs acceptées:Extended, Adapted, Base, All
Position:Named
Valeur par défaut:Adapted, Extended
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

Entrées

PSObject

Vous pouvez diriger n’importe quel objet vers cette applet de commande.

Sorties

MemberDefinition

Cette applet de commande retourne un MemberDefinition pour chaque propriété ou méthode qu’elle obtient.

Notes

PowerShell inclut les alias suivants pour Get-Member:

  • Toutes les plateformes :
    • gm

Vous pouvez obtenir des informations sur un objet de collection à l’aide du paramètre InputObject ou en pipissant l’objet, précédé d’une virgule, vers Get-Member.

Vous pouvez utiliser la $This variable automatique dans les blocs de script qui définissent les valeurs des nouvelles propriétés et méthodes. La $This variable fait référence à l’instance de l’objet auquel les propriétés et méthodes sont ajoutées. Pour plus d’informations sur la $This variable, consultez about_Automatic_Variables.

Si vous passez un objet représentant un type, comme un littéral de type tel que [int], Get-Member retournez des informations sur le [System.RuntimeType] type. Toutefois, lorsque vous utilisez le paramètre Static , Get-Member retourne les membres statiques du type spécifique représenté par l’instance System.RuntimeType .