1

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

我们需要验证是否为它们中的每一个启用了 MAPI,如果没有,谁没有它,所以我们可以启用它...

是否有 Powershell/ExchangeShell 命令:

  • 列出组织下所有启用了 MAPI 的用户(然后我们可以比较哪些人丢失了,这已经快得多了)?
  • 列出所有用户,以及他们启用了哪些 API 或协议(POP、IMAP、OWA、MAPI 等)?

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

4

1 回答 1

1

这是相当直接的,因为大多数 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>或其他过滤器来确保您只处理正确的邮箱。

于 2019-08-23T23:22:28.640 回答