PowerShell est un outil puissant pour gérer les données, mais il fournit généralement trop d’informations à la fois. Comme vous le savez, trop d’informations peuvent être accablantes et difficiles à analyser. Pas de soucis, cependant. Le cmdlet PowerShell Select-Object
sera très utile.
Dans ce tutoriel, vous apprendrez les bases du cmdlet Select-Object
pour affiner ou filtrer les résultats de nombreuses façons.
Continuez et commencez la gestion des données sans douleur !
Prérequis
Ce tutoriel comprend des démonstrations pratiques. Pour suivre, assurez-vous d’avoir un système avec PowerShell installé. Ce tutoriel utilise Windows 10 avec PowerShell 7, mais toute version moderne devrait également fonctionner.
Qu’est-ce que le cmdlet Select-Object de PowerShell ?
Le cmdlet Select-Object
simplifie la gestion des données en vous permettant de sélectionner des propriétés spécifiques à partir d’un objet ou d’un ensemble de données. En même temps, vous pouvez renommer des propriétés ou créer des propriétés calculées en fonction de celles déjà existantes.
La syntaxe de base de Select-Object
est la suivante : où :
Parameter | Function |
---|---|
-InputObject |
Specifies the object or data set you want to work with, which can be an object, an array of objects, or an output of another cmdlet. |
Property |
Specifies the property or properties to select from the InputObject parameter. You can specify multiple properties separated by commas. |
Optional Parameters |
Allows you to refine your selection, such as selecting a certain number of objects or skipping objects. |
Sélectionner des objets par propriétés
Étant donné qu’une introduction plus détaillée est nécessaire pour satisfaire votre désir d’apprendre sur la cmdlet Select-Object
, pourquoi ne pas commencer par l’un de ses cas d’utilisation courants ? Démarrez ce tutoriel en sélectionnant une propriété spécifique à partir d’un objet avec la cmdlet Select-Object
.
Supposons que vous ayez une liste de processus en cours d’exécution sur votre ordinateur, mais que vous ne souhaitiez voir que les noms de chaque processus. Spécifier la propriété Nom
à la cmdlet Select-Object
fera l’affaire.
Ouvrez PowerShell et exécutez la commande suivante Get-Process
ci-dessous pour récupérer et afficher une liste de tous les processus uniquement (Select-Object
) par Nom
.

Outre les processus en cours d’exécution, la cmdlet
Select-Object
vous permet de travailler sur un fichier CSV. Supposons que vous ayez un fichier CSV avec de nombreuses colonnes mais que vous n’ayez besoin que de quelques-unes d’entre elles. Dans ce cas, laissez la cmdletSelect-Object
choisir uniquement les colonnes pertinentes afin que vous puissiez manipuler et analyser les données.
Maintenant, exécutez la commande suivante pour sélectionner plusieurs propriétés (`Select-Object`): `Name` et `CPU` (séparées par des virgules). Cette fonctionnalité est utile lorsque vous travaillez avec de grands ensembles de données où vous avez seulement besoin de certaines propriétés de chaque objet.
De plus, cette commande trie également la liste des objets (`Sort-Object`) dans l’ordre `-Descending` avec la propriété `CPU` comme référence.
Ci-dessous, vous pouvez voir les processus répertoriés, en commençant par celui qui consomme le plus de ressources, Google Chrome (si vous en avez un installé).

Création d’une propriété calculée
Lorsque vous recherchez des propriétés qui correspondent mieux à vos besoins, envisagez de créer une propriété calculée. Pourquoi? Les propriétés calculées vous permettent de manipuler et de transformer les données, de combiner des propriétés existantes, d’effectuer des opérations mathématiques ou de formater les données de manière spécifique.
Pour créer une propriété calculée, vous devez spécifier un nouveau nom de propriété et une expression qui définit comment calculer la valeur de la propriété:
Exécutez la commande ci-dessous pour effectuer ce qui suit:
- Récupérer une liste de processus en cours d’exécution (`Get-Process`), en ne sélectionnant que les propriétés `Name` et `CPU`.
- Créez une nouvelle propriété calculée avec le
Nom
Mémoire (Mo)
, qui calcule l’utilisation de la mémoire de chaque processus en mégaoctets. L’utilisation de la mémoire est calculée en utilisant uneExpression
qui divise la propriétéWorkingSet
par1Mo
. Toute expression PowerShell valide fonctionne pour créer une propriété calculée. - Affiche tous les processus en cours d’exécution récupérés dans l’ordre
-Descendant
par la propriété calculéeMémoire (Mo)
.

