Powershell导入导出用户安全凭证


一个证书对象包涵一个用户名及密码,你能使用Get-Credential创建它然后在有-Credential的命令中后当参数用。

但是我们想在执行过程中忽略掉用户密码提示干预,你可能不想凭证窗口弹出来,并且不想把用户密码密码信息存储在脚本里。

请看这个解决,使用函数 Export-Credential 将证书保存到文件:

function Export-Credential 
{
   param
   (
     [Parameter(Mandatory=$true)]
     $Path,
     [System.Management.Automation.Credential()]
     [Parameter(Mandatory=$true)]
     $Credential
   )    
  $CredentialCopy = $Credential | Select-Object *    
  $CredentialCopy.Password = $CredentialCopy.Password | ConvertFrom-SecureString    
  $CredentialCopy | Export-Clixml $Path
}

将证书信息保存到一个文件:

Export-Credential -Path c:\mycred -Credential administrator

当你使用时,弹出凭证窗口提示你输入安全密码,凭证结果将会已XML形式保存并且密码被加密。

现在当你需要凭证时,使用 Import-Credential从该文件获得:

function Import-Credential 
{
   param
   (
     [Parameter(Mandatory=$true)]
     $Path
   )

  $CredentialCopy = Import-Clixml $path    
  $CredentialCopy.password = $CredentialCopy.Password | ConvertTo-SecureString    
  New-Object system.Management.Automation.PSCredential($CredentialCopy.username, $CredentialCopy.password)
}

请尝试这样使用:

$cred = Import-Credential  -Path c:\mycred
Start-Process -FilePath "c:\xx.exe" -Credential $cred

用户安全凭据将被加密与解密,这样只有你(指定用户导出的凭证)能再次导入它。不需要将加密代码暴露在你的脚本当中了。

原文地址:Exporting and Importing Credentials in PowerShell

本文链接: https://www.pstips.net/exporting-and-importing-credentials-in-powershell.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注