和ADDS 的特权访问管理(本地),可以临时将成员添加到组中,例如使用 powershell添加ADGroupMember。
此外,还可以使用LDAP 可扩展匹配规则获取组的所有嵌套成员,特别是 LDAP_MATCHING_RULE_TRANSITIVE_EVAL (1.2.840.113556.1.4.1941) 从 Windows Server 2008 开始受支持。这意味着可以使用以下查询来获取组的所有嵌套成员:
(member:1.2.840.113556.1.4.1941:=CN=TEST_user,OU=Guests,OU=Special accounts,DC=test,DC=example,DC=nl)
我想知道如何递归获取成员资格尚未过期的组。例如(下面的代码),TEST_user
在组中创建用户时TEST_x
,我们将看到一旦时间跨度过去,Get-ADGroup
将不再拥有该成员.Members
。但是,当我们执行直接 LDAP 查询以获取用户所属的所有组时,我们仍会看到TEST_x
。
New-ADGroup "TEST_x" -Path "OU=Groups,DC=TEST,DC=EXAMPLE,DC=nl" -GroupScope Global -GroupCategory Security -Server EXAMPLEdc03
New-ADUser "TEST_user" -Path "OU=Guests,OU=Special accounts,DC=TEST,DC=EXAMPLE,DC=nl" -Server EXAMPLEdc03
Add-ADGroupMember -Identity TEST_x -Members TEST_user -MemberTimeToLive (New-Timespan -Seconds 30) -Server EXAMPLEdc03
(Get-ADGroup TEST_x -Properties Members -ShowMemberTimeToLive -Server EXAMPLEdc03).Members
Get-ADGroup -LDAPFilter ("(member:1.2.840.113556.1.4.1941:=CN=TEST_user,OU=Guests,OU=Special accounts,DC=TEST,DC=EXAMPLE,DC=nl)") -Server EXAMPLEdc03 | Sort-Object Name | Select Name | Format-Table
我无法在这里或其他地方找到有关临时组成员身份如何与递归 LDAP 查询交互的文档。此外,检查该组没有显示用户曾经是该组成员的迹象,所以我想知道为什么查询会失败。有人知道如何从递归查询中排除过期的成员身份吗?
执行的附加调试步骤:
- 成员资格已过期的组的子组也会显示在 LDAP 查询中。
TEST_user
是 的成员TEST_x
,是 的成员TEST_y
。TEST_user
在TEST_x
过期:递归查询中仍显示TEST_user
是在TEST_x
和TEST_y
。删除TEST_x
作为 的成员TEST_y
将在 LDAP 查询中显示TEST_user
是 的成员TEST_y
- 添加或删除
TEST_user2
似乎TEST_x
不会影响这一点。但是,手动添加和删除确实会产生不再显示为组的TEST_user
效果。TEST_x
- AD 复制似乎不起作用;添加
-Server
到命令中以提高速度