Экспорт адресной книги (GAL) Exchange/Microsoft 365 в CSV файл
Рассмотрим несколько способ экспорта содержимого глобального списка адресов (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
Результаты Get-Recipient по-умолчанию ограничены 1000 объектами. Чтобы вывести большее количество адресов, используйте параметр
-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=winitpro,DC=ru",MskTest,smtp: [email protected]
Get-ADUser -Filter * -SearchBase 'OU=OU=Service,DC=corp,DC=winitpro,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 и привести к нужному виду.
Microsoft 365
Экспорт адресной книги (GAL) Exchange/Microsoft 365 в CSV файл