我正在编写一个脚本,它使用AD和Exchange做了很多事情,只是到了我需要开始使用Exchange的GUI的一部分但是没有看到我可以手动指定包含Exchange的位置模块。我熟悉的正常流程是import-module activedirectory,但import-module exchange不起作用。
我执行了Get-Module -ListAvailable |选择名称,看不到任何指示Exchange的内容。但是,Exchange管理外壳程序IS加载在我正在处理的Exchange服务器上。
有谁知道如何在我的脚本中包含Exchange 2010模块,以便我可以在内部使用特定于Exchange的cmdlet? TIA ...
答案 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
注意:
答案 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