我现在需要通过ldap语句从AD中查出AD中记录的信息,访问的路径是 ;
LDAP://CN=CD-HR,OU=Groups,OU=Chengdu,OU=MPS,DC=monolithicpower,DC=com
他的最底层是CN=CD-HR这层了,但是CD-HR有属性,属性中有一个member,该member记录了这个CD-HR组下的所有成员,我怎样才能将member中的所有成员查出来啦?
大概语句如下:
select 
mail,
department
from LDAP://CN=CD-HR,OU=Groups,OU=Chengdu,OU=MPS,DC=monolithicpower,DC=com
where mail="*"

解决方案 »

  1.   

    用这个System.DirectoryServices.DirectoryEntry
      

  2.   

    我这有个ldap验证的web service需要的话我发你邮件
      

  3.   

    声明一下.windows 2003的AD 活动目录服务的资料并不是存在数据库里,只是windows 2003的一个服务而已开通好服务,下面的机子才可以加入域服务器.
    要获得域服务器上的数据用一个接口程序调用
    VS开发工具有集成的类DirectoryServices.DirectorySearcher,DirectoryServices.DirectoryEntry
      

  4.   

    sp_addlinkedserver @server = 'linkedserver',@srvproduct = 'ADSI', @provider = 'ADSDSOObject', @datasrc = 'DC'openquery(linkedserver,'select member from "LDAP://CN=CD-HR,OU=Groups,OU=Chengdu,OU=MPS,DC=monolithicpower,DC=com"')
      

  5.   

    呵呵,谢谢各位关注了,楼上正解,但是没达到我想要的东西,我目的很简单哈,就是写一个ldap的语句,抓到CD-HR的属性成员中的所有值,因为在AD中最底层的表示已经是CN了,想要抓到该CN的属性成员值不知道怎么写ldap语句啦,呵呵(声明下,我是男的,不是MM)
      

  6.   

    openquery(linkedserver,'select member from "LDAP://CN=CD-HR,OU=Groups,OU=Chengdu,OU=MPS,DC=monolithicpower,DC=com"')
      

  7.   

    谢谢楼上的朋友回答,我试过这样写ldap语句,但是member查出来是没有数据的,而事实是我的每个cd-hr组下是有成员的,有member,感觉很奇怪
      

  8.   

    member 是多值属性,无法在结果集中返回。
    执行 SQL 分布式查询使用 ADSI:http://support.microsoft.com/kb/299410
      

  9.   

    select * from LDAP://memberof=CN=CD-HR,OU=Groups,OU=Chengdu,OU=MPS,DC=monolithicpower,DC=com 
    where mail="*"