我正在寻找可以执行以下操作的Exchange 2010命令:
- 给定一个电子邮件地址(完全符合域和所有条件),请检查该电子邮件地址是否与系统中的某个邮箱或组相关联;
- (理想情况下)显示哪个实体拥有该电子邮件地址
这对我检查迁移并确保所有别名正确移动都非常有用。
我正在寻找可以执行以下操作的Exchange 2010命令:
这对我检查迁移并确保所有别名正确移动都非常有用。
Answers:
Get-Recipient -Identity user@domain.com
这将返回具有给定电子邮件地址(包括别名)的任何人的收件人对象。由于电子邮件被保证是唯一的,因此它永远不会返回多条记录(我相信)。
Get-Recipient -ANR user
您可以使用-ANR
歧义名称解析来进行搜索(因此您可以键入其名字,姓氏,用户名等),但是尽管ANR将与用户的主要电子邮件地址匹配,但与其他SMTP别名不匹配。ANR可以返回多个匹配项(因此请确保您的代码可以处理这种情况)。
Get-Mailbox
不足以确认电子邮件地址是唯一的,因为它不一定会返回联系人或来自外部或旧系统的记录。它返回邮箱...,尽管所有邮箱都有一个电子邮件地址,但并非所有电子邮件地址都是一个邮箱。
Get-Recipient user@domain.com | Select Name,EmailAddresses
。默认情况下,它将仅显示Name
和RecipientType
。
这应该可以解决问题:
get-mailbox -an user@domain.com
我意识到这有点老了,但是通过运行以下命令解决了这个问题:
Get-Mailbox | %{$_.EmailAddresses | ?{$_ -like "*<email address>*"}}
Get-DistributionGroup | %{$_.EmailAddresses | ?{$_ -like "*<email address>*"}}
Get-MailPublicFolder | %{$_.EmailAddresses | ?{$_ -like "*<email address>*"}}
如果他们中的任何人返回了任何内容,则不一定告诉我使用了哪个帐户,但是,我可以专注于三者中的哪一个返回记录以进行更深入的研究。如果未返回任何内容,则说明该表未被使用。