Powershell – Exchange 2010 Powershell command to check if an email address exists in the system

exchangeexchange-2010powershell

I'm looking for an Exchange 2010 command that would do the following:

  1. Given an email address (fully-qualified with domain and all) check if the email address is associated to some mailbox or group in the system;
  2. (Ideally) show which entity owns that email address

This would be very helpful for me to check my migration and make sure all of our aliases were moved correctly.

Best Answer

Get-Recipient -Identity user@domain.com

This will return the recipient object for whoever has the given email address (including aliases). Since emails are guaranteed to be unique this should never return more than one record (I believe).

Get-Recipient -ANR user

You can use -ANR to search using Ambiguous Name Resolution (so you can type their first, last, username, etc), but while ANR will match a user's primary email address, it will not match their other SMTP aliases. ANR can return multiple matches (so ensure your code handles this case).

Get-Mailbox is not sufficient to confirm that an email address is unique, as it will not necessarily return contacts, or records from external or legacy systems. It returns mailboxes... and while all mailboxes have an email address, not all email addresses are a mailbox.