2015-09-14 63 views
1

有誰知道如何在System.DirectoryServices.ActiveDirectory上下文中使用密碼。密碼存儲在一個文件中。在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

回答

0

A [PSCredential]將密碼存儲爲安全字符串,因此將其加密。

要獲得未加密的密碼值:

$creds.GetNetworkCredential().Password 
+0

謝謝你快回答! – NickPrice