【问题标题】:Is there a command to verify if MAPI is enabled for all users?是否有命令验证是否为所有用户启用了 MAPI?
【发布时间】:2019-12-28 22:29:05
【问题描述】:

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

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

是否有 Powershell/ExchangeShell 命令:

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

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

【问题讨论】:

    标签: powershell exchange-server-2016


    【解决方案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> 或其他过滤器来确保您只处理正确的邮箱。

    【讨论】:

    • 在我的特殊情况下,OU 过滤器看起来像:-OrganizationalUnit "OU=testaccount.onmicrosoft.com,OU=Microsoft Exchange Hosted Organizations,DC=NAMPR08A007,DC=PROD,DC=OUTLOOK,DC=COM",所以我将它排除在上面的命令之外以避免混乱。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多