一个证书对象包涵一个用户名及密码,你能使用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
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!