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
Pour spécifier l’objet, utilisez le paramètre InputObject
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
É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
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
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
La troisième commande utilise le paramètre
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
- 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
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
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
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
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
Vous pouvez diriger n’importe quel objet vers Get-Member .
Sorties
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.