在Group Distribution Exchange中搜索成员

时间:2016-08-24 02:21:33

标签: powershell exchange-server exchange-server-2010 exchange-server-2013

我使用以下代码获取组中的所有成员。

Get-DistributionGroupMember -Identity "Marketing USA"

问题是,有些团体有1000多名成员。因此,有一种更好的方法可以过滤结果,只查看我需要的成员,而不是加载所有记录。

我想按Primary EmailDisplay Name进行搜索。

我的Exchange版本为20102013

3 个答案:

答案 0 :(得分:0)

对于Exchange 20102013,您可以通过以regex形式创建一个由|分隔的电子邮件地址列表,按电子邮件地址进行搜索。然后使用-imatch匹配您需要的电子邮件地址。 注意:这将搜索主要和次要地址。

$EmailAddress = [regex]"Username1@Domain.com|Username2@Domain.com|Username3@Domain.com"
Get-DistributionGroupMember -Identity "Marketing USA" | Where { $_.EmailAddresses.SmtpAddress -imatch $EmailAddress }

然后按显示名称进行搜索,您可以使用regex|分隔名称的相同方式。

$DisplayName = [regex]"FirstName1 LastName1|FirstName2 LastName2|FirstName3 LastName3"
Get-DistributionGroupMember -Identity "Marketing USA" | Where { $_.DisplayName -imatch $DisplayName }

使用这种过滤方法,您也可以进行部分搜索。如果您只输入用户的名字,您将获得具有该名称的所有用户。电子邮件地址搜索也是如此。

答案 1 :(得分:0)

根据默认情况下的文档,结果大小限制为1000.您需要包含-ResultSize Unlimited,例如Get-DistributionGroupMember -Identity "Marketing USA" -ResultSize Unlimited返回的不止于此。

答案 2 :(得分:0)

分发组也是AD组。使用Get-ADGroup cmdlet,您还可以更有效地过滤搜索。

例如:

Get-ADGroup -Filter {proxyaddresses -like“ SMTP:address@DOMAIN.COM ”}(如果它等于您组织中的主电子邮件地址,则使用mail属性)

Get-ADGroup -Filter {displayname -eq“MyDL”} -Properties *

要使用此cmdlet,您可能需要先在powershell会话中使用“import-module activedirectory”加载activedirectory ps模块。