Comment puis-je utiliser la fonction read-host de powershell pour accepter un mot de passe pour un service externe?
J'ai un script que j'ai écris qui établit une connexion à un service SOAP. Une fois la connexion faite, j'ai besoin de passer par un identifiant/pass avec chaque commande j'envoie. Le problème que j'ai est que lorsque j'utilise read-host pour ce faire, mon mot de passe apparaît en clair et reste dans le shell:
PS C:\Users\Egr> Read-Host "Enter Pass"
Enter Pass: MyPassword
MyPassword
Si je le cacher avec -AsSecureString, la valeur ne peut plus être transmis au service, car il est maintenant un Système.De sécurité.SecureString objet:
PS C:\Users\gross> Read-Host "Enter Pass" -AsSecureString
Enter Pass: **********
System.Security.SecureString
Quand je passe la ce, il ne fonctionne pas. Je ne me préoccupe pas des mots de passe transmis au service en clair, je ne veux pas me planter sur un shell utilisateur après ils entrer leur mot de passe. Est-il possible de masquer la Lecture de l'Hôte d'entrée, mais qui ont toujours le mot de passe stockés en tant que texte clair? Si non, est-il possible que je peux passer le Système.De sécurité.SecureString objet clair?
Grâce
source d'informationauteur EGr
Vous devez vous connecter pour publier un commentaire.
$Mot de passe est un Securestring, et ce sera le retour de la plaine de texte mot de passe.
Vous pouvez enregistrer le mot de passe(entrée) comme une variable et de le passer à votre service. Si le code est exécuté dans un script ou une fonction, la variable contenant le mot de passe sera supprimé après qu'il est terminé(ils sont stockés dans un temp. portée locale). Si vous exécutez les commandes dans la console(ou un point-source le script comme
. .\myscript.ps1
), la variable mot de passe restera dans l'étendue de session, et ils seront conservées jusqu'à ce que vous les supprimiez ou de fermer la session. Si vous voulez être sûr que la variable est supprimée après que votre script est exécuté, vous pouvez supprimer vous-même. Comme ceci:Pour en savoir plus sur la manière dont les variables sont stockées dans des étendues, découvrez about_Scopes