C# Exchange脚本远程执行-Exchange&;通用PS cmdlet

C# Exchange脚本远程执行-Exchange&;通用PS cmdlet,c#,exchange-server,powershell-2.0,C#,Exchange Server,Powershell 2.0,我正在尝试对远程exchange服务器执行powershell脚本文件。脚本文件包含两个exchange cmdlet,以及一些写主机语句和自定义对象定义 代码:: SecureString securePassword = new SecureString(); foreach (char x in Password) securePassword.AppendChar(x); PSCredential credentia

我正在尝试对远程exchange服务器执行powershell脚本文件。脚本文件包含两个exchange cmdlet,以及一些写主机语句和自定义对象定义

代码::

        SecureString securePassword = new SecureString();
        foreach (char x in Password)
            securePassword.AppendChar(x);
        PSCredential credentials = new PSCredential(UserID, securePassword);
        var connectionInfo = new WSManConnectionInfo(new Uri("http://   exchangeserver:5985/wsman"), 
              "http://schemas.microsoft.com/powershell/Microsoft.PowerShell", credentials);
        connectionInfo.AuthenticationMechanism = script.AuthenticationMode;
        powerShellEngine.Runspace = RunspaceFactory.CreateRunspace(host, connectionInfo);
        powerShellEngine.Runspace.Open();
        powerShellEngine.AddScript("Content of PS1 file goes here");

        //Some parameter addition goes here..

        var results = powerShellEngine.Invoke();
到目前为止,我已经尝试了以下选项:

连接到端点:exchangeserver:5985/wsman

  • 连接到上述终结点时Exchange cmdlet不可用。尝试连接到exchange server并将会话作为脚本文件的第一行导入:

    $Session=New PSSession-ConfigurationName Microsoft.Exchange-ConnectionUri http://exchangeseserver/PowerShell/-Authentication Kerberos

    导入PSSession$会话

    这导致以下错误:

    使用Kerberos身份验证时发生以下错误:指定的登录会话不存在。它可能已经被终止了

    这是由于Kerberos双跳问题造成的吗?此代码从控制台应用程序执行

  • 尝试将Add-PSSNapin cmdlet作为脚本中的第一行导入PS管理单元。这失败了

  • 已尝试像exchange shell那样执行exchange ps1脚本

    <代码>C:\ProgramFiles\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1';连接ExchangeServer ExchangeServer

    没有回应。。代码会挂起很多时间

连接到端点:exchangeserver/Powershell

  • 只有exchange cmdlet是可执行的。Powershell虚拟目录锁定对所有通用PS cmdlet的访问
有人能想出一些可行的解决办法吗

注意:可以绕过RBAC检查,因为这将由管理员帐户执行。我们是否可以在不连接exchange服务器的情况下将exchange cmdlet加载到正常PS会话