Powershell AddPSSnapin()与RunspaceFactory.CreateRunspace(WSManConnectionInfo)之间的区别?

Powershell AddPSSnapin()与RunspaceFactory.CreateRunspace(WSManConnectionInfo)之间的区别?,powershell,powershell-2.0,exchange-server,powershell-remoting,exchange-server-2010,Powershell,Powershell 2.0,Exchange Server,Powershell Remoting,Exchange Server 2010,我需要使用C#和Powershell连接到Exchange 2010服务器。Exchange 2007文档需要我 网络上的其他示例希望我像这样使用WSMan WSManConnectionInfo connectionInfo = new WSManConnectionInfo(false, "ExchangeServer.ibm.com", 80, "/Powershell", "http://schemas.microsoft.com/powershell/Microsoft

我需要使用C#和Powershell连接到Exchange 2010服务器。Exchange 2007文档需要我

网络上的其他示例希望我像这样使用WSMan

        WSManConnectionInfo connectionInfo = new WSManConnectionInfo(false, "ExchangeServer.ibm.com", 80, "/Powershell", "http://schemas.microsoft.com/powershell/Microsoft.Exchange", credential);
因此,我的问题是:

  • 这些技术之间的有效区别是什么

  • 它们可以互换吗


    • 您的第一个示例只是在本地系统上实例化一个新的运行空间,它不使用WS-MAN。第二部分是利用WS-MAN服务,这要求您提前在要连接的所有系统上配置它


      老实说,如果您不需要使用WS-MAN连接到远程系统,我只会避免使用它,并使用Exchange团队推荐的做法。WS-MAN的设置和使用(阅读:可以)相当简单,但它增加了一层复杂性,这可能是不必要的,并会导致额外的疑难解答问题。

      在Exchange 2007中,您在本地运行空间中使用了管理管理单元来运行cmdlet。所有更改都是在您的凭据下进行的

      作为交换,情况发生了变化。维护是通过Exchange服务器提供的远程会话完成的。实际更改由Exchange服务器使用代理帐户代表您完成,Exchange根据您所属的RBAC角色确定您是否有权进行这些更改。更改记录在管理员审核日志中


      Exchange 2010有一个管理单元,但MS不支持通过将其添加到本地会话来使用它,并且并非所有cmdlet都能在该环境中正常工作。大多数cmdlet都可以工作,但它绕过了RBAC,在该环境中所做的任何更改都不会记录到管理员审核日志中。

      您知道E2010是否总是在幕后使用WSMan吗?我的印象是确实如此。例如,如果WSMan不开心和不健康,我就不能使用本地管理工具。我不能告诉你——我不是一个交换人员。
              WSManConnectionInfo connectionInfo = new WSManConnectionInfo(false, "ExchangeServer.ibm.com", 80, "/Powershell", "http://schemas.microsoft.com/powershell/Microsoft.Exchange", credential);