none
Consulta LDAP RRS feed

  • Pergunta

  • (&(objectCategory=group))       // Lista todos os grupos do dominio
    (&(objectCategory=user))        // Lista todos os usuario do dominio
    (&(objectCategory=computer))    // Lista todos os computadores do dominio

    Se puderem me ajudar

    So novo na area e ja pesquisei bastante sobre o assunto e não achei uma solução.

    Gostaria de concatenar essas 3 consultas ai em uma unica para utilizar no sistema itop.

    O objetivo e confrontar usuario e grupo

    a consulta em si tem de retornar o nome do usuario e a gual grupo ele pertence

    Agradeço desde já pela atenção

    terça-feira, 12 de junho de 2012 15:51

Respostas

  • CREATE PROCEDURE [dbo].[Gruposporusuario] (@LdapUsername NVARCHAR(256)) 
    AS 
      BEGIN 
          DECLARE @Query NVARCHAR(1024), 
                  @Path  NVARCHAR(1024) 

          SET @Query = 'SELECT @Path = distinguishedName         FROM OPENQUERY(ADSI, ''             SELECT distinguishedName              FROM ''''LDAP://DC=dominio,DC=com''''             WHERE                  objectClass = ''''user'''' AND                 sAMAccountName = ''''' 
                       + @LdapUsername + '''''         '')     ' 

          EXEC Sp_executesql 
            @Query, 
            N'@Path NVARCHAR(1024) OUTPUT', 
            @Path = @Path output 

          SET @Query = 'SELECT ''' + @LdapUsername 
                       + ''' Usuario, name Grupo         FROM OPENQUERY(ADSI,''             SELECT name              FROM ''''LDAP://DC=dominio,DC=com''''             WHERE                  objectClass=''''group'''' AND                 member=''''' + @Path + '''''         '')         ORDER BY name     ' 

          EXEC Sp_executesql 
            @Query 
      END 

    Para o usuário DOMINIO/antero.marques, use:

    EXEC [dbo].[Gruposporusuario] 
      'antero.marques' 


    Antero Marques

    • Sugerido como Resposta Antero Marques quinta-feira, 14 de junho de 2012 15:35
    • Marcado como Resposta cpastorini segunda-feira, 18 de junho de 2012 13:22
    quinta-feira, 14 de junho de 2012 15:35

Todas as Respostas

  • Olá cpastori,

    de uma olhada neste link

    Consulta ao Active Directory via Sql Server e ADSI


    Att.
    Lukas Baldan

    • Sugerido como Resposta Antero Marques terça-feira, 12 de junho de 2012 17:10
    • Não Sugerido como Resposta Antero Marques quinta-feira, 14 de junho de 2012 15:20
    terça-feira, 12 de junho de 2012 16:20
  • Eu criei um sistema aqui na empresa para habilitar e desabitar os usuários no AD de acordo com sua situação no RH(férias, afastamento, rescisão) e ele também atualiza as informações do AD com as informações do RH.

    Então há alguns meses atrás estava comendo AD com SQL. rs

    Você tem como trazer essas informações de usuários e grupos, mas diga-me, os usuários não podem estar em mais de um grupo ao mesmo tempo ?

    Tenho uma procedure que retorna os grupos do usuário.


    Antero Marques

    terça-feira, 12 de junho de 2012 16:56
  • Boa rapaziada a questão é a utilização do sistema iTop as consultas que o mesmo faz no ad e via ldap EX: (&(objectCategory=group)) // Lista todos os grupos do dominio Oque eu to querendo é (&(objectCategory=group)???????????) // A concatenação ou comparação de usuario e grupo que ele pertence O iTop eu listo perfeitamente os usuários a unica duvida mesmo e a concatenação ou confronto de usuario e grupo a que ele pertence pois o chamado vem o nome do usuario mas não ta vindo com o setor (grupo) a que o mesmo pertence
    • Editado cpastorini quinta-feira, 14 de junho de 2012 15:14
    quinta-feira, 14 de junho de 2012 14:57
  • CREATE PROCEDURE [dbo].[Gruposporusuario] (@LdapUsername NVARCHAR(256)) 
    AS 
      BEGIN 
          DECLARE @Query NVARCHAR(1024), 
                  @Path  NVARCHAR(1024) 

          SET @Query = 'SELECT @Path = distinguishedName         FROM OPENQUERY(ADSI, ''             SELECT distinguishedName              FROM ''''LDAP://DC=dominio,DC=com''''             WHERE                  objectClass = ''''user'''' AND                 sAMAccountName = ''''' 
                       + @LdapUsername + '''''         '')     ' 

          EXEC Sp_executesql 
            @Query, 
            N'@Path NVARCHAR(1024) OUTPUT', 
            @Path = @Path output 

          SET @Query = 'SELECT ''' + @LdapUsername 
                       + ''' Usuario, name Grupo         FROM OPENQUERY(ADSI,''             SELECT name              FROM ''''LDAP://DC=dominio,DC=com''''             WHERE                  objectClass=''''group'''' AND                 member=''''' + @Path + '''''         '')         ORDER BY name     ' 

          EXEC Sp_executesql 
            @Query 
      END 

    Para o usuário DOMINIO/antero.marques, use:

    EXEC [dbo].[Gruposporusuario] 
      'antero.marques' 


    Antero Marques

    • Sugerido como Resposta Antero Marques quinta-feira, 14 de junho de 2012 15:35
    • Marcado como Resposta cpastorini segunda-feira, 18 de junho de 2012 13:22
    quinta-feira, 14 de junho de 2012 15:35