Vous pouvez obtenir une propriété par nom à l'aide de l' Select-Object
applet de commande et en spécifiant le ou les noms de propriété qui vous intéressent. Notez que cela ne renvoie pas simplement la valeur brute de cette propriété; au lieu de cela, vous obtenez quelque chose qui se comporte toujours comme un objet.
[PS]> $property = (Get-Process)[0] | Select-Object -Property Name
[PS]> $property
Name
----
armsvc
[PS]> $property.GetType().FullName
System.Management.Automation.PSCustomObject
Pour utiliser la valeur de cette propriété, vous devrez toujours identifier la propriété que vous recherchez, même s'il n'y a qu'une seule propriété:
[PS]> $property.Name
armsvc
[PS]> $property -eq "armsvc"
False
[PS]> $property.Name -eq "armsvc"
True
[PS]> $property.Name.GetType().FullName
System.String
Comme pour les autres réponses ici, si vous souhaitez utiliser une seule propriété dans une chaîne, vous devez évaluer l'expression (mettre des crochets autour d'elle) et le préfixe avec un signe dollar ($) pour déclarer l'expression dynamiquement en tant que variable à insérer dans la chaîne:
[PS]> "The first process in the list is: $($property.Name)"
The first process in the list is: armsvc
Tout à fait correctement, d'autres ont répondu à cette question en recommandant le -ExpandProperty
paramètre de l' Select-Object
applet de commande. Cela évite une partie du mal de tête en renvoyant la valeur de la propriété spécifiée, mais vous souhaiterez utiliser différentes approches dans différents scénarios.
-ExpandProperty <String>
Spécifie une propriété à sélectionner et indique qu'une tentative doit être faite pour développer cette propriété
https://technet.microsoft.com/en-us/library/hh849895.aspx
[PS]> (Get-Process)[0] | Select-Object -ExpandProperty Name
armsvc
PowerShell variables
select -expand "SomeProp"
si vous voulez la valeur.select "SomeProp"
renvoie un objet personnalisé avec une propriété "SomeProp", puis il est à peu près de retour à l'étape 1.