about_Properties
Description courte
Décrit comment utiliser des propriétés d’objet dans PowerShell.
Description longue
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 règle générale, vous travaillez avec des objets qui font partie de Microsoft .NET Framework, mais vous pouvez également créer des objets personnalisés dans PowerShell.
L’association entre un élément et son objet est très proche. Lorsque vous modifiez un objet, vous modifiez généralement l’élément qu’il représente. Par exemple, lorsque vous obtenez un fichier dans PowerShell, vous n’obtenez pas le fichier réel. Au lieu de cela, vous obtenez un objet FileInfo qui représente le fichier. Lorsque 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’objet ont des propriétés différentes. Par exemple, un objet FileInfo , qui représente un fichier, a une propriété IsReadOnly qui contient $True
si le fichier a l’attribut en lecture seule et $False
si ce n’est pas le cas. 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 des objets
Pour obtenir les propriétés d’un objet, utilisez l’applet Get-Member
de commande. Par exemple, pour obtenir les propriétés d’un objet FileInfo , utilisez l’applet Get-ChildItem
de commande pour obtenir l’objet FileInfo qui représente un fichier. Ensuite, utilisez un opérateur de pipeline (|
) pour envoyer l’objet FileInfo à Get-Member
. La commande suivante obtient le powershell.exe
fichier et l’envoie à Get-Member
. La $PSHOME
variable automatique contient le chemin d’accès du répertoire d’installation De 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. Lorsque vous travaillez dans PowerShell, vous avez accès à tous les membres des objets.
Pour obtenir uniquement les propriétés d’un objet et non les méthodes, utilisez le paramètre MemberType de l’applet Get-Member
de Property
commande avec la valeur , 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 PowerShell.
Valeurs de propriétés
Bien que chaque objet d’un type spécifique ait les mêmes propriétés, les valeurs de ces propriétés décrivent l’objet particulier. Par exemple, chaque objet FileInfo a une propriété CreationTime , mais la valeur de cette propriété diffère pour chaque fichier.
La façon la plus courante d’obtenir les valeurs des propriétés d’un objet consiste à utiliser l’opérateur d’accès membre (.
). Tapez une référence à l’objet, telle qu’une variable qui contient l’objet ou une commande qui obtient l’objet. Ensuite, tapez l’opérateur (.
) suivi du nom de la propriété.
Par exemple, la commande suivante affiche la valeur de la propriété CreationTime du powershell.exe
fichier. La Get-ChildItem
commande renvoie un objet FileInfo qui représente le powershell.exe file
. La commande est placée entre parenthèses pour vous assurer qu’elle est exécutée avant l’accès à toutes les propriétés.
(Get-ChildItem $PSHOME\powershell.exe).CreationTime
Saturday, June 5, 2021 7:07:00 AM
Vous pouvez également enregistrer un objet dans une variable, puis obtenir ses propriétés à l’aide de la méthode d’accès membre (.
), comme illustré dans l’exemple suivant :
$a = Get-ChildItem $PSHOME\powershell.exe
$a.CreationTime
Wednesday, January 24, 2024 1:18:29 AM
Vous pouvez également utiliser les Select-Object
applets de commande et Format-List
les applets de commande pour afficher les valeurs de propriété d’un objet. Select-Object
et Format-List
chacun possède 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 powershell.exe
fichier.
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
Mode : -a----
VersionInfo : File: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
InternalName: POWERSHELL
OriginalFilename: PowerShell.EXE.MUI
FileVersion: 10.0.22621.1 (WinBuild.160101.0800)
FileDescription: Windows PowerShell
Product: Microsoft® Windows® Operating System
ProductVersion: 10.0.22621.1
Debug: False
Patched: False
PreRelease: False
PrivateBuild: False
SpecialBuild: False
Language: English (United States)
BaseName : powershell
Target : {C:\Windows\WinSxS\amd64_microsoft-windows-powershell-exe_31bf3856ad364e35_10.0.22621.3085_none_492
e8ee57da24e0e\powershell.exe}
LinkType : HardLink
Name : powershell.exe
Length : 450560
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 : 1/24/2024 1:18:29 AM
CreationTimeUtc : 1/24/2024 7:18:29 AM
LastAccessTime : 1/3/2025 1:36:20 PM
LastAccessTimeUtc : 1/3/2025 7:36:20 PM
LastWriteTime : 1/24/2024 1:18:29 AM
LastWriteTimeUtc : 1/24/2024 7:18:29 AM
Attributes : Archive
Propriétés statiques
Vous pouvez utiliser les propriétés statiques des classes .NET dans PowerShell. Les propriétés statiques sont des propriétés de la classe, contrairement aux propriétés standard, qui sont des propriétés d’une instance d’objet.
Pour obtenir les propriétés statiques d’une classe, utilisez le paramètre static de l’applet Get-Member
de commande. Par exemple, la commande suivante obtient les propriétés statiques de la System.DateTime
classe.
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 System.DateTime
classe.
[System.DateTime]::UtcNow
Énumération des accès aux membres
À compter de PowerShell 3.0, lorsque vous utilisez l’opérateur d’accès membre (.
) pour accéder à une propriété qui n’existe pas, PowerShell énumère automatiquement les éléments de la collection et retourne la valeur de la propriété pour chaque élément.
Cette commande retourne la valeur de la propriété DisplayName de chaque service qui Get-Service
retourne.
(Get-Service).DisplayName
Application Experience
Application Layer Gateway Service
Windows All-User Install Agent
Application Identity
Application Information
...
La plupart des collections dans PowerShell ont une propriété Count qui retourne le nombre d'éléments de la collection.
(Get-Service).Count
176
Si une propriété existe sur les objets individuels et sur la collection, seule la propriété de la collection est retournée.
PS> $collection = @(
[pscustomobject]@{Length = "foo"}
[pscustomobject]@{Length = "bar"}
)
# PowerShell returns the collection's Length.
$collection.Length
2
# Get the length property of each item in the collection.
PS> $collection.GetEnumerator().Length
foo
bar
Pour plus d’informations, consultez about_Member-Access_Enumeration.