使用C#中的DirectorySearcher来获得活动目录中的组织结构与用户等信息,并在展示成树形结构(附源代码)

使用C#中的DirectorySearcher来获得活动目录中的组织结构与用户等信息,并在展示成树形结构(附源代码)

对于C#来说,取得活动目录中的组织结构相对简单,因为其在System.DirectoryServices命名空间中内置了DirectorySearcher的方法,我们可以组合多种过滤方式,来达到取得活动目录中的所有信息,当然,我现在还没有找到可以得到域用户密码的方式 :)

以下是关键片段

1private static SearchResultCollection _ADHelper(string domainADsPath, string username, string password, string schemaClassNameToSearch)
 2        {
 3            DirectorySearcher searcher = new DirectorySearcher();
 4
 5            searcher.SearchRoot = new DirectoryEntry(domainADsPath,
 6                                                        username, password);
 7            searcher.Filter = "(objectClass=" + schemaClassNameToSearch + ")";
 8
 9            searcher.SearchScope = SearchScope.Subtree;
10            searcher.Sort = new SortOption("name",
11                                                SortDirection.Ascending);
12            // If there is a large set to be return ser page size for a paged search
13            searcher.PageSize = 512;
14
15            searcher.PropertiesToLoad.AddRange(new string[] { "name", "Path", "displayname", "samaccountname", "mail" });
16
17            SearchResultCollection results = searcher.FindAll();
18            return results;
19        }

参数domainADsPath是活动目录的域名,使用类似"LDAP://域名"的形式
参数schemaClassNameToSearch是过滤条件,基本上有以下三个选择,更多选择请参考微软的网站
            1.   objectClass=organizationalUnit   查询条件是所有的组织单元(OU)     
            2.   objectClass=group   查询条件是所有的组(GROUP)     
            3.   objectClass=user   查询条件是所有的用户(USER)

searcher.PropertiesToLoad.AddRange(new string[] { "name", "Path", "displayname", "samaccountname", "mail" });
这一句是指对范围内的属性进行加载,以提高效率。

效果图

点击这里下载源代码

时间: 2024-08-12 08:42:29

使用C#中的DirectorySearcher来获得活动目录中的组织结构与用户等信息,并在展示成树形结构(附源代码)的相关文章

在活动目录中,转移和占用操作主机角色(转移)

如何转移操作主机 操作主机是Active Directory中的特殊对象,具备操作主机角色的域控制器担任着活动目录核心功能,如果操作主机不可用,整个活动目录都会出现异常,甚至崩溃. 操作主机角色的唯一性决定了不是任意一台域控制器都能管理整个域,当一台承担着操作主机角色的域控制器需要停机维护,就需要将主机角色转移到另一台正常运行的域控制器上:但是当承担操作主机角色的域控制器突然崩溃,无法正常运行,就需要使用强制手段占用操作主机,它被称为强制转移 案例:某公司采用Windows Server 200

列举活动目录中的管理工具

◆ 活动目录用户和计算机--- ADUC--dsa.msc     用来管理当前域中的对象,委派域的管理权限,提升域的功能级别 ◆ 活动目录域和信任关系--ADDT---domain.msc     用来查看当前林的逻辑结构,提升域和林的功能级别,新建.编辑和查看信任关系, ◆ 活动目录站点和服务---ADSS---dssite.msc     用来查看当前林的物理结构,创建.编辑和删除站点信息,设置或者取消GC ◆ 组策略管理控制台--GPMC---gpmc.msc (在Windows2003

在活动目录中,转移和占用操作主机角色(占用)

如何占用操作主机 操作主机是ActiveDirectory中的特殊对象,具备操作主机角色的域控制器担任着活动目录核心功能,如果操作主机不可用,整个活动目录都会出现异常,甚至崩溃. 操作主机角色的唯一性决定了不是任意一台域控制器都能管理整个域,当一台承担着操作主机角色的域控制器需要停机维护,就需要将主机角色转移到另一台正常运行的域控制器上:但是当承担操作主机角色的域控制器突然崩溃,无法正常运行,就需要使用强制手段占用操作主机,它被称为强制转移    案例:某公司网络采用Windows server

活动目录中的Get-Aduser这个cmdlets调用的是账户的哪个属性?

get-aduser是活动目录管理最常用的cmdlets,但是在日常应用的时候我们常常无法调取到某个账户.这个问题原因最常见的就是重名.首先要理清一个问题Get-aduser+账户不等于AD管理器中的搜索功能(搜索必须使用 –filter 参数).但是get-aduser到底应该输入账户的那个属性才能准确get到这个用户呢? 我们举一个例子: 在组织里面有两个叫zhangpeng的账户,下图是其中之一,在这里还看不出: 从下面这个图中可以清楚的看出来,其实调用的是账户的samaccountnam

活动目录中的管理工具

● 活动目录用户和计算机--- ADUC--dsa.msc    用来管理当前域中的对象,委派域的管理权限,提升域的功能级别●活动目录域和信任关系--ADDT---domain.msc    用来查看当前林的逻辑结构,提升域和林的功能级别,新建.编辑和查看信任关系● 活动目录站点和服务---ADSS---dssite.msc    用来查看当前林的物理结构,创建.编辑和删除站点信息,设置或者取消GC● 组策略管理控制台--GPMC---gpmc.msc (在Windows2003需要手工下载安装

自动化管理活动目录中对象

     好久没更新了,最近在搞些linux方面的事情,powershell也就耽误了,更新个整理活动目录的脚本,供各位参考指正. 需求: 一.加域的计算机和人员要移动到对应分公司的OU(每个OU组策略有区别) 二.删除密码过期超过一年的用户 三.删除禁用账户 关键字:move-adobject 实现:windows计划任务定期执行 后期维护:定期看一下 执行返回值即可 <# .NOTES =====================================================

在共享文件夹中解压到linux其他目录中,千万注意软连接的问题

这几天一直在练习驱动,搭建一个简单的交叉编译环境,交叉编译工具链和开发板的源码都导进去linux的目录中,并且解压,但是执行一个简单的交叉编译命令总会出现一个奇怪的错误提示: as:unrecongnized option 'mcpu=XXX'; 百思不得其解,后来经过一个实验室的师兄的提示,终于明白了.这里有一个背景需要交代一下: 我是在windows下面的unbuntu虚拟机中进行的驱动开发练习. 首先,我建立了一个共享文件夹,将交叉编译链的压缩文件拷贝进去,这里我的压缩文件的名字为XXX.

windows 2008 活动目录实施方案

Windows Server 2008活动目录实施方案 1.     用户需求 要求 一:活动目录高可用,实现容灾 二:客户机成功加入域,限制财务的用户只能登陆到财务的客户机,每周一到周五实现财务部的用户能够成功登陆,其他时间不允许登陆. 三:组策略限制如下: 1. 限制所有员工桌面背景为1.jpg,为所有用户设置账户锁定策略,输错 两次密码锁定. 2. 限制行政部员工桌面背景为2.jpg 3. 限制销售部员工的开始菜单中删除运行图标,删除桌面的计算机图标        4.为所有客户端自动安装

CAS连接微软活动目录的配置方法

原文地址:http://blog.csdn.net/baozhengw/article/details/3857669在微软活动目录中建立一个用户节点,帐号为wangzhenyu,cn为zhenyu wang,并设置登陆口令,这时候在cas中用wangzhenyu的帐号登陆失败,解决办法是:安装apache directory studio,建立一个到微软活动目录的连接,连接时使用微软活动目录所在的windows2003服务器的超级用户帐号,连接成功后,在LDAP树中找从ou=nsc下找i到CN