![](/img/trans.png)
[英]Exchange Online Management Powershell module and Certificate Oauth
[英]Microsoft.Exchange.Management.PowerShell.Admin
我在服務器上使用Microsoft.Exchange.Management.PowerShell.Admin時遇到麻煩。 該服務器不是運行Exchange 2007的服務器,而是一台遠程服務器(在同一區域中)。 我不知道如何為Powershell添加管理單元-Microsoft.Exchange.Management.PowerShell.Admin。 是否可以僅從Exchange 2007服務器獲取dll文件,然后將其復制到運行我的代碼的服務器上?
有人可以解釋一下我要執行我的代碼需要做什么嗎?
我現在得到的例外是:“版本1沒有Windows PowerShell管理單元”。 這是生成錯誤的代碼:
public void CreateMailBox(User user)
{
//Create a runspace for your cmdlets to run and include the Exchange Management SnapIn...
RunspaceConfiguration runspaceConf = RunspaceConfiguration.Create();
PSSnapInException PSException = null;
PSSnapInInfo info = runspaceConf.AddPSSnapIn("Microsoft.Exchange.Management.PowerShell.Admin", out PSException);
Runspace runspace = RunspaceFactory.CreateRunspace(runspaceConf);
runspace.Open();
Pipeline pipeline = runspace.CreatePipeline();
Command command = new Command("New-Mailbox");
command.Parameters.Add("Name", user.UserName);
....
該錯誤即將與PSSnapInfo info = runspaceConf .....一起使用。我正在使用.NET 3.5
它還取決於在VS 2010(x86或x64)中如何編譯代碼。 如果要加載64位Exchange Server管理單元,則必須使用x64進行編譯。
您可以使用$ PsVersionTable來檢查PowerShell是否為2.0版(應該)
我懷疑僅獲取一個dll是否足夠。 即使只是一個DLL,該管理單元是否也支持遠程操作? 否則,您仍然需要“安裝”該管理單元,以便PowerShell可以看到它,例如:
PS> $snapinPath = 'Microsoft.Exchange.Management.PowerShell.Admin.dll'
PS> C:\Windows\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe /i $snapinPath
如果您想遠程執行此操作, 並且碰巧正在使用PowerShell 2.0,請嘗試使用遠程處理功能。 通過與Exchange服務器的遠程會話運行管理單元可能會更好。
我相信Exchange 2007管理單元是32位DLL。 我不是專業的程序員,但是如何嘗試將您的程序創建為32位應用程序呢?
我在想,如果您將應用程序構建為32位,則它將使用32位PowerShell引擎,並能夠正確加載管理單元。
現在,我不建議您嘗試將DLL復制到其他服務器。 您應該在要開發應用程序的服務器上安裝Exchange管理工具。
希望這會有所幫助...如果沒有,請在下面發表評論。
對此感到嚴重困惑。
安裝了Exchange 2007 SP2,說它具有PowerShell v2.0支持,但這不是真的。
仍然顯示為PSVersion 1.0,而不是2.0,如下所示:
名稱:microsoft.exchange.management.powershell.admin PSVersion:1.0說明:Exchange Server的管理任務
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.