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

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

我正在寻找可以执行以下操作的 Exchange 2010 命令:

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

这对于我检查迁移并确保所有别名都正确移动非常有帮助。

答案1

Get-Recipient -Identity [email protected]

这将返回具有指定电子邮件地址(包括别名)的收件人对象。由于电子邮件保证是唯一的,因此它永远不会返回多条记录(我相信)。

Get-Recipient -ANR user

您可以使用-ANR模糊名称解析进行搜索(这样您就可以输入他们的名字、姓氏、用户名等),但虽然 ANR 会匹配用户的主要电子邮件地址,但不会匹配他们的其他 SMTP 别名。ANR 可以返回多个匹配项(因此请确保您的代码可以处理这种情况)。

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

答案2

这应该可以解决问题:

get-mailbox -an [email protected] 

答案3

我意识到这有点旧了,但只需通过运行以下命令即可解决问题:

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

如果其中任何一个返回了任何内容,它不一定能告诉我哪个帐户正在使用它,但是,我可以专注于这三个帐户中的哪一个返回了记录以进行更深入的挖掘。如果没有返回任何内容,则表示它未被使用。

答案4

Get-Recipient 应该可以解决问题

相关内容