2012-10-29 16 views
0

我想通過C#向Exchange服務器發出命令。當我通過PowerShell直接執行此操作時,它可以正常工作。但是,當我通過C#向PowerShell發出命令時,它失敗。針對Exchange的遠程運行空間連接失敗

下面是我在做什麼在PowerShell中(工作):

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://ExchangeFQDN/PowerShell/ -Authentication Kerberos 
Import-PSSession $Session 
Enable-Mailbox -Identity "SomeIdentity" -Shared 

這裏是C#(不工作):

var connectionInfo = new WSManConnectionInfo(
    new Uri("http://ExchangeFQDN/PowerShell/"), 
    "http://schemas.microsoft.com/powershell/Microsoft.Exchange", 
    new PSCredential(username, password)); 
connectionInfo.AuthenticationMechanism = AuthenticationMechanism.Kerberos; 

//Next line throws a PSInvalidOperationException 
using (var runspace = RunspaceFactory.CreateRunspace(connectionInfo)) //<- fails 
{ 
    //Execute Enable-Mailbox command 
} 

我有了一個特定的用戶做這個遠程登錄的權利。 PowerShell以該用戶身份運行,而用戶則在C#代碼中模擬。這也是我作爲PSCredential傳入的用戶的用戶名和密碼。

有什麼想法嗎?

回答

0

嘗試以下兩種可能的解決方案:

  1. 的憑據
  2. 檢查用戶名,域名和密碼PSCredential.Empty更換新的PSCredential的(用戶名,密碼),將使用當前的憑據用戶,然後像運行PowerShell的用戶那樣運行該程序。

也許您可以提供有關錯誤消息的更多信息。

相關問題