如何提取Active Directory信息(用户名,名字,姓氏)并使用结果填充SQL表?
非常感谢
斯科特
答案 0 :(得分:6)
我们为 LARGE AD环境执行此操作的方式:
答案 1 :(得分:4)
如果您只是在SQL中需要它,我正在使用下面的代码
INSERT...
SELECT A.SAMAccountName, A.Mail, A.displayName FROM
(SELECT * FROM OpenQuery(ADSI, 'SELECT title, displayName, sAMAccountName, givenName, telephoneNumber, facsimileTelephoneNumber, sn, userAccountControl,mail
FROM ''LDAP://domain.ro/DC=domain,DC=ro'' where objectClass = ''User''')
WHERE (sn is not null) and (givenName is not null) and (mail is not null) )A
其中ADSI是基于此创建的链接服务器: http://msdn2.microsoft.com/en-us/library/aa772380(VS.85).aspx
答案 2 :(得分:3)
如果您使用的是.NET 3.5,我会使用新的System.DirectoryServices.AccountManagement
命名空间。
在这里了解它:
Managing Directory Security Principals in the .NET Framework 3.5
基本上,您需要设置一个容器(PrincipalContext
),然后枚举您要处理的用户。循环遍历这些并提取所需的信息,并将其提供给SQL Server。
答案 3 :(得分:1)
有不同的方法可以做到这一点。我使用PHP从Active Directory中获取数据。请查看PHP文档中的“Lightweight Directory Access Protocol”一章。使用PHP填充数据库也很容易,例如MySQL或Microsoft SQL Server。