ユーザに文字列を入力させる(1)

インタラクティブなプログラムでは、ユーザに文字列を入力させる事はよくあります。
もちろんMSHでも「ユーザがコンソールに入力した文字列を受け取る処理」は可能です。

ユーザ名とパスワードを入力させる

「read-host」を利用することで、コンソールから文字列を受け取ることができます。
パスワードなどのセキュアな文字列は、「*」で隠せるのも便利ですね。

ユーザ名
MSH C:\> $user = read-host EnterUserName
EnterUserName: newpops
MSH C:\> $user
newpops
パスワード
MSH C:\> $password = read-host EnterPassword -SecureString
EnterPassword: *******
MSH C:\> $password
System.Security.SecureString

パスワードを格納した変数を表示しようとしても、「System.Security.SecureString」と表示されます。


でも、どうやってパスワードを正しい文字列と比較すれば良いのでしょうか?
「-eq」では正しく比較できませんでした。

$password -eq "文字列"

  • 「$password」と「文字列」が等しくてもFalseを返します。