Skip to Content

Recently my client asked me to run a promotion. They were moving code from development to QA and that too in a newly configured server.

The promotion contained certain SQL scripts which queries the Active directory. But since there were no ADSI linked server created and configured, I had to create it.

Sometimes we would need to query the Active directory using SQL query.

The script below will create a linked server and and use OPENQUERY to retrieve data.

1. Create the linked Server –  to create a linked server

          EXEC sp_addlinkedserver @server = ‘ADSI’, @srvproduct = ‘Active Directory Services 2.5’, @provider = ‘ADSDSOObject’, @datasrc = ‘adsdatasource’

2. Add a security Context – create a security context

          EXEC sp_addlinkedsrvlogin @rmtsrvname = ‘ADSI’, @useself = ‘False’, @locallogin = ‘sa’, @rmtuser = ‘<DOMAIN>\<username>’, @rmtpassword = ‘<password>’

3. Configure the server to allow OPENQUERY functions

–Configure the server to allow OPENQUERY functions

sp_configure ‘show advanced options’, 1
reconfigure with override

sp_configure ‘Ad Hoc Distributed Queries’, 1
reconfigure

   

We can now access Active Directory using a query such as this:

SELECT * FROM OpenQuery(ADSI, ‘SELECT * FROM ”LDAP://DC=<DOMAIN>,DC=com” WHERE objectCategory=”User” ‘)



    


To report this post you need to login first.

Be the first to leave a comment

You must be Logged on to comment or reply to a post.

Leave a Reply