Exchange Powershell - 如何从脚本内部调用Exchange 2010模块?

时间:2011-05-17 19:14:30

标签: powershell exchange-server

我正在编写一个脚本,它使用AD和Exchange做了很多事情,只是到了我需要开始使用Exchange的GUI的一部分但是没有看到我可以手动指定包含Exchange的位置模块。我熟悉的正常流程是import-module activedirectory,但import-module exchange不起作用。

我执行了Get-Module -ListAvailable |选择名称,看不到任何指示Exchange的内容。但是,Exchange管理外壳程序IS加载在我正在处理的Exchange服务器上。

有谁知道如何在我的脚本中包含Exchange 2010模块,以便我可以在内部使用特定于Exchange的cmdlet? TIA ...

3 个答案:

答案 0 :(得分:18)

你可以这样做:

add-pssnapin Microsoft.Exchange.Management.PowerShell.E2010

并且其中大部分都可以使用(虽然MS支持会告诉您不支持这样做,因为它会绕过RBAC)。

我看到一些cmdlet(特别是启用/禁用UMmailbox)的问题不能仅使用加载的snapin。

在Exchange 2010中,他们基本上不支持在实际EMS shell的隐式远程处理环境之外使用Powershell。

答案 1 :(得分:16)

我知道这是一个老问题,但是我只是查看了EMS快捷方式属性并复制了这些命令,而不是添加显然不受支持的snapin。

完整的快捷方式目标是:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noexit -command ". 'C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto"

所以我在脚本开头放了以下内容,它似乎按预期运行:

. 'C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1'
Connect-ExchangeServer -auto

注意:

  • 必须以64位PS运行
  • 这是在安装了管理工具的服务器上测试的。它会自动连接到我们现有的Exchange基础架构。
  • 没有进行过广泛的测试,所以我不知道这种方法是否可行。如果我遇到任何问题,我会编辑这篇文章。

答案 2 :(得分:2)

import-module Microsoft.Exchange.Management.PowerShell.E2010a尝试一些实现,如:

$exchangeser = "MTLServer01"
$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionURI http://${exchangeserver}/powershell/ -Authentication kerberos
import-PSSession $session 

add-pssnapin Microsoft.Exchange.Management.PowerShell.E2010