Получение алиасов электронной почты по заданным критериям

image_pdfimage_print

http://www.sourica.ru/page/poluchenie-aliasov-elektronnoj-pochty-po-zadannym-kriterijam

Продолжаем писать полезные и не очень скрипты для получения данных с AD. Сейчас задача следующая.

  • Есть домен child1.example.com c почтовыми адресами на Exchange вида: @child1.com
  • Есть домен child2.example.com c почтовыми адресами на Exchange вида: @child2.com
  • У некоторых пользователей домена child2.example.com в качестве дополнительного адреса электронной почты присутствуют адреса @child1.com
  • Для определенных целей необходимо получить данные адреса.

Приступим к реализации. Как и раньше будем использовать ActiveRoles Management Shell от Quest Software. Для начала разберемся в терминах:

  • Primarysmtpaddress – адрес, используемый по умолчанию для отправки сообщений через Exchange. Он может быть только один.
  • ProxyAddresses – дополнительные адреса электронной почты, которых может быть МНОГО.

Наша задача получить список ProxyAddresses адресов @child1.com у пользователей домена child2.

Для этого используем такую конструкцию:

Gt-QADUser -SearchRoot 'dc=child2,dc=example,dc=com' -SizeLimit 0 -IncludedProperties ProxyAddresses | where {$_.ProxyAddresses -match 'child1.com'} | Select-Object @{n='CHILD1';e={$_.ProxyAddresses -match 'child1.com'}}

Разберем немного подробнее:

Get-QADUser -SearchRoot ‘dc=child2,dc=example,dc=com’ -SizeLimit 0 -IncludedProperties ProxyAddresses

  • Get-QADUser – получаем список пользователей
  • -SearchRoot ‘dc=child2,dc=example,dc=com’  — указываем нужный нам домен в качестве корня поиска пользователей
  • -SizeLimit 0  — ЕМПНИМ ограничение вывода 1000 пользователей. Убираем данный лимит если у нас очень много пользователей.
  • -IncludedProperties ProxyAddresses   —  по умолчанию в результирующий набор получаемых данных включаются не все доступные атрибуты пользователя. В частности ProxyAddresses  необходимо включать явным образом.
where {$_.ProxyAddresses -match 'child1.com'}

Получает в конвейере список пользователей. Фильтрует из них только тех, у кого в ProxyAddresses  присутствует нужный почтовый домен.

Select-Object @{n='CHILD1';e={$_.ProxyAddresses -match 'child1.com'}}

Также в конвейере получает отфильтрованный список пользователей и выводит только нужное по условиям задачи поле.

На выходе получаем список адресов электронной почты, который нас и интересует.

Оставьте комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.