我正在尝试获取所有已知组成员的计算机列表。我有组GUID,并使用“memberof =”格式构建查询并按ObjectClass过滤。
这样可以正常工作,但如果将计算机的PrimaryGroup属性设置为已知组,则不会返回计算机。在这种情况下,将不会返回该机器。
我已经在以下链接中找到了解释原因的原因(参见Joe Kaplan的回复) http://www.eggheadcafe.com/software/aspnet/29773581/active-directory-query-c.aspx
不幸的是,概述的答案是如何从给定用户获取组列表。我想反过来,从给定的组中获取机器列表。
似乎PrimaryGroup信息存储在机器/用户端,所以我不确定我想做什么是可能的。
我以为我能够查询已知组的TokenGroup属性,然后构造一个查询来返回所有具有TokenGroup属性集的机器,但似乎并非所有组都具有此属性。
有没有人有任何想法或建议?如果需要任何澄清,请告诉我!
非常感谢,
本
答案 0 :(得分:0)
解决方案是发出以下查询:
(|(及(对象类=计算机)(的memberOf =))(及(对象类=计算机)(primarygroupid = {1})))
第一部分确保返回属于具有给定guid的组的计算机。第二部分确保返回将primarygroupid设置为给定primarygrouptoken(取自已知组)的计算机。
此查询返回该组的所有计算机!