获取SecureString作为纯文本参数

时间:2019-01-25 17:51:24

标签: powershell securestring

我正在尝试将SecureString作为纯文本参数添加到命令行PowerShell。

我知道安全字符串的形式是什么。 例如,字符串“ abc”将是“ 71289371289”的安全字符串。

然后,我想将“ 71289371289”作为参数传递给脚本(从命令行运行),这将是我的安全字符串,然后将其解密为明文,以将其传递给我正在调用的另一个程序来自Powershell。

我该怎么做?

更新

我最终使用带有PSCredential的Credfile在重新启动后保留凭据,直到脚本完成。

1 个答案:

答案 0 :(得分:0)

您可以使用SecureStringToBSTR将其转换回明文密码:

Param(
    $securestring = (Read-Host -AsSecureString)
)
Write-Host "Encrypted Password: $(ConvertFrom-SecureString $securestring)"
$ClearText = [Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($securestring))
Write-Host "Original Password: $ClearText"