我想通过C#远程向Exchange服务器发出命令。当我直接通过PowerShell执行此操作时,它可以正常工作。但是当我通过C#向PowerShell发出命令时,它失败了。
以下是我在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 :(得分:0)
尝试以下两种可能的解决方案:
也许您可以提供有关错误消息的更多信息。