1

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

Get-DistributionGroupMember -Identity "Marketing USA"

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

我想按Primary Email和搜索Display Name

我的 Exchange 版本是20102013

4

3 回答 3

0

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

于 2016-08-24T21:58:12.420 回答
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 }

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

于 2016-08-24T07:26:53.157 回答
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 模块。

于 2016-11-28T15:05:00.490 回答