Рассмотрим несколько способ экспорта содержимого глобального списка адресов (Global Address List) или Offline Address Book Exchange в текстовый CSV -файл. В GAL хранятся все имена и email адреса вашего on-prem Exchange или Exchange Online (Office 365). В таком виде список контактов из корпоративной адресной книги можно перенести и импортировать в контакты сторонних почтовых клиентов или другие онлайн-сервисы электронной почты.
Рассмотрим несколько различных инструментов для экспорта глобального списка адресов: это может быть Exchange Admin Center, PowerShell, MS Access/Outlook, утилита csvde.
Экспорт адресной книги в on-prem Exchange Server в CSV
Проще всего выгрузить адресную книгу прямо из консоли Exchange Admin Center (EAC). Для это перейдите в раздел Recipients -> Mailbox , нажмите … и выберите Export data to a CSV file .
Далее вы сможете выбрать свойства (атрибуты) пользователей, которые вы хотите экспортировать в CSV файл.
Но, как вы видите, таким образом можно экспортировать только адреса пользователей. Чтобы экспортировать адреса групп рассылки, нужно перейти на вкладку Groups и выполнить экспорт оттуда (аналогично Contacts, Resources, Shares).
Для получения списка адресов в домене луге воспользоваться PowerShell командлетом Get-Recipient . Например, мы хотим вывести список имен пользователей, их smtp-адреса и телефонные номера. Подключитесь к своему Exchange Server из PowerShell и выполните команду:
Get-Recipient| Select-Object Name,PrimarySmtpAddress, Phone
Чтобы вывести адресатов только из глобальной адресной книги (Default Global Address List), воспользуйтесь фильтром:
$filter = (Get-GlobalAddressList 'Default Global Address List').RecipientFilter
Get-Recipient -ResultSize unlimited -RecipientPreviewFilter $filter | Select-Object Name,PrimarySmtpAddress, Phone
-ResultSize unlimited
.Можно исключить из выборки ящики, скрытые из адресной книги (атрибут HiddenFromAddressLists ). Для экспорта результатов в CSV файл используется командлет Export-CSV:
Get-Recipient -RecipientPreviewFilter $filter | Where-Object {$_.HiddenFromAddressListsEnabled -ne $true} | Select-Object Name,PrimarySmtpAddress, Phone | Export-CSV c:GAL.csv –NoTypeInformation
Также можно выгрузить список ящиков в GAL так:
Get-mailbox -results unlimited | Where-Object {$_.AddressListMembership -like “*Default Global Address List*”} | Select-Object DisplayName,UserPrincipalName,AddressListMembership,HiddenFromAddress
Для импорта данных из AD можно воспользоваться консольной утилитой csvde.exe .
Команда для выгрузки данных о пользователях с ящиками может выглядеть так
CSVDE -r "(&(objectClass=person)(mail=*))" -l displayName,proxyAddresses –f GAL.csv
На выходе получится список вида:
"CN=MskTest,OU=Service,DC=corp,DC=remontka,DC=ru",MskTest,smtp: [email protected]
Get-ADUser -Filter * -SearchBase 'OU=OU=Service,DC=corp,DC=remontka,DC=ru' -Properties proxyaddresses | Select-Object Name, Proxyaddresses| Export-CSV c:AD_OUGAL.csv
Экспорт глобального списка адресов в Exchange Online (Microsoft 365)
В веб-интерфейсе управления облачным Exchange Online ( https://admin.exchange.microsoft.com/ ) нет встроенного средства для экспорта всего содержимого глобального списка адресов.
Но вы можете экспортировать в CSV файл отдельно список почтовых ящиков пользователей, групп рассылок или ресурсных ящиков. Для этого перейдите, например, в Recipient -> Mailboxes вы выберите Export .
Аналогично можно экспортировать список контактов, групп рассылок.
Гораздо проще и удобнее экспортировать глобальный список адресов (Global Address List) из вашего тенанта Exchage Online (Microsoft 365) с помощью PowerShell. Подключитесь к своему тенанту Exchange Online с помощью модуля EXO v2 :
Connect-ExchangeOnline
Выведите список доступных глобальный адресных листов:
Get-GlobalAddressList | Select-Object Name
В нашем примере существует только ‘Default Global Address List’. В данный список включены все объекты с включенными почтовыми атрибутами в организации (пользователи, группы, группы рассылки ).
Получим фильтр глобального списка адресов:
$Filter = (Get-GlobalAddressList 'Default Global Address List').RecipientFilter
Как вы видите, исопльзуется такой фильтр для выборки объектов в GAL:
((Alias -ne $null) -and (((ObjectClass -eq 'user') -or (ObjectClass -eq 'contact') -or (ObjectClass -eq 'msExchSystemMailbox') -or (ObjectClass -eq 'msExchDynamicDistributionList') -or (ObjectClass -eq 'group') -or (ObjectClass -eq 'publicFolder'))))
Теперь можно получить список всех SMTP адресов из организации Exchange Online и экспортировать их в CSV файл:
Get-Recipient -RecipientPreviewFilter $Filter | Select-Object Name, PrimarySmtpAddress,RecipientType | Export-CSV C:PSOffice365-Export-GAL.csv -NoTypeInformatio
Как вы видите, в CSV файл были выгружены все возможные типы получателей в Exchange Online: UserMailbox, MailUser, MailUniversalDistributionGroup, MailContact, DynamicDistributionGroup.
Выгрузка Global Address List в Outlook
Если у вас нет административных прав в Exchange, вы можете экспортировать глобальную адресную книгу организации с компьютера пользователя с помощью программ из пакета MS Office/ Office 365.
Нельзя экспортировать содержимое глобальной адресной книги непосредственно из Outlook. Единственный обходной способ выгрузки содержимого GAL в файл – добавить всех адресатов из адресной книги организации в личные Контакты ( Address Book –> Global Address List -> CTRL+A -> Add to contacts ). Затем можно экспортировать контакты Outlook в CSV через функцию Import-Export ( File -> Open & Export -> Import/ Export ). Оригинальные контакты придется скопировать во временную папку Outlook. Но способ это не очень удобный.
Есть неочевидный, но довольно простой и понятный для простого пользователя способ экспорта GAL через подключение к Exchange в Microsoft Access.
- Запустите Microsoft Access и в меню выберите File -> Open ;
- В типах файлов данных выберите Exchange() ;
- В списке источников выберите Global Address List ;
- Вы получите плоскую таблицу Access с данными из адресной книги Exchange;
- Теперь можно экспортировать эти данные из базы в CSV или Excel файл.
Полученный CSV файл достаточно просто обработать Excel и привести к нужному виду.