понедельник, 17 июня 2013 г.

Как узнать какому почтовому ящику принадлежит определенный электронный адрес?

Эта задачка довольно простая и если Вы считаете, что хорошо знаете PowerShell, то она не вызовет у вас затруднений.
Мне сегодня потребовалось найти учетную запись, которой соответствует адрес st@exchangefaq.ru. На этот адрес приходит спам из Интернета для проведения экспериментов.
У меня в тестовой лаборатории довольно много сгенеренных учетных записей и определить визуально принадлежность емейла тому или иному почтовому ящику довольно сложно, поэтому я набрал в EMS вот такой кусок кода: 
get-mailbox -resultsize unlimited | where-object{$_.Emailaddresses -like "*st@*"} | format-list name,emailaddresses,database,servername


Name : postmaster_EFAQ
EmailAddresses : {smtp:hr@exchangefaq.ru, smtp:manager@exchangefaq.ru, smtp:administrator@exchangefaq.ru,
smtp:admin@exchangefaq.ru, smtp:resume@exchangefaq.ru, smtp:spam@exchangefaq.ru, smtp:info@exchangefaq.ru, smtp:st@exchangefaq.ru,
SMTP:postmaster@exchangefaq.ru, smtp:postmaster_EFAQ@z365.ru}
Database : db05
ServerName : z365-ex01
В полученном результате видно, что адрес st@exchangefaq.ru принадлежит почтовому ящику postmaster_EFAQ в базе db05 на сервере z365-ex01. То, что нужно.
Немного поясню этот кусок кода:
  1.  get-mailbox -ResultSize unlimited — получаем список всех почтовых ящиков в организации. Опция -ResultSize unlimited позволяет обойти ограничение по умолчанию в 1000 записей.
  2. where-object{$_.Emailaddresses -like «*st@*»} — ограничиваем поиск только для свойства Emailaddresses, которое в свою очередь является списком и выше видно, что в нем содержится. Кстати, адрес, начинающийся на слова SMTP заглавными буквами является основным. В качестве оператора отбора можно было использовать и -eq, -contains, но я выбрал -like, т.к. бывает, что известна только часть адреса.
  3. format-list name,emailaddresses,database,servername — команда отображения только нужных нам полей.

Комментариев нет:

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