Partager via


Get-Member

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

Syntaxe

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

Description

L’applet de commande Get-Member 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.

Exemples

Exemple 1 : Obtenir les membres des objets de processus

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;}

Cette commande affiche les propriétés et méthodes des objets de processus (System.ServiceProcess.ServiceController) générés par l’applet de commande Get-Service.

La commande utilise l’opérateur de pipeline (|) pour envoyer la sortie d’une commande Get-Service à Get-Member .

Étant donné que la get-member partie de la commande n’a aucun paramètre, elle utilise toutes les valeurs par défaut. Par conséquent, il obtient tous les types de membres, mais il n’obtient pas de membres statiques et n’affiche pas de membres intrinsèques.

Exemple 2 : Obtenir des membres d’objets de service

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

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

La première commande utilise l’applet de commande Get-Service pour obtenir des objets qui représentent les services sur le système. Il utilise un opérateur de pipeline (|) pour transmettre les objets de service à l’applet de commande Get-Member .

La commande Get-Member 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. l' Get-Member obtient ces membres, mais il les masque par défaut.

Vous pouvez utiliser ces propriétés et méthodes de la même façon que vous utiliseriez 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.

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

PS> Get-Service| Get-Member -View Extended
TypeName: System.ServiceProcess.ServiceController
Name MemberType    Definition
---- ----------    ----------
Name AliasProperty Name = ServiceName

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

La commande Get-Member 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

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;}

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

La commande utilise le paramètre MemberType pour obtenir uniquement des objets avec une valeur de ScriptProperty pour leur propriété MemberType.

La commande retourne la propriété EventID de l’objet EventLog.

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

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;}

Cette commande obtient des objets qui ont une propriété MachineName à partir d’une liste d’applets de commande.

La première commande stocke les noms de plusieurs applets de commande dans la variable $A.

La deuxième commande utilise une instruction ForEach pour appeler chaque commande, envoyer les résultats à Get-Member et limiter les résultats de Get-Member aux membres qui ont le nom MachineName.

Les résultats montrent que seuls les objets de traitement (System.Diagnostics.Process) et les objets de service (System.ServiceProcess.ServiceController) ont une propriété MachineName.

Exemple 6 : Obtenir des membres pour un tableau

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

Cet exemple montre comment rechercher les propriétés et méthodes d’un tableau d’objets lorsque vous n’avez qu’un seul objet du type donné.

Étant donné que l’objectif de la commande est de rechercher les propriétés d’un tableau, la première commande utilise le paramètre InputObject. Il utilise le symbole à l’adresse (@) pour indiquer un tableau. Dans ce cas, le tableau ne contient qu’un seul objet, l’entier 1.

La troisième commande utilise l’applet de commande Get-Member pour obtenir les propriétés et les méthodes d’un tableau d’entiers, et la commande les enregistre dans la variable $A.

La quatrième commande utilise la propriété Count du tableau pour rechercher le nombre d’objets dans la variable $A.

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

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

Cet exemple montre comment déterminer les propriétés d’un objet qui peuvent être modifiées. L’exemple utilise un fichier, mais vous pouvez utiliser ce format de commande pour rechercher les propriétés modifiables d’un objet dans Windows PowerShell.

La première commande utilise l’applet de commande Get-Item pour obtenir un fichier texte, puis enregistre l’objet de fichier dans la variable $File.

La deuxième commande obtient toutes les propriétés modifiables de l’objet de fichier dans la variable $File et affiche les noms des propriétés d’une table.

La troisième commande obtient les propriétés modifiables de tous les objets de votre session Windows PowerShell.

Exemple 8 : Obtenir des membres de chaque élément d’une collection

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

Cet exemple montre comment fonctionne le paramètre InputObject dans l’applet de commande Get-Member . Lorsque vous utilisez le paramètre InputObject pour obtenir les membres d’une collection, Get-Member obtient les membres de la collection. Lorsque vous dirigez une collection d’objets vers Get-Member, obtenir les membres de chaque élément de la collection.

La première commande obtient les services sur l’ordinateur local et enregistre les services dans la variable $S.

La deuxième commande canalise la variable $S vers l’applet de commande Get-Member . obtenir les types de chaque membre de $S et les membres de ce type. Dans ce cas, il obtient des objets ServiceController et répertorie les membres, tels que RequiredServices et Close.

La troisième commande utilise le paramètre InputObject de Get-Member pour envoyer la variable $S. Get-Member obtient le type (System.Object[]) et les membres de la collection (ou tableau) d’objets ServiceController, tels que Count et Clone.

Paramètres

-Force

Ajoute les membres intrinsèques (PSBase, PSAdapted, PSObject, PSTypeNames) et les méthodes get_ et set_ générées par le compilateur à l’affichage. Par défaut, get-member obtient ces propriétés dans toutes les vues autres que Base et Adapté, mais elle ne les affiche pas.

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 Framework sans extension ni adaptation. Il s’agit des propriétés définies pour la classe d’objet et répertoriées dans MSDN.
  • PSAdapted. Propriétés et méthodes définies dans le système de type étendu Windows PowerShell.
  • PSExtended. Propriétés et méthodes ajoutées dans les fichiers Types.ps1xml ou à l’aide de l’applet de commande Add-Member.
  • PSObject. Adaptateur qui convertit l’objet de base en objet Windows PowerShellPSObject.
  • PSTypeNames. Liste des types d’objets qui décrivent l’objet, dans l’ordre de spécificité. Lors de la mise en forme de l’objet, Windows PowerShell recherche les types dans les fichiers Format.ps1xml dans le répertoire d’installation de Windows PowerShell ($pshome). Il utilise la définition de mise en forme pour le premier type qu’il trouve.
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 identique à la piping d’un objet pour 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. La valeur par défaut est All.

Les valeurs acceptables pour ce paramètre sont les suivantes :

  • AliasProperty
  • CodeProperty
  • Propriété
  • RemarqueProperty
  • ScriptProperty
  • Propriétés
  • PropertySet
  • Méthode
  • CodeMethod
  • ScriptMethod
  • Méthode
  • ParameterizedProperty
  • MemberSet
  • Événement
  • Dynamique
  • Tout

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

Tous les objets n’ont pas tous les types de membres. Si vous spécifiez un type de membre dont l’objet n’a pas, Windows PowerShell retourne une valeur Null.

Pour obtenir des 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 statiques ou View, obtenir 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 l'MemberType, Viewou paramètre 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 propriétés et méthodes 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 le paramètre View , le paramètre View est ignoré. Si vous utilisez le paramètre de statique 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 sont les suivantes :

  • Base. Obtient uniquement les propriétés et méthodes d’origine de l’objet .NET Framework (sans extension ni adaptation).
  • Adapté. Obtient uniquement les propriétés et méthodes définies dans le système de type étendu Windows PowerShell.
  • Prolongé. Obtient uniquement les propriétés et méthodes qui ont été ajoutées dans les fichiers Types.ps1xml ou à l’aide de l’applet de commande Add-Member.
  • Tout. Obtient les membres des vues Base, Adaptée et Étendue.

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, Obtenir un membre obtient les membres qui appartiennent aux deux jeux. Si vous utilisez les paramètres statiques 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:None
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 Get-Member .

Sorties

MemberDefinition

get-member retourne un objet pour chaque propriété ou méthode qu’il obtient.

Notes

  • 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, pour Get-Member .

    Vous pouvez utiliser la variable automatique $This dans les blocs de script qui définissent les valeurs des nouvelles propriétés et méthodes. La variable $This 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 variable $This, consultez about_Automatic_Variables.