В этой статье мы рассмотрим, как найти одинаковые SMTP адреса (дубликаты) в организации Exchange Server. Если в вашей организации есть неуникальные SMTP адреса, то при отправке на этот email адрес, Exchange вернёт ошибку:
Event ID: 9217 Event Source: MSExchangeTransport More than one Active Directory object is configured with the recipient address [email protected]. Messages to this recipient will be deferred until the configuration is corrected in Active Directory.
Такое письмо не будет доставлено получателю.
Также бывает ситуации, когда вы создаете новый почтовый ящик в Exchange и получаете сообщение, что пользователь с таким именем уже существует:
The proxy address SMTP:[email protected] is already being used by the proxy address or LegacyExchnageDN. Please choose another proxy address.
Чтобы разрешить эту ошибку, нужно найти объекты Active Directory, которым назначен одинаковый SMTP адрес (алиас).
Для поиска объектов AD, с определенным SMTP адресом можно использовать консоль Active Directory Users and Computers (
aduc.msc
):
- Запустите консоль, выберите Find -> Custom Search -> вкладка Advanced;
- Укажите следующий LDAP запрос:
proxyaddresses=smtp:[email protected]
(измените соответственно имя и почтовый домен); - Нажмите кнопку Find;
- Консоль отобразит все объекты, у которых в атрибуте proxyaddresses содержится искомый email адрес. В нашем примере видно, что одинаковый proxyaddresses может содержаться у различных объектов AD (пользователя, контакта и группы рассылки Exchange) ;
- Откройте редактор атрибутов AD и вручную измените значение в атрибуте proxyaddresses. Задайте уникальные SMTP адрес для объектов;
Для поиска объектов в AD также можно использовать командлет Get-ADObject из модуля Active Directory PowerShell:
Get-ADObject -Properties mail, proxyAddresses -Filter {proxyAddresses -eq "smtp:[email protected]"}
Т.к. smtp адрес может быть назначен не только пользователю, контакту, группе рассылки, о еще и общей папке Exchange, иногда для поиска объектов с одинаковым SMTP адресом нужно использовать командлеты Exchange:
Get-Recipient -resultsize unlimited | where {$_.EmailAddresses -like "*[email protected]*"}
Либо вы можете выгрузить полный список email адресов:
Get-recipient -resultsize unlimited | select Name -expand emailaddresses > c:\ps\all_smtp_adresses.txt
Значение email адреса пользователя может содержаться в следующих атрибутах: userPrincipalName, mail, proxyAddresses, LegacyExchangeDN или msRTCSIP-PrimaryUserAddress. В качестве утилиты для поиска дубликатов и недопустимых email адресов можно использовать утилиту Microsoft IdFix (Directory Synchronization Error Remediation Tool). Она используется для проверки возможности синхронизации вашего on-premises Active Directory с Azure AD.
Утилита позволяет быстро найти все почтовые объекты с неуникальными SMTP адресами в вашем домене.
Вам осталось отредактировать SMTP алиас или UserPrincipalName одного из найденных объектов.