Powershell 脚本:在本地和在线混合 Exchange 之间切换上下文

Powershell scripting: switching contexts between hybrid Exchange on-prem and online

环境是具有 AD 同步和 ADFS/SSO 的混合 Exchange。

我正在编写一个新的用户入职脚本,需要对我们的本地服务器执行命令以创建 AD 帐户并启用远程邮箱。它触发 ADsync,等待 5 分钟,然后连接到 MSOLservice 以提供许可证。

下一步是设置共享邮箱权限,但是当我 运行 get-mailbox 时,它会拉取本地邮箱而不是远程邮箱。

我试过卸载 EMS 管理单元和 AD 模块,并关闭我的会话。一旦我加载 get-mailbox,它就会创建一个返回到本地的会话。

无法通过管道将 get-remotemailbox 传递给 get-mailboxpermissions。 无法使用调用命令 运行 get-mailbox |get-mailboxpermission | where-object {$_.user -eq "user@domain.com"}(请参阅 no-language error here 了解原因)

解决方案是使用前缀:

http://www.stevieg.org/2010/11/managing-office-365-on-premises-exchange-2010-powershell-session/

Import-PSSession $o365Session -prefix cloud
get-cloudmailbox |get-cloudmailboxpermission ...