2010-08-26 67 views
1

我很努力讓Exchange mManagement Shell命令在我的C#代碼中運行。這是問題。如何安裝Exchange命令行管理程序模塊以在代碼中運行Powershell Exchange腳本

我訪問運行Exchange 2010

我已經直接運行我的Exchange管理Shell命令外匯管理殼牌 簡單的例子裏面的服務器上測試的Exchange Server:獲取郵箱

我創建一個控制檯應用程序來運行我的PS命令

我把Exchange服務器上的exe文件,並試圖運行它

我上PSS的錯誤napInInfo信息= rsConfig.AddPSSnapIn行代碼:

   //Creating and Opening a Runspace 
      RunspaceConfiguration rsConfig = RunspaceConfiguration.Create(); 
      PSSnapInException snapInException = null; 
      PSSnapInInfo info = rsConfig.AddPSSnapIn("Microsoft.Exchange.Management.PowerShell.Admin", out snapInException); 
      Runspace myRunSpace = RunspaceFactory.CreateRunspace(rsConfig); 
      myRunSpace.Open(); 

還有另一個職位與此完全相同的問題,但沒有真正的答案,所以我開始這一個。

問題很簡單。我無法添加名爲「Microsoft.Exchange.Management.PowerShell.Admin」的管理單元。我在網上閱讀的所有文件都表示這是可行的命令。事實上,我發現這個帖子,http://msdn.microsoft.com/en-us/library/bb332449(EXCHG.80).aspx這是非常簡單,看起來很簡單。 Exchange 2010中有沒有「Microsoft.Exchange.Management.PowerShell.Admin」?是否有另一個管理單元,我應該參考?這應該很簡單,但我無法擺脫這個錯誤。

順便說一句,我得到的錯誤是:「沒有爲Windows PowerShell版本2註冊管理單元。」

任何幫助,將不勝感激。

+0

我不投票同意關閉這個問題,因爲這是開發商所有的時間奮鬥的東西。這是一個開發人員的問題,而不是SuperUser只是修補PowerShell。 – 2010-08-26 14:54:36

回答

2

假設服務器是64位的,它可能與管理單元的註冊方式有關。例如,如果您運行x86版本的PowerShell,它將以WOW運行。因此,當您運行InstallUtil來註冊管理單元時,它將專門針對x86進行註冊,而x64則無法使用它。假設這一點,如果你的C#應用​​程序是專門爲x86平臺編譯的,我敢打賭它會起作用。這是一個解決方案,但並不總是可以接受的。

確保您運行的是正確版本的PowerShell(x86/x64),然後使用正確版本的InstallUtil重新運行管理單元註冊。對於x64,您需要運行位於.NET目錄下的InstallUtil。

檢查您是否在正確版本的PowerShell中的一種方法是在shell中檢查環境變量env:PROCESSOR_ARCHITECTURE。

64:

> get-item env:PROCESSOR_ARCHITECTURE 
Name       Value 
----       ----- 
PROCESSOR_ARCHITECTURE   AMD64 

86:

> get-item env:PROCESSOR_ARCHITECTURE 
Name       Value 
----       ----- 
PROCESSOR_ARCHITECTURE   x86 
+0

這是個很棒的信息,你有需要運行的InstallUtil的語法嗎?我相信我的問題完全如您所述。我正在x86平臺上編寫我的程序,我甚至無法在工作中訪問64位計算機。Exchange需要安裝在機器上才能運行InstallUtil?對於noob問題抱歉,我是PowerShell的新手,並且熟悉Exchange。 – 2010-08-26 15:53:40

+0

我對Exchange不熟悉,所以我不能直接對它說話。總的來說,儘管它最好匹配平臺。如果您知道Exchange在x64上,因此PowerShell管理單元是x64,那麼您可能需要將您的應用程序定位到x64。 (您可以在x86機器上編寫應用程序並將其編譯爲x64)。 一旦最終確定安裝了哪個PowerShell(x86或x64)管理單元,則可以專門針對該平臺定位應用程序。 假設上述情況,由於已經安裝了管理單元,因此不再需要運行InstallUtil。 – 2010-08-27 17:53:24

相關問題