在System.DirectoryServices.ActiveDirectory上下文中使用密码变量

时间:2015-09-14 03:29:52

标签: powershell passwords system

有没有人知道如何在System.DirectoryServices.ActiveDirectory上下文中使用密码。密码存储在文件中。

$UserName="DomainName.com\JohnP"
$PassFile="C:\Temp\Pass.PPP"
$password = get-content $PassFile | ConvertTo-SecureString -AsPlainText -Force

$creds = new-object -typename System.Management.Automation.PSCredential("$UserName",$password)

$a = new-object System.DirectoryServices.ActiveDirectory.DirectoryContext("Forest", "MyForest.com",$UserName,$Password)

它总是返回"服务器拒绝了凭证"。如果我在$ Password变量中存储密码,它可以工作。例如,下面的代码可以工作:

$UserName="DomainName.com\JohnP"
$PassFile="C:\Temp\Pass.PPP"
$password = "MyPassword"

$creds = new-object -typename System.Management.Automation.PSCredential("$UserName",$password)

$a = System.DirectoryServices.ActiveDirectory.DirectoryContext("Forest", "MyForest.com",$UserName,$Password)

有人可以帮助了解如何使用文件中的密码,然后使用System.DirectoryServices.ActiveDirectory上下文。

非常感谢! Nratwa

1 个答案:

答案 0 :(得分:0)

[PSCredential]将密码存储为安全字符串,因此已加密。

获取未加密的密码值:

$creds.GetNetworkCredential().Password