使用C#操作WindowAD之查询AD对象

      有时候我们需要查询一个Windows域中的一些如用户,用户组等对象,或者是针对某个组织单元下的所有用户等等,对这些对象的查询,.NET为我们提供了一些非常方便的类库。对于AD对象查询,我们通常使用System.DirectoryServices命名空间下的DirectorySearcher类进行查询,例如我们要查询在ORG_PGM组织单元下的所有用户和用户组,代码如下:

 

String ladpRootPath = "LDAP://192.168.213.168/OU=ORG_PGM,DC=pk1,DC=cctv,DC=com";
DirectoryEntry ladpRoot = new DirectoryEntry(ladpRootPath);
ladpRoot.Username = "XXXXX";
ladpRoot.Password = "XXXXX";
DirectorySearcher mySearcher = new DirectorySearcher(ladpRoot);
mySearcher.Filter = "(!(objectClass=group)(objectClass=user))";
SearchResultCollection srList = mySearcher.FindAll();
foreach (SearchResult item in srList)
{
    DirectoryEntry obj= item.GetDirectoryEntry();
    Console.WriteLine("Name:" + obj.Name );
    Console.WriteLine("Type:" + obj.SchemaClassName);
}
srList.Dispose();
 

需要注意的是,此搜索方式不是搜索指定目录下的一级目录中的对象,而是搜索指定目录下的所有目录(包含当前目录和子目录)中的对象。DirectorySearcher类专门用来检索AD目录中的对象,检索条件通过Filter属性来确定,关于Filter属性的具体写法,详见 http://msdn.microsoft.com/zh-cn/library/windows/desktop/aa746475(v=vs.85).aspx

你可能感兴趣的:(查询,C#,NET.AD)