分享

Powershell导入导出用户安全凭证

 xiaozhuang 2017-12-15

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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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
}

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

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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
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)
}

请尝试这样使用:

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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多