Faz tempo desde meu ultimo post por aqui. O de hoje é rápido, ainda não cheguei a aplica-lo em um caso real mas por curiosidade procurei saber se seria possível. Já pensou em fazer um select nos usuários do AD como você faz no SQL Server? Pois é, conseguimos tal efeito ao utilizar o SQL Server com um linked server para nosso servidor de AD. Veja abaixo.
Criamos o Linked Server de nome ADSI (ou qual nome desejar) usando o ADSDSOObject – Microsoft OLE DB Provider for Microsoft Active Directory Service.
EXEC master.dbo.sp_addlinkedserver @server = N'ADSI' , @srvproduct=N'Active Directory Services' , @provider=N'ADsDSOObject' , @datasrc=N'server_name.your_domain.com'
A execução dos comandos será realizada utilizado o contexto do login do usuário em contexto atual. Ou você pode mudar o comportamento deste criando um login a ser utilizado, como demonstrado abaixo.
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'ADSI' , @useself=N'False' , @locallogin=NULL , @rmtuser=N'your_domain\domain_user' , @rmtpassword='********'
Então o select. Para saber sobre as demais colunas que você pode obter de uma olhada em MSDN – All Attributes Active Directory.
SELECT * FROM OPENQUERY ( ADSI, 'SELECT distinguishedName FROM ''LDAP://DC=your_domain,DC=com''' )
Links uteis:
ADSDSOObject – Microsoft OLE DB Provider for Microsoft Active Directory Service