none
Select Active directory sql server RRS feed

  • Pergunta

  • Boa tarde, estou com o seguinte problema, estou tentando fazer um select do AD de um determinado grupo de usuários, mas acho que não estou digitando o código certo, segue abaixo o código.

    SELECT * FROM OpenQuery ( 
      ADSI,  
      'SELECT sAMAccountName,createTimeStamp
      FROM  ''LDAP://RAZAOCONTANET.com.br'' 
      where   objectclass = ''user'' and memberOf = ''Razao''
      ') AS tblADSI

    Acho  que o meu problema é como estou  me referindo ao memberOf, alguém saberia me ajudar?

    Obrigado


    quarta-feira, 13 de fevereiro de 2013 11:32

Respostas

  • Bruno, eis o que você precisa...

    -- 1 - Execute este select
    SELECT Replace(ADsPath, 'LDAP://', '') ADsPath
    FROM   Openquery(ADSI, 'SELECT *
    FROM ''LDAP://DC=RAZAOCONTANET,DC=COM,dc=br'' 
    WHERE objectCategory=''group'' AND CN=''Razao'' 
    ORDER BY CN')
    
    -- 2 - Cole o valor obtido na query acima no local indicado na query abaixo
    SELECT sAMAccountName,
           createTimeStamp
    FROM   Openquery(ADSI, 'SELECT sAMAccountName,createTimeStamp
    FROM ''LDAP://DC=RAZAOCONTANET,DC=COM,dc=br'' 
    WHERE objectCategory=''person'' 
       AND objectClass=''user''  
       AND memberOf=''SUBSTITUA AQUI PELO RESULTADO OBTIDO NA QUERY ACIMA'' 
    ORDER BY CN') 
    
    

    Abçs
    quarta-feira, 13 de fevereiro de 2013 15:59

Todas as Respostas

  • Olá Bruno, tente assim...
    SELECT	*
    FROM	OPENQUERY	(
    			ADSI,
    			'SELECT		sAMAccountName,createTimeStamp,department,physicalDeliveryOfficeName
    FROM ''LDAP://RAZAOCONTANET.com.br'' WHERE objectclass = ''user'' ' ) AS tblADSI WHERE department = 'Razao'

    Abçs



    quarta-feira, 13 de fevereiro de 2013 12:58
  • Primeiramente obrigado por sua resposta Juliano, tentei o codigo acima e deu o seguinte erro:

    Mensagem 207, Nível 16, Estado 1, Linha 7
    Nome de coluna 'department' inválido.

    Algo que eu possa fazer?

    quarta-feira, 13 de fevereiro de 2013 13:44
  • Acrescentou esse campo no select do openquery?

    'SELECT sAMAccountName,createTimeStamp

    ficou

    'SELECT sAMAccountName,createTimeStamp,department,physicalDeliveryOfficeName



    Abçs


    quarta-feira, 13 de fevereiro de 2013 14:05
  • E aqui

    where   objectclass = ''user'' and memberOf = ''Razao''
    

    ficou

    where   objectclass = ''user''

    quarta-feira, 13 de fevereiro de 2013 14:07
  • O erro não aconteceu mais, mas a consulta não retornou nenhum valor, irei anexar uma print do nossos grupos para você ver se o meu "department" está correto.

    Obrigado!


    quarta-feira, 13 de fevereiro de 2013 14:52
  • Bruno, eis o que você precisa...

    -- 1 - Execute este select
    SELECT Replace(ADsPath, 'LDAP://', '') ADsPath
    FROM   Openquery(ADSI, 'SELECT *
    FROM ''LDAP://DC=RAZAOCONTANET,DC=COM,dc=br'' 
    WHERE objectCategory=''group'' AND CN=''Razao'' 
    ORDER BY CN')
    
    -- 2 - Cole o valor obtido na query acima no local indicado na query abaixo
    SELECT sAMAccountName,
           createTimeStamp
    FROM   Openquery(ADSI, 'SELECT sAMAccountName,createTimeStamp
    FROM ''LDAP://DC=RAZAOCONTANET,DC=COM,dc=br'' 
    WHERE objectCategory=''person'' 
       AND objectClass=''user''  
       AND memberOf=''SUBSTITUA AQUI PELO RESULTADO OBTIDO NA QUERY ACIMA'' 
    ORDER BY CN') 
    
    

    Abçs
    quarta-feira, 13 de fevereiro de 2013 15:59
  • Perfeito, melhor impossível!!!

    Muito Obrigado por sua atenção Juliano.

    quarta-feira, 13 de fevereiro de 2013 16:23