我在服务器上有一个AD。 例如,这是我的Strukture
- A
- >彼得
--- B
---->塞布丽娜
---- BA
------>约翰
---- BAA
-------->弗兰克
---- BB
------>迈克尔
- C
我想以B开头循环浏览这些组并仅获取用户。 在这个exaple中,我应该有以下用户John,Frank,Michael,Sabrina。 我可以使用过滤器吗?
答案 0 :(得分:0)
找到了解决方案: 首先,我获得所有OU和嵌套OU的列表。 然后我遍历我的列表,为我的用户找到一个查找seatch。
List<string> orgUnits = new List<string>();
DirectoryEntry startingPoint = new DirectoryEntry("LDAP://OU=STARTINGOU,DC=intranet,DC=pspiess,DC=local");
DirectorySearcher searcher = new DirectorySearcher(startingPoint);
searcher.Filter = "(objectCategory=organizationalUnit)";
foreach (SearchResult res in searcher.FindAll()) {
orgUnits.Add(res.Path);
}
orgUnits.ForEach(delegate(String orgUnit) {
var entry = new DirectoryEntry(orgUnit);
var aDs = new DirectorySearcher(entry) { Filter = "(&(objectCategory=Person)(objectClass=user))" };
foreach (SearchResult aSr in aDs.FindAll()) {
//Some Code
}
});