【问题标题】:Saving secure string in persistent environment variable在持久环境变量中保存安全字符串
【发布时间】:2018-09-05 06:55:19
【问题描述】:

所以我想为本地用户保存一个安全的字符串变量类型。这样,我可以运行 convertfrom-securestring 以在 .ps1 文件中调用 rest api,而无需访问密码。我正在尝试的可能吗?

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

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

环境变量是否只保存为字符串而不支持其他数据类型?

【问题讨论】:

    标签: powershell variables securestring


    【解决方案1】:

    是的,环境变量总是字符串,不能直接使用[securestring]实例,因为它的字符串表示只是它的类型名称(System.Security.SecureString)。

    但是,您可以通过管道传递到 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)
    

    【讨论】:

      猜你喜欢
      • 2014-03-05
      • 1970-01-01
      • 2014-09-29
      • 1970-01-01
      • 1970-01-01
      • 2011-08-19
      • 2010-09-16
      • 1970-01-01
      • 2021-12-07
      相关资源
      最近更新 更多