Comment demander une saisie utilisateur dans PowerShell
-
Utiliser
Read-Host
pour demander une entrée utilisateur dans PowerShell -
Utiliser les paramètres
Mandatory
pour demander une entrée utilisateur dans PowerShell -
Utiliser
PromptForChoice
pour demander une entrée utilisateur dans PowerShell - Conclusion

Dans le script PowerShell, interagir avec les utilisateurs pour recueillir des entrées est une exigence courante. Que ce soit pour la personnalisation, la prise de décision ou la navigation, il est essentiel de demander aux utilisateurs de fournir des informations.
Cet article explore diverses méthodes pour inviter les utilisateurs à s’exprimer dans PowerShell, y compris la méthode Read-Host
, la méthode du paramètre Mandatory
, et la méthode PromptForChoice
. Chaque méthode offre des capacités uniques et est adaptée à différents scénarios, améliorant l’interactivité et l’utilisabilité des scripts PowerShell.
Utiliser Read-Host
pour demander une entrée utilisateur dans PowerShell
Le cmdlet Read-Host
invite l’utilisateur à fournir une entrée et lit une ligne d’entrée depuis la console. Read-Host
ne peut accepter que 1022
caractères comme entrée d’un utilisateur.
Le paramètre -Prompt
est utilisé pour spécifier un texte fournissant des informations sur ce qu’il faut saisir. Il ajoute un deux-points :
au texte que vous entrez.
Exemple :
Read-Host -Prompt "Enter your name"
Dans cet exemple, lorsque nous utilisons Read-Host
, il invite l’utilisateur avec le message "Entrez votre nom"
puis met en pause l’exécution du script, attendant une entrée. Après que l’utilisateur a saisi son nom et appuyé sur Entrée, le script continue son exécution.
Cependant, comme nous ne capturons ni ne stockons l’entrée dans une variable ni ne réalisons d’actions ultérieures basées sur l’entrée reçue, cet exemple démontre principalement la fonctionnalité de base de Read-Host
sans traitement ultérieur de l’entrée de l’utilisateur.
Sortie :
Le Read-Host
met en pause l’exécution et reçoit une entrée. Lorsque l’utilisateur saisit la valeur à l’invite, cela retourne cette même valeur.
Il n’accepte pas d’entrée provenant du pipeline PowerShell. Voici un autre exemple :
$name = Read-Host "Enter your name"
Write-Output "Hello, $name!"
Dans cet exemple, nous utilisons Read-Host
pour inviter l’utilisateur à entrer son nom. La chaîne "Entrez votre nom"
sert de message d’invite.
L’entrée de l’utilisateur est stockée dans la variable $name
. Nous utilisons ensuite Write-Output
pour afficher un message de salutation personnalisé, intégrant la valeur saisie par l’utilisateur.
Avec le cmdlet Read-Host
, nous pouvons enregistrer l’entrée sous forme de chaîne sécurisée, ce qui en fait un outil inestimable pour recueillir des informations sensibles telles que des mots de passe. Ce cmdlet nous permet de demander aux utilisateurs des données sécurisées tout en garantissant la confidentialité et la sécurité.
Sortie :
Le paramètre -AsSecureString
affiche des astérisques *
à la place des caractères que l’utilisateur saisit comme entrée. Avec ce paramètre, la sortie de Read-Host
est un objet System.Security.SecureString
.
Read-Host "Enter password" -AsSecureString
Dans cet exemple, nous utilisons Read-Host
avec le paramètre -AsSecureString
pour inviter l’utilisateur à entrer un mot de passe de manière sécurisée. Le message d’invite "Entrez le mot de passe"
est affiché à l’utilisateur.
Lorsque l’utilisateur entre le mot de passe, il est masqué à l’écran, garantissant la confidentialité. Le mot de passe est ensuite stocké sous forme de chaîne sécurisée dans la variable $password
, prêt pour un traitement ou une validation ultérieurs.
Sortie :
Utiliser les paramètres Mandatory
pour demander une entrée utilisateur dans PowerShell
Dans PowerShell, la méthode des paramètres Mandatory
est un moyen puissant de demander aux utilisateurs de fournir une entrée tout en garantissant que certains paramètres sont requis pour l’exécution du script. En marquant les paramètres comme Mandatory
, les auteurs de scripts peuvent imposer la fourniture de valeurs d’entrée essentielles, améliorant ainsi la fiabilité et l’utilisabilité des scripts.
Voici un exemple de la fonction Name
qui demande l’entrée de l’utilisateur lorsqu’elle est exécutée.
Exemple :
function Name {
param(
[Parameter(Mandatory)]
[string]$name
)
Write-Output "Your name is $name."
}
Name
Dans cet exemple, nous définissons une fonction PowerShell appelée Name
avec un seul paramètre nommé name
. En spécifiant [Parameter(Mandatory)]
, nous nous assurons que l’utilisateur doit fournir une valeur pour le paramètre name
lors de l’appel de la fonction.
La fonction sort ensuite un message incorporant le nom fourni en utilisant Write-Output
.
Sortie :
Utiliser PromptForChoice
pour demander une entrée utilisateur dans PowerShell
Dans PowerShell, la méthode PromptForChoice
fournit un moyen structuré d’inviter les utilisateurs avec un ensemble d’options et de recevoir leur choix comme entrée. Cette méthode est particulièrement utile lors de la présentation aux utilisateurs d’un menu ou d’une liste de choix, permettant une expérience d’exécution de script plus interactive et conviviale.
Exemple :
$choicePrompt = "Choose an option:"
$choices = [System.Management.Automation.Host.ChoiceDescription[]]@(
"&Option 1",
"&Option 2",
"&Option 3"
)
$defaultChoice = 0
$result = $host.UI.PromptForChoice("Title", $choicePrompt, $choices, $defaultChoice)
Write-Output "You selected $($choices[$result].Label)"
Dans cet exemple, nous définissons un message d’invite et un tableau de choix et spécifions l’index du choix par défaut. Nous utilisons ensuite la méthode PromptForChoice
pour afficher la boîte de dialogue d’invite avec les choix fournis.
La sélection de l’utilisateur est stockée dans la variable $result
, que nous utilisons pour récupérer l’étiquette de l’option choisie et l’afficher à l’utilisateur.
Sortie :
Conclusion
Demander une entrée utilisateur dans PowerShell est crucial pour créer des scripts interactifs et conviviaux. En utilisant des méthodes telles que Read-Host
, les paramètres Mandatory
, et PromptForChoice
, les auteurs de scripts peuvent collecter efficacement les entrées des utilisateurs tout en garantissant fiabilité et sécurité.
Qu’il s’agisse de recueillir des entrées textuelles simples, d’imposer des paramètres obligatoires ou de présenter aux utilisateurs un ensemble structuré de choix, ces méthodes permettent aux auteurs de scripts de créer des solutions d’automatisation robustes et polyvalentes. En comprenant et en exploitant ces techniques, les auteurs de scripts PowerShell peuvent améliorer l’utilisabilité et l’efficacité de leurs scripts, répondant aux besoins divers des utilisateurs et des administrateurs.