首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用C#获取Active directory中的部门列表

如何使用C#获取Active directory中的部门列表
EN

Stack Overflow用户
提问于 2009-06-28 23:30:23
回答 1查看 8.7K关注 0票数 1

查询Active directory以获取部门名称字符串列表的最简单方法是什么?例如:“财务”、“市场营销”、"IT“等。我的案例是一个拥有3000多个用户的企业的活动目录。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-06-28 23:49:43

假设您只想获得返回了Department属性的对象列表,那么可以在System.DirectoryServices名称空间中使用DirectorySearcher。

那么你的过滤器应该是这样的:

代码语言:javascript
复制
ds.Filter = "(objectClass=user)";

然后,您可以告诉搜索者只加载部门属性:

代码语言:javascript
复制
ds.PropertiesToLoad.Add("department");

然后枚举结果集:

代码语言:javascript
复制
SearchResultCollection results = ds.FindAll();

然后,将每个部门属性添加到字典中,以获取所有唯一值

代码语言:javascript
复制
 foreach (SearchResult result in results)
 {
   string dept = String.Empty;
   DirectoryEntry de = result.GetDirectoryEntry();
   if (de.Properties.Contains("department"))
   {
     dept = de.Properties["department"][0].ToString();
     if (!dict.ContainsKey(dept))
     {
       dict.Add(result.Properties["department"][0].ToString();
     }
  }
}

或者,还有命令行工具可以为您提供此信息,如dsquery或adfind。

代码语言:javascript
复制
adfind -default -f "(objectclass=user)" department -list | sort

将为您提供所有用户的部门属性的排序列表。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1056038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档