我使用以下代码获取组中的所有成员。
Get-DistributionGroupMember -Identity "Marketing USA"
问题是,有些团体有1000多名成员。因此,有一种更好的方法可以过滤结果,只查看我需要的成员,而不是加载所有记录。
我想按Primary Email
和Display Name
进行搜索。
我的Exchange版本为2010
和2013
。
答案 0 :(得分:0)
对于Exchange 2010
和2013
,您可以通过以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模块。