Read-Host
est une option simple pour obtenir une entrée de chaîne d'un utilisateur.
$name = Read-Host 'What is your username?'
Pour masquer les mots de passe, vous pouvez utiliser:
$pass = Read-Host 'What is your password?' -AsSecureString
Pour convertir le mot de passe en texte brut:
[Runtime.InteropServices.Marshal]::PtrToStringAuto(
[Runtime.InteropServices.Marshal]::SecureStringToBSTR($pass))
En ce qui concerne le type retourné par $host.UI.Prompt()
, si vous exécutez le code sur le lien publié dans le commentaire de @ Christian, vous pouvez trouver le type de retour en le redirigeant vers Get-Member
(par exemple, $results | gm
). Le résultat est un dictionnaire où la clé est le nom d'un FieldDescription
objet utilisé dans l'invite. Pour accéder au résultat pour la première invite dans l'exemple lié vous tapez: $results['String Field']
.
Pour accéder aux informations sans invoquer de méthode, laissez les parenthèses désactivées:
PS> $Host.UI.Prompt
MemberType : Method
OverloadDefinitions : {System.Collections.Generic.Dictionary[string,psobject] Pr
ompt(string caption, string message, System.Collections.Ob
jectModel.Collection[System.Management.Automation.Host.Fie
ldDescription] descriptions)}
TypeNameOfValue : System.Management.Automation.PSMethod
Value : System.Collections.Generic.Dictionary[string,psobject] Pro
mpt(string caption, string message, System.Collections.Obj
ectModel.Collection[System.Management.Automation.Host.Fiel
dDescription] descriptions)
Name : Prompt
IsInstance : True
$Host.UI.Prompt.OverloadDefinitions
vous donnera la ou les définitions de la méthode. Chaque définition s'affiche sous la forme <Return Type> <Method Name>(<Parameters>)
.