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


12

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

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

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

Answers:


15

Get-Recipient -Identity user@domain.com

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

Get-Recipient -ANR user

您可以使用-ANR歧义名称解析来进行搜索(因此您可以键入其名字,姓氏,用户名等),但是尽管ANR将与用户的主要电子邮件地址匹配,但与其他SMTP别名不匹配。ANR可以返回多个匹配项(因此请确保您的代码可以处理这种情况)。

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


这不会带来邮箱的任何别名
Brian Mitchell

1
这是对我有用的答案。在通过主要SMTP电子邮件地址进行搜索以及使用辅助SMTP电子邮件地址进行搜索时,它都能正确返回匹配的收件人。
RSW

2
@BrianMitchell,如果通过管道查看所需的属性,则完全可以。 Get-Recipient user@domain.com | Select Name,EmailAddresses。默认情况下,它将仅显示NameRecipientType
blaughw '16

3

这应该可以解决问题:

get-mailbox -an user@domain.com 

5
这不适用于具有多个SMTP别名的帐户;仅主要电子邮件地址将返回一条记录。别名将不返回任何内容(错误地指示该帐户可用)。
Myrddin Emrys

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*"}

还返回收件人的姓名和类型。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.