Команда Exchange 2010 Powershell для проверки наличия адреса электронной почты в системе


12

Я ищу команду Exchange 2010, которая сделала бы следующее:

  1. Получив адрес электронной почты (полностью соответствующий домену и всем), проверьте, связан ли адрес электронной почты с каким-либо почтовым ящиком или группой в системе;
  2. (В идеале) показать, какой объект владеет этим адресом электронной почты

Это было бы очень полезно для меня, чтобы проверить мою миграцию и убедиться, что все наши псевдонимы были перемещены правильно.

Ответы:


15

Get-Recipient -Identity user@domain.com

Это вернет объект получателя для всех, кто имеет данный адрес электронной почты (включая псевдонимы). Поскольку электронные письма гарантированно являются уникальными, они никогда не должны возвращать более одной записи (я полагаю).

Get-Recipient -ANR user

Вы можете использовать -ANRпоиск с помощью разрешения неоднозначных имен (так что вы можете ввести их первое, последнее, имя пользователя и т. Д.), Но, хотя ANR будет соответствовать первичному адресу электронной почты пользователя, он не будет совпадать с другими псевдонимами SMTP. ANR может возвращать несколько совпадений (поэтому убедитесь, что ваш код обрабатывает этот случай).

Get-Mailboxнедостаточно для подтверждения того, что адрес электронной почты является уникальным, поскольку он не обязательно возвращает контакты или записи из внешних или устаревших систем. Он возвращает почтовые ящики ... и хотя все почтовые ящики имеют адрес электронной почты, не все адреса электронной почты являются почтовыми ящиками.


Это не возвращает псевдонимы почтового ящика
Брайан Митчелл

1
Это ответ, который работал для меня. Он правильно возвращал совпадающих получателей как при поиске по основным адресам электронной почты SMTP, так и при поиске по вторичным адресам электронной почты SMTP.
RSW

2
@BrianMitchell, вполне может, если пипетит для просмотра нужных атрибутов. Get-Recipient user@domain.com | Select Name,EmailAddresses, По умолчанию это просто покажет Nameи RecipientType.
Blaughw

3

Это должно сделать трюк:

get-mailbox -an user@domain.com 

5
Это не будет работать для учетных записей с несколькими псевдонимами SMTP; только основной адрес электронной почты вернет запись. Псевдонимы ничего не возвращают (ложно указывая, что аккаунт доступен).
Мирддин Эмрис

3
Не работает для вторичных адресов в почтовом ящике.

2

Я понимаю, что это немного устарело, но просто решил проблему, выполнив следующее:

Get-Mailbox | %{$_.EmailAddresses | ?{$_ -like "*<email address>*"}}
Get-DistributionGroup | %{$_.EmailAddresses | ?{$_ -like "*<email address>*"}}
Get-MailPublicFolder | %{$_.EmailAddresses | ?{$_ -like "*<email address>*"}}

Если что-то было возвращено кем-либо из них, это не обязательно скажет мне, КАКОЙ аккаунт использовал это, но тогда я мог бы сосредоточиться на том, кто из трех вернул запись, чтобы погрузиться глубже. Если ничего не возвращено, то оно не используется.



-2

Следующее работало для меня, даже с псевдонимами:

get-recipient -filter {emailaddresses -like "*user@domain.com*"}

Также возвращает имя получателя и тип.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.