Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jul 1st, 2012  |  syntax: None  |  size: 1.27 KB  |  hits: 21  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Get description from active directory
  2. CREATE TABLE ##Groups ( CN VARCHAR(128), DN VARCHAR(1024), Email VARCHAR(128), ADSPath VARCHAR(1024));
  3. CREATE TABLE ##Users ( DistributionGroup VARCHAR(128), FirstName VARCHAR(50), LastName VARCHAR(50), EmailAddress VARCHAR(128));
  4.  
  5. DECLARE @sql VARCHAR(1024)
  6.  
  7. SET @sql = 'INSERT INTO ##Groups (CN, DN, Email, ADSPath) SELECT CN, distinguishedName DN, mail Email, ADSPath FROM OpenQuery(ADSI, ''<LDAP://controller.domain.com:389/DC=domain,DC=com>;(&(objectClass=Group));cn, distinguishedName, mail, ADSPath;subtree'') ORDER BY distinguishedName';
  8. EXEC(@sql);
  9.  
  10. DECLARE @CN VARCHAR(128)
  11. DECLARE @DN VARCHAR(1024)
  12.  
  13. SELECT TOP 1 @CN = CN, @DN = DN FROM ##Groups
  14.  
  15. WHILE EXISTS(SELECT DN FROM ##Groups WHERE DN > @DN)
  16. BEGIN
  17.  
  18.       SET @sql = 'INSERT INTO ##Users (DistributionGroup, Firstname, LastName, EmailAddress) SELECT '''+@CN+''' [Distribution Group], ISNULL(givenName, '''') FirstName, ISNULL(sn, '''') LastName, mail EmailAddress FROM OpenQuery(ADSI, ''<LDAP://controller.domain.com:389/DC=domain,DC=com>;(&(objectClass=User)(memberOf='+@DN+'));givenName, sn, mail;subtree'')';
  19.       EXEC(@sql)
  20.  
  21.       SELECT TOP 1 @CN = CN, @DN = DN FROM ##Groups WHERE DN > @DN
  22. END
  23.  
  24. SELECT * FROM ##Groups;
  25. SELECT * FROM ##Users;
  26.  
  27. DROP TABLE ##Groups;
  28. DROP TABLE ##Users;