Partager via


Read-Host

Lit une ligne d'entrée de la console.

Syntax

Read-Host
    [[-Prompt] <Object>]
    [-MaskInput]
    [<CommonParameters>]
Read-Host
    [[-Prompt] <Object>]
    [-AsSecureString]
    [<CommonParameters>]

Description

L’applet Read-Host de commande lit une ligne d’entrée à partir de la console (stdin). Vous pouvez l'utiliser pour inviter un utilisateur à saisir une entrée. Étant donné que vous pouvez enregistrer l’entrée en tant que chaîne sécurisée, vous pouvez utiliser cette applet de commande pour inviter les utilisateurs à fournir des données sécurisées, telles que des mots de passe.

Notes

Read-Host a une limite de 1 022 caractères qu’il peut accepter comme entrée d’un utilisateur.

Exemples

Exemple 1 : Enregistrer une entrée de console dans une variable

Cet exemple montre comment afficher la chaîne « Veuillez entrer votre âge : » en tant qu’invite. Lorsqu’une valeur est entrée et que la touche Entrée est enfoncée, la valeur est stockée dans la $Age variable.

$Age = Read-Host "Please enter your age"

Exemple 2 : Enregistrer l’entrée de console en tant que chaîne sécurisée

Cet exemple montre comment afficher la chaîne « Entrer un mot de passe : » en tant qu’invite. Quand une valeur est entrée, les astérisques (*) s’affichent sur la console à la place de l’entrée. Lorsque la touche Entrée est enfoncée, la valeur est stockée en tant qu’objet SecureString dans la $pwd_secure_string variable.

$pwd_secure_string = Read-Host "Enter a Password" -AsSecureString

Exemple 3 : Masquer l’entrée et sous la forme d’une chaîne de texte en clair

Cet exemple montre comment afficher la chaîne « Entrer un mot de passe : » en tant qu’invite. Quand une valeur est entrée, les astérisques (*) s’affichent sur la console à la place de l’entrée. Lorsque vous appuyez sur la touche Entrée, la valeur est stockée sous la forme d’un objet String en texte clair dans la $pwd_string variable.

$pwd_string = Read-Host "Enter a Password" -MaskInput

Exemple 4 : Normalisation des entrées

Cet exemple montre comment inviter l’utilisateur à entrer une liste de villes séparées par des points-virgules. Il affiche la valeur de la chaîne telle qu’elle est tapée par l’utilisateur. Dans l’exemple, l’utilisateur a ajouté des espaces entre certaines entrées. Cela peut entraîner une erreur plus tard dans le script où le code attend un nom exact.

L’exemple montre comment convertir une chaîne d’entrée en tableau d’entrées sans espaces supplémentaires.

$prompt = @(
    'List the cities you want weather information for.'
    'When specifying multiple cities, separate them with a semi-colon, like:'
    "'New York; Osan; Koforidua'"
) -join ' '

$cities = Read-Host $prompt

"Input cities string: `n`t'$cities'"

$splitCities = $cities -split ';'

"Split cities array:"
$splitCities | ForEach-Object -Process { "`t'$_'" }

$normalizedCities = $splitCities  | ForEach-Object -Process { $_.Trim() }

"Normalized split cities array:"
$normalizedCities | ForEach-Object -Process { "`t'$_'" }

Input cities string:
        '    New York;  Osan   ;Koforidua   '
Split cities array:
        '    New York'
        '  Osan   '
        'Koforidua   '
Normalized split cities array:
        'New York'
        'Osan'
        'Koforidua'

L’exemple utilise l’opérateur -split pour convertir la chaîne d’entrée en tableau de chaînes. Chaque chaîne du tableau inclut le nom d’une ville différente. Toutefois, les chaînes fractionnées incluent des espaces supplémentaires. La Trim() méthode supprime les espaces de début et de fin de chaque chaîne.

Paramètres

-AsSecureString

Indique que l’applet de commande affiche des astérisques (*) à la place des caractères que l’utilisateur tape comme entrée. Lorsque vous utilisez ce paramètre, la sortie de l’applet Read-Host de commande est un objet SecureString (System.Security.SecureString).

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MaskInput

Indique que l’applet de commande affiche des astérisques (*) à la place des caractères que l’utilisateur tape comme entrée. Lorsque vous utilisez ce paramètre, la sortie de l’applet Read-Host de commande est un objet String . Cela vous permet de demander en toute sécurité un mot de passe retourné en texte clair au lieu de SecureString.

Ce paramètre a été ajouté dans PowerShell 7.1.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Prompt

Spécifie le texte de l'invite. Tapez une chaîne. Si la chaîne inclut des espaces, mettez-la entre guillemets. PowerShell ajoute un signe deux-points (:) au texte que vous entrez.

Type:Object
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Entrées

None

Vous ne pouvez pas diriger les objets vers cette applet de commande.

Sorties

String

Par défaut, cette applet de commande retourne une chaîne.

SecureString

Lorsque vous utilisez le paramètre AsSecureString , cette applet de commande retourne un SecureString.

Notes

Cette applet de commande lit uniquement à partir du flux stdin du processus hôte. En règle générale, le flux stdin est connecté au clavier de la console hôte.