Скрыть пользователя или группу в адресной книге Exchange/Office 365

В этой статье мы рассмотрим, как скрыть пользователя или группу рассылки в глобальном списке адресов Exchange (GAL — Global Address List). Инструкция применима как для облачного тенанта Exchange Online (Microsoft 365), так и для наземного Exchange Server 2019, 2016, 2013, 2010.

Как скрыть пользователей и группы из адресной книги Exchange (GAL)?

В Exchange Online (Microsoft 365) и on-prem Exchange Server все пользователи, контакты и группы рассылки автоматически включаются в адресную книгу организации. Любой пользователь может в Outlook увидеть все ящики и группы своей организации, а также их состав.

Вы можете скрыть любого пользователя или группу из адресной книги Exchange, если включите для него опцию Hide from address list . Эту опцию можно включить эту опцию в свойствах пользователя через Exchange Admin Center (EAC).

Или с помощью PowerShell. Подключитесь к своему on-prem Exchange серверу или облачному тенанту Exchange Online .

Чтобы скрыть пользователя в GAL, выполните:

Set-Mailbox -Identity AdeleV -HiddenFromAddressListsEnabled $true

Можно вывести всех пользователей, скрытых из адресной книги:

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

Аналогичным образом можно скрыть из адресной книги:

  • Контакты: Set-MailContact someextcontact -HiddenFromAddressListsEnabled $true
  • Группы рассылки (Mail-enabled universal distribution groups и Mail-enabled universal security groups): Set-DistributionGroup global_server_admins -HiddenFromAddressListsEnabled $true
  • Динамические группы рассылки Exchange : Set-DynamicDistributionGroup all_msk_users -HiddenFromAddressListsEnabled $true
  • Группы Office (Microsoft) 365: Set-UnifiedGroup groupname1 -HiddenFromAddressListsEnabled:$true

Пользователи и группы будут скрыты в адресной книге после обновления GAL (может потребоваться до 24 часов).

Следующая команда выведет все скрытые объекты в адресной книге:

Get-Recipient -ResultSize unlimited -Filter 'HiddenFromAddressListsEnabled -eq $true'
Для экспорта адресной книги в CSV файл выполните:

Get-Recipient -RecipientPreviewFilter $filter | Where-Object {$_.HiddenFromAddressListsEnabled -ne $true} | Select-Object Name,PrimarySmtpAddress, Phone | Export-CSV c:GAL.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' }

Скрыть пользователя из адресной книги при синхронизации через AD Connect

Если ящики пользователей находятся в Exchange Online (Microsoft 365), и синхронизируются из наземной Active Directory (через Azure AD Connect), не получится включать атрибут HiddenFromAddressListsEnabled в настройках пользователя в облачном Office 365.

Если вы попробуете это сделать через 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.

В соответствии с этой ошибкой нужно включить опцию msExchHideFromAddressLists у пользователя в локальной Active Directory. Проще всего воспользоваться командлетом Set-ADUser из модуля AD PowerShell :

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

После синхронизации пользователя в Azure и обновления GAL, адрес пользователя станет скрыт в адресной книге Office 365.

Следующая команда выведет всех отключенных пользователей, которые еще не скрыты:

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

Если в вашей on-prem Active Directory никогда не был установлен Exchange, то вы не найдете атрибута msExchHideFromAddressLists (и других, кроме msExchAssistantName, msExchHouseIdentifier, msExchLabeledURI) в свойствах объектов. В этом случае вам придется расширить схему AD с помощью установочного диска Exchange.

Скрыть пользователей в группе рассылки Exchange

По умолчанию пользователи вашей организации/тенанта Exchange могут просматривать список пользователей в группе рассылки. Вы можете запретить отображать список пользователей в определенной группе рассылки. Для этого используется специальный атрибут групп в Active Directory — hideDLMembership . Данный атрибут запрещает разворачивать состав конкретной группы рассылки.

Состав групп не отображается для динамических групп распространения (Dynamic Distribution Group). Такие группы динамически обновляются в соответствии с указанным LDAP запросом . Но такое решение не будет универсальным и достаточно гибким.

Вы можете включить атрибут hideDLMembership в свойствах группы в консоли Active Directory Users and Computers (ADUC) :

  1. Откройте консоль ADUC ( dsa.msc );
  2. В меню View включите опцию Advanced Features ;
  3. Вручную найдите группы рассылки или mail enabled группу безопасности с почтовым ящиком (mail enabled);
    Совет . Не используйте поиск , т.к. в этом случае в окне свойств группы будет отсутствовать редактор атрибутов AD (Attribute Editor) .
  4. Откройте свойства нужной группы и перейдите на вкладку Attribute Editor ;
  5. Найдите атрибут с именем hideDLMembership и измените его значение на True . Сохраните изменения.
Вы можете изменить этот атрибут группы AD через PowerShell :

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

Внесенные изменения вступят в силу после того, как Exchange перегенерирует Global Addres List или Offline Address Book, и Outlook-и пользователей получат ее.

В результате в адресной книге Outlook в окне свойств перестанет отображаться список пользователей, включенных в группу рассылки. То же самое касается OWA.

А при попытке развернуть группу в Outlook появится ошибка:

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

admin

Share
Published by
admin

Recent Posts

Настройка Mercurial по HTTPS

Иногда mercurial, при скачивании и комитах ругается на https. Особенно на самоподписанные сертификаты. Чтобы заработал…

4 дня ago

Компиляция libvirt в Ubuntu

Компиляция libvirt Подробнее

4 дня ago

Ошибка libvirt permission denied: решение

Если возникает ошибка libvirt destroy lxc permission denied , при попытке остановить контейнер: _x000D_# virsh…

4 дня ago

Настройка редиректа в NGINX

Файлы с примерами редиректа для nginx Подробнее

4 дня ago

Включение gzip в NGINX

Как включить gzip сжатие в Nginx ? Подробнее

4 дня ago

Удаление postinst-скрипта в Linux

Иногда возникает ситуация, когда криво настроенные пакеты не устанавливаются в системе. У меня это произошло…

4 дня ago