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.ServiceProcess.ServiceController
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()
CreateObjRef Method System.Runtime.Remoting.ObjRef CreateObjRef(type requestedType)
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...
CanPauseAndContinue Property bool CanPauseAndContinue {get;}
CanShutdown Property bool CanShutdown {get;}
CanStop Property bool CanStop {get;}
Container Property System.ComponentModel.IContainer Container {get;}
DependentServices Property System.ServiceProcess.ServiceController[] DependentServices {get;}
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;}
Status Property System.ServiceProcess.ServiceControllerStatus Status {get;}
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.ServiceProcess.ServiceController
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.ServiceProcess.ServiceController
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 lesTypes.ps1xml
fichiers ou à l’aide de l’applet deAdd-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 lesFormat.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 deAdd-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
Vous pouvez diriger n’importe quel objet vers cette applet de commande.
Sorties
Cette applet de commande retourne un MemberDefinition pour chaque propriété ou méthode qu’elle obtient.
Notes
Windows PowerShell inclut les alias suivants pour Get-Member
:
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
.