在 Powershell 表达式中评估嵌套组

在 Powershell 表达式中评估嵌套组

我设置了管理范围和管理角色分配,允许服务帐户模拟属于指定分发列表中的用户的 Exchange 邮箱。我设置了管理范围,以使用以下 Powershell 评估用户是否在适当的分发列表中:

New-ManagementScope -Name "ImpersonationScope" -RecipientRestrictionFilter {MemberOfGroup -eq "CN=Impersonated,CN=Users,DC=example,DC=com"}

所有这些都按预期工作,但只考虑以下用户直接的模拟列表的成员。如果我将新的分发列表添加到模拟列表中,服务帐户将无法模拟属于此新列表中的用户的邮箱(除非该用户也在模拟列表中)。

我已经确定,我可以通过创建多个范围 + 角色分配对以及包括用运算MemberOfGroup -eq符链接在一起的多个谓词来支持多个组-or,但更喜欢一种解决嵌套组的方法。

有什么方法可以改变该表达式来递归评估用户的组层次结构?

答案1

我不太熟悉 Exchange cmdlet 或 Exchange,但基本的 AD cmdletGet-ADUser有一个名为 LDAPFilter 的选项,可以用来代替标准 Filter 选项。

使用 LDAPFilter,您可以使用LDAP_MATCHING_RULE_IN_CHAINOID 查询嵌套组成员身份如下:

Get-ADUser -LDAPFilter "(memberOf:1.2.840.113556.1.4.1941:=CN=Impersonated,CN=Users,DC=example,DC=com)"

这将返回该组的所有嵌套和直接成员。

您可能能够在 RecipientRestrictionFilter 中使用类似查询的结果。

答案2

我相信所有新组都必须启用邮件以允许交换权限应用于它们,您能否确保您添加的新组是启用邮件的通讯组,这也可以通过安全组来完成。

该 cmdlet 是Enable-DistributionGroup

相关内容