2013-06-19 57 views
5

所以,我導入​​DLL和我試圖使用參數C# - PowerShell的AddPSSnapin導致錯誤

運行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.

所以,我做了一些研究網上,我發現我需要改變從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.

+0

您是否安裝了Exchange 2010外殼管理器? – urlreader

+0

是的。我實際上可以通過運行'add-pssnapin Microsoft.Exchange.Management.PowerShell.E2010'首先從powershell運行任何腳本 – BRogers

回答

2

你不會在所有使用此:

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); 

現在運行你的命令,你很好走。

快速筆記:

  • 確保你的應用定位x64Any CPUx86
  • 如果你使用.NET 4.5(或4)確保你的應用程序池設置正確(v4.0不是v2.0)並且您將Enable 32bit apps設置爲false