powershell凭证从服务器拒绝

时间:2013-05-07 11:37:33

标签: powershell credentials

我需要在powershell中存储凭证以便多次使用。在StackOverflow上有很多例子,所以我选了一个

$tmpCred = Get-Credential
$tmpCred.Password | ConvertFrom-SecureString | Set-Content "pwd.dat"
$password = Get-Content "pwd.dat" | ConvertTo-SecureString
$credential = New-Object System.Management.Automation.PsCredential "myDomain\myUser", $password

Get-ADUser -Credential $credential 

不幸的是我收到了这个错误而我找不到解决方案

Get-ADUser : The server has rejected the client credentials.
At line:5 char:11
+ Get-ADUser <<<<  "xxx" -Credential $credential 
    + CategoryInfo          : NotSpecified: (xxx:ADUser) [Get-ADUser], AuthenticationException
    + FullyQualifiedErrorId : The server has rejected the client credentials.,Microsoft.ActiveDirectory.Management.Commands.GetADUser

1 个答案:

答案 0 :(得分:4)

我看不出你的代码有什么明显的错误,我猜这只是你如何使用它的一个例子,因为你提到你需要在几个地方使用它。只是为了检查确实存储安全字符串是否失败,您可以使用以下内容进行检查,这可以证明凭据在保存到磁盘之前有效:

Get-ADUser -Credential $tmpCred 

一种选择是使用从您对Get-Credentials的调用返回并存储在变量[System.Management.Automation.PSCredential]中的类型$tmpCred传递凭证而不是文件或securestring。

您还可以临时添加对方法GetNetworkCredentials()的调用以确保您的密码已正确解密,以下内容将显示用户名和密码(未加密):

$tmpCred.GetNetworkCredential().Username 
$tmpCred.GetNetworkCredential().Password 

希望有帮助...