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

the*_*p3r 9 powershell exchange-server

我正在编写一个脚本,它可以完成AD和Exchange的许多工作,只需要进入GUI的一部分,我需要开始使用Exchange,但是看不到我可以手动指定包含Exchange模块的位置.我熟悉的正常过程是import-module activedirectory,但import-module exchange不起作用.

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

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

mjo*_*nor 18

你可以这样做:

add-pssnapin Microsoft.Exchange.Management.PowerShell.E2010
Run Code Online (Sandbox Code Playgroud)

并且它的大部分都可以工作(虽然MS支持会告诉你这样做是不支持的,因为它绕过了RBAC).

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

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


Huo*_*uon 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"
Run Code Online (Sandbox Code Playgroud)

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

. 'C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1'
Connect-ExchangeServer -auto
Run Code Online (Sandbox Code Playgroud)

笔记:

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