Экспорт адресной книги (GAL) Exchange/Microsoft 365 в CSV файл

Экспорт адресной книги (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.

exchnage admin center экспорт списка адресов в CSV файл

Далее вы сможете выбрать свойства (атрибуты) пользователей, которые вы хотите экспортировать в CSV файл.

выбрать выводимые атрибуты адресной книги при экспорте в CSV файл

Но, как вы видите, таким образом можно экспортировать только адреса пользователей. Чтобы экспортировать адреса групп рассылки, нужно перейти на вкладку Groups и выполнить экспорт оттуда (аналогично Contacts, Resources, Shares).

Для получения списка адресов в домене луге воспользоваться PowerShell командлетом Get-Recipient. Например, мы хотим вывести список имен пользователей, их smtp-адреса и телефонные номера. Подключитесь к своему Exchange Server из PowerShell и выполните команду:

Get-Recipient| Select-Object Name,PrimarySmtpAddress, Phone

Get-Recipient-exchange

Чтобы вывести адресатов только из глобальной адресной книги (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]
С помощью PowerShell командлетов Get-ADUser и Get-ADGroup из модуля AD PowerShell можно получить список пользователей и групп с SMTP адресами. Например, выгрузим пользователей со всеми SMTP адресами из определенного OU:

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.

exchange online (microsoft 365) экспорт адресной книги пользователей с smtp адресами в excel файл

Аналогично можно экспортировать список контактов, групп рассылок.

Гораздо проще и удобнее экспортировать глобальный список адресов (Global Address List) из вашего тенанта Exchage Online (Microsoft 365) с помощью PowerShell. Подключитесь к своему тенанту Exchange Online с помощью модуля EXO v2:

Connect-ExchangeOnline

Выведите список доступных глобальный адресных листов:

Get-GlobalAddressList | Select-Object Name

командлет Get-GlobalAddressList в office 365

В нашем примере существует только ‘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

poweshell экспортировать глобальную адресную книгу microsoft365 в csv файл

Как вы видите, в 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. Но способ это не очень удобный.

добавить адреса из глобального списка адресов в контакты outlook

Есть неочевидный, но довольно простой и понятный для простого пользователя способ экспорта GAL через подключение к Exchange в Microsoft Access.

  1. Запустите Microsoft Access и в меню выберите File->Open;
  2. В типах файлов данных выберите Exchange();Подключение к Exchange через Access
  3. В списке источников выберите Global Address List;Импорт глобального списка адресов Exchange в Outlook
  4. Вы получите плоскую таблицу Access с данными из адресной книги Exchange;
  5. Теперь можно экспортировать эти данные из базы в CSV или Excel файл.

Полученный CSV файл достаточно просто обработать Excel и привести к нужному виду.

Microsoft 365
Экспорт адресной книги (GAL) Exchange/Microsoft 365 в CSV файл