Exclure une propriété spécifiée
Dans la vie réelle, les résultats d’une commande Select-Object
peuvent contenir des informations sensibles, telles que des noms d’utilisateur et des mots de passe. Comment éviter ce risque ?
Pour empêcher l’affichage de données sensibles dans la sortie, ajoutez le paramètre -ExcludeProperty
pour exclure une propriété spécifiée de la sortie.
Exécutez la commande suivante pour effectuer les tâches suivantes :
- Récupérer une liste de tous les fichiers et dossiers (
Get-ChildItem
) dans le répertoireC:\\
récursivement (-Recurse
).
- Redirigez la sortie vers l’applet de commande
Select-Object
pour sélectionner les propriétésName
,Length
etLastWriteTime
. - Excluez (
-ExcludeProperty
) la propriétéFullName
de la sortie. Ce faisant, vous évitez d’afficher les chemins complets dans la sortie, qui peuvent contenir des informations confidentielles.

Sauter le Premier ou le Dernier Nombre d’Objets
Lorsque vous travaillez avec des ensembles de données massifs, trouver les données dont vous avez besoin peut être comme chercher un diamant dans une mine de charbon. Mais pourquoi perdre du temps à filtrer des données non pertinentes ?
Dans PowerShell, l’applet de commande Select-Object
fournit deux paramètres qui vous permettent d’exclure le premier (-Skip
) et le dernier (-SkipLast
) nombre d’objets dans la sortie, respectivement.
Pour voir comment le fait de sauter plusieurs objets de la sortie fonctionne :
Exécutez la commande ci-dessous pour obtenir tous les processus en cours (Get-Process
) mais -Skip
les premiers 100
objets retournés.
Notez que le nombre d’objets sautés est basé sur des valeurs entières (nombres positifs et entiers sans points décimaux), qui dans ce cas est
100
.

Maintenant, exécutez la commande suivante pour obtenir une liste du contenu du répertoire de travail (Get-ChildItem
) mais sautez les derniers (-SkipLast
) 100
objets retournés.

Sélectionner le Premier ou le Dernier Nombre d’Objets
Outre le fait de sauter le premier et le dernier nombre d’objets, vous pouvez également être intéressé par la sélection du premier et du dernier nombre d’objets. La commande Select-Object
prend en charge cette fonctionnalité avec les paramètres First
et Last
qui vous permettent de sauter tout le reste pour gagner du temps et des ressources.
Exécutez la commande suivante pour obtenir tous les processus, mais ne sélectionnez que les -First 10
objets retournés.

Maintenant, exécutez la commande ci-dessous pour obtenir tout le contenu du répertoire de travail (Get-ChildItem
), mais ne sélectionnez que les -Last 10
objets retournés.

Sélection d’objets uniques exclusivement
Lorsque vous travaillez avec des ensembles de données plus importants, vous rencontrerez des valeurs en double que vous voudrez peut-être exclure de la sortie, ce qui est typique. Mais la bonne chose avec la commande Select-Object
est que vous n’avez pas besoin d’exclure manuellement les valeurs en double.
L’ajout du paramètre -Unique
vous permet de sélectionner uniquement les objets uniques de la sortie, ce qui simplifie votre analyse et améliore la précision de vos résultats.
Exécutez la commande ci-dessous pour sélectionner (Select-Object
) et renvoyer les -First 2
objets.
Ci-dessous, vous pouvez voir deux objets retournés indépendamment de savoir si l’autre est une valeur en double.

Enfin, exécutez la commande suivante pour renvoyer une seule valeur -Unique
pour chacun des -First 2
objets sélectionnés.
Cette fois, vous ne pouvez voir qu’un seul objet retourné parmi les deux premiers sélectionnés, car l’autre est simplement une valeur en double. Comme vous le réalisez, cette sortie prouve que le paramètre -Unique
est pratique pour rapidement éliminer tout objet en double dans vos données.

Conclusion
PowerShell a tendance à produire une surcharge d’informations. Mais dans ce tutoriel, vous avez appris comment la commande Select-Object
de PowerShell aide à rationaliser vos données pour ne voir que les informations nécessaires.
Vous avez vu comment différents paramètres vous permettent de sélectionner et d’exclure des données, en particulier des valeurs en double, d’une sortie. Avec la commande Select-Object
, la gestion de grandes quantités de données ne doit pas être une tâche intimidante.
À ce stade, vous pouvez rapidement affiner vos résultats pour les rendre mieux adaptés à l’analyse et au dépannage. Mais pourquoi ne pas apprendre comment formater vos propriétés calculées ensuite pour améliorer la lisibilité et la facilité d’utilisation?
Source:
https://adamtheautomator.com/powershell-select-object/