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

Using Password Variable in System.DirectoryServices.ActiveDirectory context

有谁知道如何在 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)

总是returns"Server rejected the credentials"。如果我将密码存储在 $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 上下文中使用。

非常感谢! 纳拉特瓦

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

获取未加密的密码值:

$creds.GetNetworkCredential().Password