VB.NET, C#, PowerShellを使用しているエンジニアのためのサイト。
基本的な使用方法から開発で役立つTipsまで幅広く取り扱っています。
Read-Hostコマンドレットのパラメータに -assecurestring というのがあるんですが、このパラメータを使用すると、ユーザーが入力する文字列が * で表示されます。
-assecurestringを使用すると、変数の型がSystem.Security.SecureStringになります。
System.Security.SecureString型のデータはこのままでは使用できません。
このままでif文などで比較しても正しい結果は得られないので、解読してString型に変換する必要があります。
そこで、SecureStringをString型に変換する関数を作成してみました。
Convert-ToStringBSTR.ps1#=============================================================================== |
使用方法ですが、まずはこの関数を使用してみるためにSecurityString文字列を作成してみましょう。
Read-Hostコマンドレットで -AsSecureString パラメータを使用すると、コマンドラインで文字列を入力したときに * で表されます。
-AsSecureString を使用すると入力した文字は * で伏せられSecureString型となります。
List1PS > $pass = Read-Host "パスワードを入力" -AsSecureString |
次にConvert-ToStringBSTR関数を使用して、List1で作成したSecureString型をString型に変換してみたいと思います。
使用方法は簡単で、関数名の後にSecureStringを指定するだけです。(List2)
List2PS > Convert-ToStringBSTR $pass |