我们的 Exchange 服务(2016 年)中有一个组织,拥有超过 200 个用户。
我们需要验证是否为每个启用了 MAPI,如果没有,谁没有它,以便我们可以启用它......
是否有一个Powershell/ExchangeShell命令:
- 列出在组织下启用了 MAPI 的所有用户(然后我们可以比较谁失踪了,它已经快得多)?
- 列出所有用户,以及他们启用了哪些 API 或协议(POP、IMAP、OWA、MAPI 等)?
其中任何一个都会有很大帮助,到目前为止,我只找到了一个命令,您可以在其中搜索一个用户,但我不想对所有 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>
或其他筛选器来确保只处理正确的邮箱。