about_Properties
Mis à jour: mai 2014
S'applique à: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0, Windows PowerShell 5.0
RUBRIQUE
about_Properties
DESCRIPTION COURTE
Décrit comment utiliser des propriétés d'objet dans Windows PowerShell.
DESCRIPTION DÉTAILLÉE
Windows PowerShell utilise des collections structurées d'informations appelées objets pour représenter les éléments dans les magasins de données ou l'état de l'ordinateur. En général, vous utilisez des objets qui font partie de Microsoft .NET Framework, mais vous pouvez également créer des objets personnalisés dans Windows PowerShell.
L'association entre un élément et son objet est très étroite. Quand vous modifiez un objet, vous modifiez généralement l'élément qu'il représente. Par exemple, quand vous obtenez un fichier dans Windows PowerShell, vous n'obtenez pas le fichier réel. À la place, vous obtenez un objet FileInfo qui représente le fichier. Quand vous modifiez l'objet FileInfo, le fichier change également.
La plupart des objets ont des propriétés. Les propriétés sont les données associées à un objet. Différents types d'objets ont des propriétés différentes. Par exemple, un objet FileInfo, qui représente un fichier, a une propriété IsReadOnly contenant $True si le fichier présente l'attribut de lecture seule et $False dans le cas contraire. Un objet DirectoryInfo, qui représente un répertoire de système de fichiers, a une propriété Parent qui contient le chemin d'accès au répertoire parent.
PROPRIÉTÉS D'OBJET
Pour obtenir les propriétés d'un objet, utilisez l'applet de commande Get-Member. Par exemple, pour obtenir les propriétés d'un objet FileInfo, utilisez l'applet de commande Get-ChildItem pour obtenir l'objet FileInfo qui représente un fichier. Ensuite, utilisez un opérateur pipeline (|) pour envoyer l'objet FileInfo à Get-Member. La commande suivante obtient le fichier PowerShell.exe et l'envoie à Get-Member. La variable automatique $Pshome contient le chemin d'accès au répertoire d'installation de Windows PowerShell.
Get-ChildItem $pshome\PowerShell.exe | Get-Member
La sortie de la commande répertorie les membres de l'objet FileInfo. Les membres incluent à la fois les propriétés et les méthodes. Quand vous travaillez dans Windows PowerShell, vous avez accès à tous les membres des objets.
Pour obtenir uniquement les propriétés d'un objet et pas les méthodes, utilisez le paramètre MemberType de l'applet de commande Get-Member avec la valeur « property », comme illustré dans l'exemple suivant.
Get-ChildItem $pshome\PowerShell.exe | Get-Member -MemberType property
TypeName: System.IO.FileInfo
Name MemberType Definition
---- ---------- ----------
Attributes Property System.IO.FileAttributes Attributes {get;set;}
CreationTime Property System.DateTime CreationTime {get;set;}
CreationTimeUtc Property System.DateTime CreationTimeUtc {get;set;}
Directory Property System.IO.DirectoryInfo Directory {get;}
DirectoryName Property System.String DirectoryName {get;}
Exists Property System.Boolean Exists {get;}
Extension Property System.String Extension {get;}
FullName Property System.String FullName {get;}
IsReadOnly Property System.Boolean IsReadOnly {get;set;}
LastAccessTime Property System.DateTime LastAccessTime {get;set;}
LastAccessTimeUtc Property System.DateTime LastAccessTimeUtc {get;set;}
LastWriteTime Property System.DateTime LastWriteTime {get;set;}
LastWriteTimeUtc Property System.DateTime LastWriteTimeUtc {get;set;}
Length Property System.Int64 Length {get;}
Name Property System.String Name {get;}
Après avoir trouvé les propriétés, vous pouvez les utiliser dans vos commandes Windows PowerShell.
VALEURS DE PROPRIÉTÉ
Bien que tous les objets d'un type spécifique aient les mêmes propriétés, les valeurs de ces propriétés décrivent l'objet spécifique. Par exemple, chaque objet FileInfo a une propriété CreationTime, mais la valeur de cette propriété est différente pour chaque fichier.
La façon la plus courante d'obtenir les valeurs des propriétés d'un objet consiste à utiliser la méthode du point. Tapez une référence à l'objet, telle qu'une variable qui contient l'objet, ou une commande qui obtient l'objet. Tapez ensuite un point (.) suivi du nom de propriété.
Par exemple, la commande suivante affiche la valeur de la propriété CreationTime du fichier PowerShell.exe. La commande Get-ChildItem retourne un objet FileInfo qui représente le fichier PowerShell.exe. La commande est placée entre parenthèses pour garantir qu'elle est exécutée avant tout accès aux propriétés. La commande Get-ChildItem est suivie d'un point et du nom de la propriété CreationTime, comme suit :
C:\PS> (Get-ChildItem $pshome\PowerShell.exe).creationtime
Tuesday, March 18, 2008 12:07:52 AM
Vous pouvez également enregistrer un objet dans une variable, puis obtenir ses propriétés à l'aide de la méthode du point, comme illustré dans l'exemple suivant :
C:\PS> $a = Get-ChildItem $pshome\PowerShell.exe
C:\PS> $a.CreationTime
Tuesday, March 18, 2008 12:07:52 AM
Vous pouvez également utiliser les applets de commande Select-Object et Format-List pour afficher les valeurs de propriété d'un objet. Select-Object et Format-List ont chacune un paramètre Property. Vous pouvez utiliser le paramètre Property pour spécifier une ou plusieurs propriétés et leurs valeurs. Vous pouvez également utiliser le caractère générique (*) pour représenter toutes les propriétés.
Par exemple, la commande suivante affiche les valeurs de toutes les propriétés du fichier PowerShell.exe.
C:\PS> Get-ChildItem $pshome\PowerShell.exe | Format-List -property *
PSPath : Microsoft.PowerShell.Core\FileSystem::C:\Windows\system32\WindowsPowerShell\v1.0\PowerShell.exe
PSParentPath : Microsoft.PowerShell.Core\FileSystem::C:\Windows\system32\WindowsPowerShell\v1.0
PSChildName : PowerShell.exe
PSDrive : C
PSProvider : Microsoft.PowerShell.Core\FileSystem
PSIsContainer : False
VersionInfo : File: C:\Windows\system32\WindowsPowerShell\v1.0\PowerShell.exe
InternalName: POWERSHELL
OriginalFilename: PowerShell.EXE.MUI
File Version: 6.1.6570.1 (fbl_srv_PowerShell(nigels).070711-0102)
FileDescription: PowerShell.EXE
Product: Microsoft® Windows® Operating System
ProductVersion: 6.1.6570.1
Debug: False
Patched: False
PreRelease: False
PrivateBuild: True
SpecialBuild: False
Language: English (United States)
BaseName : PowerShell
Mode : -a---
Name : PowerShell.exe
Length : 160256
DirectoryName : C:\Windows\system32\WindowsPowerShell\v1.0
Directory : C:\Windows\system32\WindowsPowerShell\v1.0
IsReadOnly : False
Exists : True
FullName : C:\Windows\system32\WindowsPowerShell\v1.0\PowerShell.exe
Extension : .exe
CreationTime : 3/18/2008 12:07:52 AM
CreationTimeUtc : 3/18/2008 7:07:52 AM
LastAccessTime : 3/19/2008 8:13:58 AM
LastAccessTimeUtc : 3/19/2008 3:13:58 PM
LastWriteTime : 3/18/2008 12:07:52 AM
LastWriteTimeUtc : 3/18/2008 7:07:52 AM
Attributes : Archive
PROPRIÉTÉS STATIQUES
Vous pouvez utiliser les propriétés statiques des classes .NET dans Windows PowerShell. Les propriétés statiques sont des propriétés de classe, contrairement aux propriétés standard, qui sont les propriétés d'un objet.
Pour obtenir les propriétés statiques d'une classe, utilisez le paramètre Static de l'applet de commande Get-Member.
Par exemple, la commande suivante obtient les propriétés statiques de la classe System.DateTime.
Get-Date | Get-Member -MemberType Property -Static
TypeName: System.DateTime
Name MemberType Definition
---- ---------- ----------
MaxValue Property static datetime MaxValue {get;}
MinValue Property static datetime MinValue {get;}
Now Property datetime Now {get;}
Today Property datetime Today {get;}
UtcNow Property datetime UtcNow {get;}
Pour obtenir la valeur d'une propriété statique, utilisez la syntaxe suivante.
[<ClassName>]::<Property>
Par exemple, la commande suivante obtient la valeur de la propriété statique UtcNow de la classe System.DateTime.
[System.DateTime]::UtcNow
PROPRIÉTÉS DES OBJETS SCALAIRES ET DES COLLECTIONS
Les propriétés d'un objet (« scalaire ») d'un type particulier sont souvent différentes des propriétés d'une collection d'objets du même type.
Par exemple, chaque service a une propriété DisplayName, mais une collection de services ne possède pas de propriété DisplayName. De même, toutes les collections ont une propriété Count qui indique le nombre d'objets présents dans la collection, mais les objets individuels n'ont pas de propriété Count.
À compter de Windows PowerShell 3.0, Windows PowerShell tente d'empêcher les erreurs de script qui résultent des propriétés différentes des objets scalaires et des collections.
-- Si vous envoyez une collection, mais demandez une propriété qui existe uniquement dans des objets uniques (« scalaires »), Windows PowerShell retourne la valeur de cette propriété pour chaque objet dans la collection.
-- Si vous demandez la propriété Count ou Length de zéro ou d'un objet, Windows PowerShell retourne la valeur correcte.
Si la propriété existe dans les objets individuels et dans la collection, Windows PowerShell ne modifie pas le résultat.
Cette fonctionnalité fonctionne également sur les méthodes des objets scalaires et collections. Pour plus d'informations, consultez about_Methods.
EXEMPLES
Par exemple, chaque service a une propriété DisplayName. La commande suivante obtient la valeur de la propriété DisplayName du service AudioSrv.
PS C:\>(Get-Service Audiosrv).DisplayName
Windows Audio
Toutefois, une collection ou un tableau de services n'a pas de propriété DisplayName. La commande suivante essaie d'obtenir la propriété DisplayName de tous les services dans Windows PowerShell 2.0.
PS C:\>(Get-Service).DisplayName
PS C:\>
À compter de Windows PowerShell 3.0, la même commande retourne la valeur de la propriété DisplayName de chaque service retourné par Get-Service.
PS C:\>(Get-Service).DisplayName
Application Experience
Application Layer Gateway Service
Windows All-User Install Agent
Application Identity
Application Information
...
À l'inverse, une collection de plusieurs services possède une propriété Count, qui contient le nombre d'objets dans la collection.
PS C:\>(Get-Service).Count
176
Les services individuels ne possèdent pas de propriété Count ni Length, comme indiqué dans cette commande dans Windows PowerShell 2.0.
PS C:\>(Get-Service Audiosrv).Count
PS C:\>
À compter de Windows PowerShell 3.0, la commande retourne la valeur Count appropriée.
PS C:\>(Get-Service Audiosrv).Count
1
VOIR AUSSI
about_Methods
about_Objects
Get-Member
Select-Object
Format-List