Bonjour ,
Suite à la réalisation d’un script PS demandant un mot de passe utilisateur, je suis tombé sur un comportement non voulu de la commande “Read-host -asSecureString”
Habituellement, lors de l’appel de Read-host -asSecureString , celle ci renvoi un élément de type System.Security.SecureString contenant la chaine de caractère entrée manuellement dans un format sécurisé. Cet objet peut être ensuite utilisé dans la suite du script de façon transparente et sécuritaire.
Malheureusement, actuellement sur mon Windows 10 Creators update V 5.1.15063.483 X64 ENG, la comdlet Segfault (bug) et ne renvoi jamais d’objet sécurisé !!. En administrateur, même comportement.
J’ai vérifié sur un deuxième PC disposant de la même version de l’OS, ici pas de problème, pas de bug!
Je n’ai pas trouvé de cause commune, mais par contre je ne suis pas le seul impacté cf le forum Microsoft GITHUB: Dépôt GITHUB MS
Le workaround proposé est d’utiliser le Shell Powershell de Visual Studio 2017 qui lui n’est pas impacté. Cette solution alternative est bien fonctionnelle.
Le bug en image:
Démonstration avec la commande Read Host avec un comportement normal:

–> Pas de problème l’objet Secure String est bien renvoyé.
Démonstration avec la commande Read Host avec un comportement défaillant:

–> Aucun n’objet n’est renvoyé, pas très pratique…
Pour l’instant Microsoft n’a pas sorti de patch 🙁 On attends la prochaine MAJ 🙂