在Powershell中,是否有可能隐藏read-host命令的用户输入内容?

20

我正在寻找一种方法来隐藏Read-Host命令的用户输入。

我知道可以使用-assecurestring来实现这一点,但我想将输入保存为变量中的纯文本。

有可能做到这一点吗?


2
https://dev59.com/b2Up5IYBdhLWcg3w1qMi - David Brabant
1个回答

29
你必须使用-AsSecureString开关,但你也可以获取明文值。
$securedValue = Read-Host -AsSecureString
$bstr = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($securedValue)
$value = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($bstr)

# then free up the unmanged memory afterwards (thank to dimizuno)
[Runtime.InteropServices.Marshal]::ZeroFreeBSTR($bstr)

1
根据文档所述,您还应该在之后释放未经管理的内存: [Runtime.InteropServices.Marshal]::ZeroFreeBSTR($bstr) - dimizuno

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接