问题描述
我正在使用 PowerShell 和以下命令连接到 Exchange Online:
Connect-ExchangeOnline -AppId APP_ID -CertificateFilePath CERTIFICATE_PATH -Organization ORG_NAME
并希望使用“搜索邮箱”cmdlet。
docs 说:
默认情况下,Search-MailBox 仅在邮箱搜索或邮箱导入导出角色中可用,并且这些角色未分配给任何角色组。
该应用已在 Azure 中分配了 Exchange 管理员角色。
在 Exchange 管理中心,我将 Exchange 管理员添加到启用了邮箱搜索角色的发现管理角色组。
重新连接后,搜索邮箱仍然不可用:
搜索邮箱:术语“搜索邮箱”未被识别为 cmdlet、函数、脚本文件或可执行程序的名称。
检查名称的拼写,如果包含路径,请验证路径是否正确,然后重试。
有人可以解释为什么它不起作用以及如何使它起作用吗?
解决方法
当 CmdLet 不可用时,需要在正确的服务器上导入、安装或运行它。 Search-Mailbox
似乎是模块 ExchangePowerShell
的一部分。
我相信您要么需要在 PowerShell 会话中导入该模块:
Import-Module -Name 'ExchangePowerShell'
或者直接在 Exchange 服务器上运行 CmdLet 或使用 Connect-ExchangeOnline。
,在我将“邮箱搜索”角色分配给“组织管理”角色组(Exchange 管理员角色组继承自它)后,它起作用了。