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傳入的用戶的用戶名和密碼。
有什麼想法嗎?