当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何在 Exchange/Office 365 上的全局地址列表中隐藏用户和组?

作者:精品下载站 日期:2024-12-14 23:08:56 浏览:12 分类:玩电脑

如何在 Exchange/Office 365 上的全局地址列表中隐藏用户和组?


在本文中,我们将了解如何在 Exchange 全局地址列表 (GAL) 中隐藏用户或通讯组。本指南适用于云 Exchange Online (Microsoft 365) 租户以及本地 Exchange Server 2019/2016/2013 和 2010 组织。

隐藏 Exchange 或 Office 365 GAL 中的组和用户

在 Exchange Online (Microsoft 365) 和本地 Exchange Server 中,所有用户、联系人和通讯组都会自动添加到组织的通讯簿中。任何用户都可以在 Outlook 中查看其组织中的所有邮件用户和组及其成员身份。

您可以使用从地址列表中隐藏选项来隐藏 Exchange 地址簿中的任何用户或组。可以通过 Exchange 管理中心 (EAC) 在用户属性中启用此选项。

[玩转系统] 如何在 Exchange/Office 365 上的全局地址列表中隐藏用户和组?

或者使用 PowerShell。连接到本地 Exchange Server 或 Exchange Online 租户(使用 EXO v2 PowerShell 模块)。

要在 GAL 中隐藏用户,请运行:

Set-Mailbox -Identity jsmith -HiddenFromAddressListsEnabled $true

您可以显示地址簿中隐藏的所有用户:

Get-Mailbox -ResultSize Unlimited | Where {$_.HiddenFromAddressListsEnabled -eq $True} | Select DisplayName,UserPrincipalName, HiddenFromAddressListsEnabled

[玩转系统] 如何在 Exchange/Office 365 上的全局地址列表中隐藏用户和组?

同样,您可以从地址列表中隐藏其他类型的对象:

  • 联系方式:

    Set-MailContact ext24Support -HiddenFromAddressListsEnabled $true
  • 支持邮件的通用分发和安全组:

    Set-DistributionGroup global_support -HiddenFromAddressListsEnabled $true
  • 交换动态通讯组列表:

    Set-DynamicDistributionGroup nySales -HiddenFromAddressListsEnabled $true
  • Microsoft 365 组:

    Set-UnifiedGroup groupname1 -HiddenFromAddressListsEnabled:$true

GAL 更新后(最多可能需要 24 小时),用户和组将从地址簿中隐藏。

以下命令将列出地址簿中的所有隐藏对象:

Get-Recipient -ResultSize unlimited -Filter 'HiddenFromAddressListsEnabled -eq $true'

要将 Exchange 地址簿导出到 CSV 文件,请运行:

Get-Recipient -RecipientPreviewFilter $filter | Where-Object {$_.HiddenFromAddressListsEnabled -ne $true} | Select-Object Name,PrimarySmtpAddress, Phone | Export-CSV c:\ps\GAL_except_hidden.csv -NoTypeInformation

您可以使用简单的 PowerShell 脚本从地址列表中隐藏禁用的用户:

$mailboxes = get-user | where {$_.UserAccountControl -like '*AccountDisabled*' -and $_.RecipientType -eq 'UserMailbox' } | get-mailbox  | where {$_.HiddenFromAddressListsEnabled -eq $false}
foreach ($mailbox in $mailboxes) {Set-Mailbox -HiddenFromAddressListsEnabled $true -Identity $mailbox}

在 Exchange Online 中,您可以使用以下命令查找禁用的用户邮箱:

Get-MailBox -filter {ExchangeUserAccountControl -eq 'AccountDisabled' -and RecipientType -eq 'UserMailbox' -and RecipientTypeDetails -ne 'SharedMailbox' }

使用 Azure AD Connect 时隐藏通讯簿中的用户

如果用户邮箱托管在 Exchange Online (Microsoft 365) 中,并且用户帐户是从本地 Active Directory 同步(通过 Azure AD Connect),则您将无法在 Office 365 租户的用户设置中启用 HiddenFromAddressListsEnabled 属性。如果您尝试通过 EAC 执行此操作,将会出现错误:

The operation on mailbox failed because it’s out of the current users’s write scope. The action ‘Set-Mailbox’, ‘HiddenFromAddressListsEnabled’, can’t be performed on the object because the object is being synchronized from your on-premises organization. This action should be performed on the object in your on-premises organization.

[玩转系统] 如何在 Exchange/Office 365 上的全局地址列表中隐藏用户和组?

根据此错误,必须为本地 Active Directory 中的用户启用 msExchHideFromAddressLists 选项,而不是在 Azure 端。最简单的方法是使用 AD PowerShell 模块中的 Set-ADUser cmdlet:

Set-ADUser jsmith -Add @{msExchHideFromAddressLists="TRUE"}

将用户同步到 Azure 并更新 GAL 后,用户的电子邮件地址将隐藏在 Office 365 通讯簿中。

以下命令将列出所有尚未隐藏的禁用用户:

Get-ADUser  -Filter {(enabled -eq "false") -and (msExchHideFromAddressLists -notlike "*")}  -Properties enabled,msExchHideFromAddressLists

如果您的本地 Active Directory 中从未安装过 Exchange,则您将在用户属性中找不到 msExchHideFromAddressLists 属性(以及其他 msExch* 属性)。在这种情况下,您必须使用 Exchange 安装介质扩展 Active Directory 架构。

如何在 Exchange 通讯组中隐藏用户?

默认情况下,Outlook 和 OWA 用户可以查看 Exchange 组织中通讯组的成员列表。您可以阻止通讯组的成员身份显示在 Outlook 全局地址列表中。这可以通过使用 Active Directory 组的 hideDLMembership 属性来实现。此属性禁止扩展通讯组中的用户列表。

对于动态通讯组,也不会显示组中的用户列表。此类组根据指定的 LDAP 查询动态更新。但这种解决方案并不适合所有用途,而且不够灵活。

您可以在 Active Directory 用户和计算机 (ADUC) 控制台的组属性中启用 hideDLMembership 属性:

  1. 打开 ADUC 控制台(

    dsa.msc

    );

  2. 启用查看菜单中的高级功能选项;

  3. 手动查找分发或启用邮件的安全组;

    提示。不要使用 AD 搜索,因为组属性中不会有“属性编辑器”选项卡。

  4. 打开必要组的属性并转到属性编辑器选项卡;

  5. 找到 hideDLMembership 属性并将其值更改为 True。保存更改。

    [玩转系统] 如何在 Exchange/Office 365 上的全局地址列表中隐藏用户和组?

您可以通过 PowerShell 更改此 AD 组属性:

Set-ADGroup -id corp_admins -replace @{hideDLMembership=$true}

您所做的更改将在 Exchange 重新生成全局地址列表或脱机地址簿并且 Outlook 用户下载后生效。

[玩转系统] 如何在 Exchange/Office 365 上的全局地址列表中隐藏用户和组?

因此,通讯簿中的用户列表将不再显示在 Outlook 通讯簿属性窗口中。 OWA也是如此。

[玩转系统] 如何在 Exchange/Office 365 上的全局地址列表中隐藏用户和组?

当您尝试在 Outlook 中展开通讯组列表时,会出现错误:

Cannot perform the requested operation. The command selected is not valid for this recipient. The operation failed.

[玩转系统] 如何在 Exchange/Office 365 上的全局地址列表中隐藏用户和组?

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