20/09/2024

Les paramètres de cmdlets PowerShell

I. Présentation

Maintenant que vous savez ce qu'est un cmdlet PowerShell et que vous avez connaissance de la syntaxe fondée sur l'association d'un verbe et d'un nom, nous allons évoquer la notion de paramètres. Après avoir vu ce qu'est un paramètre, nous verrons quelle est la syntaxe de paramètre et comment utiliser un ou plusieurs paramètres avec un cmdlet PowerShell.

II. Cmdlet PowerShell : qu'est-ce qu'un paramètre ?

Un paramètre dans un cmdlet PowerShell est une valeur que vous pouvez passer au cmdlet pour modifier son comportement. Pour que ce soit plus parlant, nous allons prendre un exemple. Avec le cmdlet "Get-Process", vous pouvez utiliser le paramètre "-Name" pour spécifier le nom du processus que vous souhaitez obtenir.

La commande complète pourrait ressembler à ceci en prenant le nom de processus "explorer" comme exemple :

Get-Process -Name explorer

Sans paramètre, "Get-Process" va retourner la liste de tous les processus actifs sur la machine. Grâce au paramètre "-Name" nous allons modifier le comportement du cmdlet pour récupérer uniquement la liste des processus dont le nom est "explorer".

Remarque : les paramètres sont disponibles pour les cmdlets PowerShell, mais aussi pour les scripts et les fonctions.

III. La syntaxe d'un paramètre

Vous l'avez peut-être déjà compris, la syntaxe d'un paramètre est constituée d'un nom et d'une valeur. Ce qui donne :

Verbe-Nom -NomParamètre ValeurParamètre

Retenez bien une chose : un nom de paramètre est toujours précédé par un tiret, contrairement à la valeur associée à ce paramètre. Lorsque l'on écrit une commande, le nom du cmdlet peut être suivi d'un seul paramètre ou de plusieurs paramètres, selon les besoins.

Verbe-Nom -Paramètre1 Valeur1 -Paramètre2 Valeur2 -Paramètre3 -Valeur3

En résumé :

syntaxe cmdlet powershell avec un paramètre

Il existe plusieurs types de paramètres et chaque type de paramètre va accepter des valeurs différentes en entrée : chaine de caractères, entiers, booléen, objets, etc.

IV. Comment obtenir la liste des paramètres d'un cmdlet PowerShell ?

Bien qu'il y ait des paramètres communs entre les cmdlets, chaque cmdlet est susceptible d'avoir sa propre liste de paramètres. Nous ne pouvons pas mémoriser la liste des paramètres de tous les cmdlets que l'on utilise donc comment peut-on faire ? La réponse, c'est PowerShell qui va nous l'apporter, notamment via son aide.

Tout d'abord, nous pouvons évoquer le raccourci clavier "CTRL + Espace" évoqué dans un précédent chapitre. Il suffit d'écrire dans la console ceci :

Get-Service -

Puis, d'appuyer sur "CTRL + Espace" pour obtenir la liste de tous les paramètres disponibles, avec le type de paramètres. Ensuite, la sélection doit être effectuée avec les touches directionnelles et la touche Entrée, pour valider.

Raccourci clavier pour lister les paramètres cmdlet powershell

Toutefois, cette méthode, bien qu'elle soit pratique, ne donne pas beaucoup d'informations. À quoi sert ce paramètre ? Est-il obligatoire ? Etc... Différentes questions restent sans réponse.

Pour obtenir des informations supplémentaires, nous allons utiliser le cmdlet "Get-Help" dont l'objectif est de fournir une aide, dans la console, au sujet d'un autre cmdlet PowerShell. Nous allons préciser le paramètre "-Detailed" pour obtenir une aide plus complète.

Ainsi, voici la commande à exécuter :

Get-Help -Name Get-Service -Detailed
# Que l'on peut raccourcir de cette façon :
Get-Help Get-Service -Detailed

Dans le résultat retourné, nous avons une section avec tous les paramètres, où nous avons à chaque fois le nom du paramètre, son type et une description. En complément, nous avons des exemples et d'autres informations sur le cmdlet "Get-Service".

Pour obtenir des précisions détaillées uniquement sur les paramètres d'un cmdlet, nous pouvons utiliser cette commande :

Get-Help -Name Get-Service -Parameter *
# Ou pour un paramètre spécifique, par exemple Name :
Get-Help -Name Get-Service -Parameter Name

Voici un exemple :

Get-Help - Lister tous les paramètres un cmdlet powershell

J'attire votre attention sur une ligne bien particulière :

Required? false / true

Ceci indique si ce paramètre est obligatoire ou non lors de l'utilisation de ce cmdlet. Quand la valeur est sur "true" (vrai), le paramètre est obligatoire. Quand la valeur est sur "false" (faux), le paramètre n'est pas obligatoire. Nous pouvons constater aussi que ce paramètre n'a pas de valeur par défaut : "Default value : None".

Par ailleurs, "Accept widlcard characthers?" indique si le paramètre de ce cmdlet accepte ou pas le caractère wildcard "*" comme valeur. Quant à "Accept pipeline input?", ceci indique si le paramètre accepte des valeurs reçues par le pipeline, mais nous n'avons pas évoqué cette notion.

V. Le nom et la position des paramètres PowerShell

Pour finir au sujet des paramètres, il est essentiel de s'intéresser à l'état du paramètre "Position" associé à chaque paramètre puisqu'il peut avoir plusieurs valeurs. Ici, vous devez vous référer à cette valeur :

Les trois valeurs les plus fréquentes sont les suivantes :

  • Named : il s'agit d'un paramètre nommé, c'est-à-dire qu'il doit être appelé par son nom et que la valeur qu'on lui associe doit être précédée par le nom du paramètre.
  • 0 : le paramètre est attendu en première position
  • 1 : le paramètre est attendu en seconde position

D'ailleurs, si nous regardons les caractéristiques du paramètre "Path" du cmdlet "Get-ChildItem" (qui sert à lister le contenu d'un répertoire), nous pouvons voir qu'il a une configuration différente. Il est attendu en première position lorsque l'on utilise ce cmdlet (Position? 0) et il a une valeur par défaut intéressante : le répertoire courant (vis-à-vis du prompt PowerShell).

Get-Help - Get-ChildItem - Paramètre Path - Exemple

Il y a des paramètres nommés et des paramètres positionnels, mais il est recommandé de toujours préciser le nom du paramètre suivi de sa valeur pour que ce soit plus explicite et éviter les erreurs d'interprétation.

VI. Conclusion

Désormais, vous connaissez la syntaxe d'un cmdlet PowerShell, avec ou sans paramètres, et vous devez être capable de bien comprendre l'intérêt des paramètres. Dans le prochain chapitre, nous allons approfondir notre découverte du système d'aide de PowerShell.


livre pour apprendre PowerShell
author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.