AD 递归 LDAP 查询未过期的临时组成员身份

AD 递归 LDAP 查询未过期的临时组成员身份
  • 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_yTEST_userTEST_x过期:递归查询中仍显示TEST_user是在TEST_xTEST_y。删除TEST_x作为 的成员TEST_y将在 LDAP 查询中显示TEST_user是 的成员TEST_y
  • 添加或删除TEST_user2似乎TEST_x不会影响这一点。但是,手动添加和删除确实会产生不再显示为组的TEST_user效果。TEST_x
  • AD 复制似乎不起作用;添加-Server到命令中以提高速度

相关内容