将安全的字符串保存在持久性环境变量中



,所以我想为本地用户保存安全的字符串变量类型。这样,我可以运行一个转换式搜索,以在.ps1文件中进行REST API调用,而无需访问密码。我正在尝试什么?

我正在使用的代码在下面,但尚未工作:

$PlainPassword = "atestpassword"
$SecurePassword = $PlainPassword | ConvertTo-SecureString -AsPlainText -Force
[Environment]::SetEnvironmentVariable('JiraCreds', $SecurePassword, "User")

环境变量仅保存为字符串,而无需支持其他数据类型?

是的,环境变量始终是 strings ,并且[securestring]实例无法直接使用,因为其字符串表示仅仅是其类型名称(System.Security.SecureString(。p>但是,您可以管道到ConvertFrom-SecureString以获取(仍然加密的(字符串表示:

$PlainPassword = "atestpassword" # Don't actually store this in your script.
$SecurePassword = $PlainPassword | ConvertTo-SecureString -AsPlainText -Force | 
  ConvertFrom-SecureString
[Environment]::SetEnvironmentVariable('JiraCreds', $SecurePassword, "User")

以后使用环境变量构建[pscredential]实例(以当前用户的用户名为例(:

$cred = New-Object pscredential $env:USERNAME, (ConvertTo-SecureString $env:JiraCreds)

最新更新