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