5

所以,我导入System.Management.Automationdll 并尝试New-Mailbox使用参数运行命令

所以我使用:

RunspaceConfiguration config = RunspaceConfiguration.Create();
PSSnapInException psEx = null;
config.AddPSSnapIn("Microsoft.Exchange.Management.PowerShell.E2010", out psEx);

这一切都很好,花花公子......但是当我去运行应用程序时,我得到以下信息: Cannot load Windows PowerShell snap-in Microsoft.Exchange.Management.PowerShell.E2010 because of the following error: The type initializer for 'Microsoft.Exchange.Data.Directory.Globals' threw an exception.

所以,我在网上做了一些研究,发现我需要从 to 更改Any CPUx86平台目标。

但是,当我这样做时,我得到一个HTTP Error 503. The service is unavailable.错误

我几乎肯定我必须将它作为 32 位进程运行,以便它可以使用管理单元(从其他阅读来看,管理单元似乎正在运行)

我确实将应用程序池更改Enable 32-bit ApplicationsTrue. 这是我得到错误的时候。

我读过其他帖子......但是,我不知道如何克服这个Service unavailable问题。

我尝试使用 x64 构建并获取Could not load file or assembly 'EmailAdminWeb2' or one of its dependencies. An attempt was made to load a program with an incorrect format.

4

1 回答 1

3

你根本不使用这个:

config.AddPSSnapIn("your snapin here", out psEx);

相反....只需使用如下连接:

WSManConnectionInfo connectionInfo = new WSManConnectionInfo(new Uri("http://yourdomainhere/Powershell/Microsoft.Exchange"), "http://schemas.microsoft.com/powershell/Microsoft.Exchange", PsCreds);
Runspace runspace = RunspaceFactory.CreateRunspace(connectionInfo);

现在运行你的命令,你就可以开始了。

快速笔记:

  • 确保您的应用未x64定位Any CPUx86
  • 如果您使用的是 .net 4.5(或 4),请确保您的应用程序池设置正确(v4.0 而不是 v2.0)并且您已Enable 32bit apps设置为 false
于 2013-06-20T22:32:49.570 回答