是否有命令来验证是否为所有用户启用了 MAPI?

Is there a command to verify if MAPI is enabled for all users?

我们的 Exchange 服务 (2016) 中有一个组织,拥有超过 200 名用户。

我们需要验证是否为他们每个人启用了 MAPI,如果没有,谁没有,以便我们可以启用它...

是否有 Powershell/ExchangeShell 命令:

其中任何一个都会有很大帮助,到目前为止,我只找到了一个命令,您可以在其中搜索一个用户,但我不想为所有 200 个用户都这样做...

这是相当简单的,因为大多数 Exchange cmdlet 允许直接通过管道传输到其他 Exchange cmdlet。

列出所有用户,以及他们启用了哪些 API 或协议:

Get-CASMailbox -ResultSize unlimited

CSV 格式的列表可能对您更有用,因为在 PowerShell 控制台中很难对 200 个用户进行分类。这将列出更多协议和功能,根据需要进行调整:

Get-CASMailbox -ResultSize unlimited  | Select-Object -Property Identity, *Enabled | Export-Csv -NoTypeInformation -Path report.csv

列出所有启用了 MAPI 的用户:

Get-CASMailbox -ResultSize unlimited | where {$_.MapiEnabled -match "true"}

列出所有没有启用MAPI的用户并启用它。准备好 运行 时删除 -WhatIf

Get-CASMailbox -ResultSize unlimited | where {$_.MapiEnabled -match "False"} | Set-CASMailbox -MAPIEnabled $true -WhatIf

请注意,这是针对 Exchange Online 组织(默认启用 MAPI)的 运行。您可能需要使用 Get-CASMailbox -OrganizationalUnit <OrgName> 或其他过滤器来确保您只处理正确的邮箱。