如何在PowerShell中保存技术用户的凭据

时间:2016-12-28 08:00:14

标签: powershell

我们有多个PowerShell脚本,需要技术用户的凭据。

  • 安全/散列这些凭据的好方法是什么,同时让每个拥有运行脚本权限的用户可以使用这些凭据?

我们尝试将哈希作为安全字符串,但这需要每个用户对凭据进行哈希处理,因为安全字符串与用户的配置文件相关联。

我试图实现这样的事情是不成功的:

"以管理员身份运行脚本 - >单击是以对话框 - >切换到科技用户 - > unhash凭证 - >记录在用户中的rehash - >保存到文件"

(用户确实拥有管理员权限)

我可以让每个用户输入一次凭据,然后将用户特定的散列保存到文件中。但我认为有一个最好的做法,我还没有找到这个。

1 个答案:

答案 0 :(得分:2)

$username = "user1@domain.com"
$pwdTxt = Get-Content "C:\temp\Stored_Password.txt"
$securePwd = $pwdTxt | ConvertTo-SecureString 
$credObject = New-Object System.Management.Automation.PSCredential -ArgumentList $username, $securePwd
# Now, $credObject is having the credentials stored and you can pass it wherever you want.


## Import Password with AES

$username = "user1@domain.com"
$AESKey = Get-Content $AESKeyFilePath
$pwdTxt = Get-Content $SecurePwdFilePath
$securePwd = $pwdTxt | ConvertTo-SecureString -Key $AESKey
$credObject = New-Object System.Management.Automation.PSCredential -ArgumentList $username, $securePwd

# Now, $credObject is having the credentials stored with AES Key and you can pass it wherever you want.

您可以输入任何密钥来加密凭据,同样可以解密。 希望它有所帮助。