我发现这篇文章微软声称此 powershell 查询将给我一个动态通讯组中的用户列表,该列表的定义大致如下:
列出的代码:
$MarketingGroup = Get-DynamicDistributionGroup "Marketing Group"
Get-Recipient -RecipientPreviewFilter $MarketingGroup.RecipientFilter -OrganizationalUnit $MarketingGroup.OrganizationalUnit
所以我稍微修改了一下:
$members = Get-DynamicDistributionGroup -Identity "dynamic group"
Get-Recipient -RecipientPreviewFilter $members.RecipientFilter -OrganizationalUnit $members.OrganizationalUnit | select Displayname,PrimarySmtpAddress > membersall.txt
但问题是我的查询(以及微软)只考虑了方程的一部分。它需要单选/复选框选择,但似乎跳过了用户Container
所在的位置(即使你$members.OrganizationalUnit
应该这样做)。它似乎返回Users with Exchange mailboxes
所选容器中的所有人,但它也考虑了默认的人Users OU
。
那么如何修改查询以仅显示所选收件人容器内没有默认用户 OU 的查询。
答案1
您使用了错误的属性,OrganizationalUnit
以下应该有效:
$MarketingGroup = Get-DynamicDistributionGroup "Marketing Group"
Get-Recipient -RecipientPreviewFilter $MarketingGroup.RecipientFilter -OrganizationalUnit $MarketingGroup.RecipientContainer
答案2
如果您的动态 DL 是在 Exchange 2003 或更早版本中创建的...或者您正在运行混合环境。试一试这个单行代码。请注意,不同之处在于使用 LDAPRecipientFilter 而不是 RecipientFilter。在 2003 环境中,普通的 RecipientFilter 值将为空。
Get-Recipient -RecipientPReviewFilter (Get-DynamicDistributionGroup -Identity *groupname*).LDAPRecipientFilter | Select Name,PrimarySMTPAddress