В этой статье мы рассмотрим, как скрыть пользователя или группу рассылки в глобальном списке адресов 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
Скрыть пользователей в группе рассылки Exchange
По умолчанию пользователи вашей организации/тенанта Exchange могут просматривать список пользователей в группе рассылки. Вы можете запретить отображать список пользователей в определенной группе рассылки. Для этого используется специальный атрибут групп в Active Directory — hideDLMembership. Данный атрибут запрещает разворачивать состав конкретной группы рассылки.
Вы можете включить атрибут hideDLMembership в свойствах группы в консоли Active Directory Users and Computers (ADUC):
- Откройте консоль ADUC (
dsa.msc
); - В меню View включите опцию Advanced Features;
- Вручную найдите группы рассылки или mail enabled группу безопасности с почтовым ящиком (mail enabled);Совет. Не используйте поиск, т.к. в этом случае в окне свойств группы будет отсутствовать редактор атрибутов AD (Attribute Editor).
- Откройте свойства нужной группы и перейдите на вкладку Attribute Editor;
- Найдите атрибут с именем hideDLMembership и измените его значение на True. Сохраните изменения.
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.