Search-Mailbox cmdlet 在 Exchange Online 中使用仅应用程序身份验证的可用性

问题描述

我正在使用 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 管理员角色组继承自它)后,它起作用了。