Exchange 2010 Powershell命令检查系统中是否存在电子邮件地址

我正在查找一个Exchange 2010命令,它将执行以下操作:

  1. 给定一个电子邮件地址(完全限定域名和全部)检查电子邮件地址是否与系统中的某个邮箱或组相关联;
  2. (理想情况下)显示哪个实体拥有该电子邮件地址

这将对我检查我的迁移非常有帮助,并确保我们所有的别名都已正确移动。

    Get-Recipient -Identity [email protected]

    这将返回具有给定电子邮件地址(包括别名)的收件人对象。 由于电子邮件保证是唯一的,这应该永远不会返回多个logging(我相信)。

    Get-Recipient -ANR user

    您可以使用-ANRsearch使用不明确的名称parsing(因此您可以键入他们的第一个,最后一个,用户名等),但ANR将匹配用户的主要电子邮件地址,它将不匹配其他SMTP别名。 ANR可以返回多个匹配项(所以确保你的代码处理这种情况)。

    Get-Mailbox不足以确认电子邮件地址是唯一的,因为它不一定会返回联系人或来自外部或旧系统的logging。 它返回邮箱…而所有的邮箱都有一个电子邮件地址,并不是所有的电子邮件地址都是一个邮箱。

    这应该做的伎俩:

     get-mailbox -an [email protected] 

    我意识到这是有点老,但只是通过运行以下解决了问题:

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

    如果他们中的任何一个都返回了,它不一定会告诉我这是什么帐号,但是我可以把重点放在三个人中的哪一个返回logging上来。 如果没有返回,那么它没有被使用。

    Get-Recipient应该做的伎俩

    以下为我工作,即使有别名:

     get-recipient -filter {emailaddresses -like "*[email protected]*"} 

    还返回收件人的名称和types。