Get-Member
Obtient les propriétés et méthodes des objets.
Syntaxe
Get-Member [[-Name] <string[]>] [-Force] [-InputObject <psobject>] [-MemberType {<AliasProperty> | <CodeProperty> | <Property> | <NoteProperty> | <ScriptProperty> | <Properties> | <PropertySet> | <Method> | <CodeMethod> | <ScriptMethod> | <Methods> | <ParameterizedProperty> | <MemberSet> | <Event> | <All>}] [-Static] [-View {<Extended> | <Adapted> | <Base> | <All>}] [<CommonParameters>]
Description
L'applet de commande Get-Member obtient les « membres » (propriétés et méthodes) des objets.
Pour indiquer l'objet, utilisez le paramètre InputObject ou dirigez un objet vers Get-Member. Pour récupérer des informations sur les membres statiques (membres de la classe, pas de l'instance), utilisez le paramètre Static. Pour obtenir certains types de membres uniquement, tels que NoteProperties, utilisez le paramètre MemberType.
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 tous les vues autres que « Base » et « Adapted », mais ne les affiche pas.
La liste suivante décrit les propriétés ajoutées lorsque vous utilisez le paramètre Force :
-- PSBase : propriétés d'origine de l'objet .NET Framework sans extension ou 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 de Windows PowerShell.
-- PSExtended : propriétés et méthodes ajoutées aux fichiers Types.ps1xml ou à l'aide de l'applet de commande Add-Member.
-- PSObject : carte qui convertit l'objet de base en un objet PSObject Windows PowerShell.
-- 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 du répertoire d'installation de Windows PowerShell ($pshome). Il utilise la définition de mise en forme du premier type trouvé.
Obligatoire ? |
false |
Position ? |
named |
Valeur par défaut |
|
Accepter l'entrée de pipeline ? |
false |
Accepter les caractères génériques ? |
false |
-InputObject <psobject>
Spécifie l'objet dont les membres sont récupérés.
Le fait d'utiliser le paramètre InputObject ne revient pas au même que de diriger 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, telles que les propriétés des entiers dans un tableau d'entiers.
-- Lorsque vous utilisez InputObject pour envoyer une collection d'objets, Get-Member obtient les membres de la collection, telles que les propriétés du tableau dans un tableau d'entiers.
Obligatoire ? |
false |
Position ? |
named |
Valeur par défaut |
|
Accepter l'entrée de pipeline ? |
true (ByValue) |
Accepter les caractères génériques ? |
false |
-MemberType <PSMemberTypes>
Obtient uniquement les membres possédant le type de membre spécifié. La valeur par défaut est All.
Les valeurs valides pour ce paramètre sont :
-- AliasProperty : propriété qui définit un nouveau nom pour une propriété existante.
-- CodeMethod : méthode qui référence une méthode statique d'une classe .NET Framework.
-- CodeProperty : propriété qui référence une propriété statique d'une classe .NET Framework.
-- Event : indique que l'objet envoie un message pour spécifier une action ou un changement d'état.
-- MemberSet : collection prédéfinie de propriétés et méthodes, telles que PSBase, PSObject et PSTypeNames.
-- Method : méthode de l'objet .NET Framework sous-jacent.
-- NoteProperty : propriété ayant une valeur statique.
-- ParameterizedProperty : propriété qui utilise des paramètres et des valeurs de paramètre.
-- Property : propriété de l'objet .NET Framework sous-jacent.
-- PropertySet : collection prédéfinie de propriétés d'objet.
-- ScriptMethod : méthode dont la valeur est la sortie d'un script.
-- ScriptProperty : propriété dont la valeur est la sortie d'un script.
-- All : obtient tous les types de membres.
-- Methods : obtient tous les types de méthodes de l'objet (par exemple, Method, CodeMethod, ScriptMethod).
-- Properties : obtient tous les types de propriétés de l'objet (par exemple, Property, CodeProperty, AliasProperty, ScriptProperty).
Tous les objets ne possèdent pas chaque type de membre. Si vous spécifiez un type de membre non associé à l'objet, Windows PowerShell retourne une valeur nulle.
Pour obtenir des types de membres lié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.
Obligatoire ? |
false |
Position ? |
named |
Valeur par défaut |
|
Accepter l'entrée de pipeline ? |
false |
Accepter les caractères génériques ? |
false |
-Name <string[]>
Spécifie le nom 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 les paramètres MemberType, View ou Static, Get-Member obtient uniquement les membres qui satisfont aux critères de tous les paramètres.
Pour obtenir un membre statique en fonction de son nom, utilisez le paramètre Static avec le paramètre Name.
Obligatoire ? |
false |
Position ? |
1 |
Valeur par défaut |
|
Accepter l'entrée de pipeline ? |
false |
Accepter les caractères génériques ? |
false |
-Static
Obtient uniquement les méthodes et propriétés statiques de l'objet.
Les méthodes et propriétés statiques sont définies en fonction de la classe des objets, et non pas en fonction d'une instance particulière de la classe.
Si vous utilisez le paramètre Static avec le paramètre View, le paramètre View est ignoré. Si vous utilisez le paramètre Static avec le paramètre MemberType, Get-Member obtient uniquement les membres appartenant aux deux jeux.
Obligatoire ? |
false |
Position ? |
named |
Valeur par défaut |
|
Accepter l'entrée de pipeline ? |
false |
Accepter les caractères génériques ? |
false |
-View <PSMemberViewTypes>
Obtient uniquement des types particuliers de membres (propriétés et méthodes). Spécifiez une ou plusieurs valeurs. La valeur par défaut est « Adapted, Extended ».
Les valeurs valides sont :
-- Base : obtient uniquement les propriétés et méthodes d'origine de l'objet .NET Framework (sans extension ou adaptation).
-- Adapted : obtient uniquement les propriétés et méthodes définies dans le système de type étendu de Windows PowerShell.
-- Extended : obtient uniquement les propriétés et méthodes ajoutées aux fichiers Types.ps1xml ou à l'aide de l'applet de commande Add-Member.
-- All : obtient les membres des vues Base, Adapted et Extended.
Le paramètre View détermine les membres récupérés, pas uniquement l'affichage de ces membres.
Pour obtenir des types de membres spécifiques, telles 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é.
Obligatoire ? |
false |
Position ? |
named |
Valeur par défaut |
|
Accepter l'entrée de pipeline ? |
false |
Accepter les caractères génériques ? |
false |
<CommonParameters>
Cette applet de commande prend en charge les paramètres courants : -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer et -OutVariable. Pour plus d'informations, consultez about_Commonparameters.
Entrées et sorties
Le type d'entrée est le type des objets que vous pouvez diriger vers l'applet de commande. Le type de retour est le type des objets que l'applet de commande retourne.
Entrées |
System.Management.Automation.PSObject Vous pouvez diriger n'importe quel objet vers Get-Member. |
Sorties |
Microsoft.PowerShell.Commands.MemberDefinition Get-Member retourne un objet pour chaque propriété ou méthode qu'elle obtient. |
Remarques
Vous pouvez récupérer des informations sur un objet de collection en utilisant le paramètre InputObject ou en dirigeant l'objet, précédé d'une virgule, vers Get-Member.
Exemple 1
C:\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;}
Description
-----------
Cette commande affiche les propriétés et méthodes des objets processus (System.ServiceProcess.ServiceController) générés par l'applet de commande Get-Service.
Elle utilise l'opérateur de pipeline (|) pour envoyer la sortie d'une commande Get-Service à Get-Member.
Étant donné que la partie Get-Member de la commande ne comporte pas de paramètres, elle utilise toutes les valeurs par défaut. Elle obtient ainsi tous les types de membres, mais elle n'obtient pas de membres statiques et n'affiche pas de membres intrinsèques.
Exemple 2
C:\PS>get-service | get-member -force
C:\PS> (get-service -schedule).psbase
Description
-----------
Cet exemple obtient tous les membres (propriétés et méthodes) des objets services (System.ServiceProcess.ServiceController) récupérés par l'applet de commande Get-Service, notamment 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 récupérer les objets représentant les services du système. Elle utilise un opérateur de pipeline (|) pour passer les objets services à 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. Get-Member obtient ces membres, mais 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
C:\PS>get-service | get-member -view extended
TypeName: System.ServiceProcess.ServiceController
Name MemberType Definition
---- ---------- ----------
Name AliasProperty Name = ServiceName
Description
-----------
Cette commande obtient les méthodes et propriétés des objets services é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 services. Dans ce cas, le membre étendu est la propriété Name, qui est une propriété d'alias de la propriété ServiceName.
Exemple 4
C:\PS>get-eventlog -log system | gm -membertype scriptproperty
TypeName: System.Diagnostics.EventLogEntry
Name MemberType Definition
---- ---------- ----------
EventID ScriptProperty System.Object EventID {get=$this.get_EventID() -band 0xFFFF;}
Description
-----------
Cette commande obtient les propriétés de script des objets de journal des événements du journal système de l'Observateur d'événements. Dans ce cas, la seule propriété de script est EventID.
Exemple 5
C:\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;}
Description
-----------
Cette commande obtient les propriétés de script des objets de journal des événements du journal système de l'Observateur d'événements.
Elle utilise le paramètre MemberType pour obtenir uniquement les objets possédant la valeur AliasProperty pour leur propriété MemberType.
Elle retourne la propriété EventID de l'objet EventLog.
Exemple 6
C:\PS>$a = "get-process", "get-service", "get-culture", "get-psdrive", "get-executionpolicy"
C:\PS> foreach ($cmdlet in $a) {invoke-expression $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;}
Description
-----------
Cette commande obtient les objets possédant une propriété MachineName à partir d'une liste d'applets de commande.
La première commande stocke le nom 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 possédant le nom « MachineName ».
Les résultats montrent que seuls les objets processus (System.Diagnostics.Process) et les objets services (System.ServiceProcess.ServiceController) ont une propriété MachineName.
Exemple 7
C:\PS>$a = get-member -inputobject @(1)
C:\PS>$a.count
1
C:\PS> $a = get-member -inputobject 1,2,3
TypeName: System.Object[]
Name MemberType Definition
---- ---------- ----------
Count AliasProperty Count = Length
Address Method System.Object& Address(Int32 )
Clone Method System.Object Clone()
...
C:\PS>$a.count
1
Description
-----------
Cet exemple montre comment rechercher les propriétés et méthodes d'un tableau d'objets lorsque vous disposez d'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. Elle utilise le symbole « à » (@) pour indiquer un tableau. Dans ce cas, le tableau contient un seul objet, l'entier 1.
La troisième commande utilise l'applet de commande Get-Member pour obtenir les propriétés et méthodes d'un tableau d'entiers, puis 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.