我有带有 powershell 的 2008 AD 管理中心。我正在尝试获取包含每天更改的组的 OU 的所有用户的列表。
例如,OU Temp 有两组 ABC 和 DEF,但明天会有 GHI 和 JFK。在 AD 中,我发现此 ldap 搜索一次只适用于一组:
(&(objectClass=user)(memberof=CN=ABC,OU=Temp,DC=xxx,DC=yyy,DC=zzz))
但是有没有办法同时找到所有组 ABC、DEF、GHI 或 JFK 的所有成员?
我有带有 powershell 的 2008 AD 管理中心。我正在尝试获取包含每天更改的组的 OU 的所有用户的列表。
例如,OU Temp 有两组 ABC 和 DEF,但明天会有 GHI 和 JFK。在 AD 中,我发现此 ldap 搜索一次只适用于一组:
(&(objectClass=user)(memberof=CN=ABC,OU=Temp,DC=xxx,DC=yyy,DC=zzz))
但是有没有办法同时找到所有组 ABC、DEF、GHI 或 JFK 的所有成员?
使用以下参数构造搜索请求:
OU=Temp,DC=xxx,DC=yyy,DC=zzz
one
如果所有组都隶属于ou=temp
,sub
否则)(&)
某些损坏的服务器和 API 不支持此合法过滤器,如果支持,请(objectClass=*)
改用)member
如果访问控制允许连接的授权状态,服务器将返回组列表,以及member
每个组的属性,在这种情况下,如下所示ou=temp
。
这对你有用吗?
$Groups = 'ABC','DEF','GHI','JFK'
$group_query =
$(foreach ($group in $groups){
"(memberof=CN=$Group,OU=Temp,DC=xxx,DC=yyy,DC=zzz)"
}) -Join ''
$Query = "(&(objectClass=user)(|$Group_Query))"
$query
(&(objectClass=user)(|(memberof=CN=ABC,OU=Temp,DC=xxx,DC=yyy,DC=zzz)(memberof=CN=DEF,OU=Temp,DC=xxx,DC=yyy,DC=zzz)(memberof=CN=GHI,OU=Temp,DC=xxx,DC=yyy,DC=zzz)(memberof=CN=JFK,OU=Temp,DC=xxx,DC=yyy,DC=zzz)))