ネタ元:データを取得してXMLファイルへ保存する(Oracle) (Windows PowerShell Tips)
で、SecurityStringの話をちらっとしたのですが、関数化しておくとSecurityStringからの文字列取得が少し楽になると思います。
ということで
Convert-ToStringBSTR.ps1
#===============================================================================
# Convert-ToStringBSTR: SecurityString文字列を解読した値を返す
#
# 使用例
# PS > Convert-ToStringBSTR $SecurityString
#
# copyright HIRO's.NET(http://hiro.wankuma.com/)
#===============================================================================
function global:Convert-ToStringBSTR
{
Param([System.Security.SecureString]$SecureString)
$ptr = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($SecureString)
$pass = [System.Runtime.InteropServices.Marshal]::PtrToStringBSTR($ptr)
return $pass
}
使用方法ですが、まずSecurityStringを準備します
たとえば
PS C:\Work> $a = Read-Host "何か文字列を入力してね" -assecurestring
で、
PS C:\Work> Convert-ToStringBSTR $a
とすると解読した文字列が表示されます。