Comment demander une saisie utilisateur dans PowerShell

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

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 :

invite l’entrée utilisateur dans powershell - sortie 1

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 :

Demander une saisie utilisateur dans PowerShell - sortie 2

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 :

invite l’entrée utilisateur dans powershell - sortie 3

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 :

inviter l’entrée utilisateur dans powershell - sortie 4

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 :

invite de saisie utilisateur dans powershell - sortie 5

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.

Vous aimez nos tutoriels ? Abonnez-vous à DelftStack sur YouTube pour nous aider à créer davantage de tutoriels vidéo de haute qualité. Abonnez-vous
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website