none
Lista DE usuários separada por "|" RRS feed

  • Pergunta

  • Pessoal

    Fiz um script abaixo, mas o resultado está ficando em branco.
    O resultado deveria ser uma lista de todos os usuários do AD com algumas informações adicionais separadas por "|".

    O resultado deveria ser nesta ordem:  login | Nome | e-mail | Setor | Ramal | Função
    Vejam abaixo:


    mgraca|Maria Graca Feitosa|mgraca@empresa.com.br|sala 12|8279|Estoque|Coordenador
    elsouza|Elza de Souza|elsouza@empresa|sala 4|8716|Financeiro|Aux. Financeiro


    O script que to tentando criar essa lista segue abaixo, mas o resultado fica em branco:
    Alguem poderia me ajudar ?

    ###############################################

    On Error Resume Next
     
    Set objGroup = GetObject _
      ("LDAP://CN=Usuarios_do_domini,CN=Users,DC=empresa,DC=com,DC=br")
    objGroup.GetInfo

    Wscript.Echo

    For Each objUser in objGroup.Members
        Wscript.Echo objUser.sAMAccountName & "|" & objUser.DisplayName & "|" & objUser.mail & "|" & objUser.physicalDeliveryOfficeName & "|" & objUser.TelephoneNumber & "|" & objUser.department & "|" & objUser.title
    Next

    ##################################################

    Obrigado

    quarta-feira, 24 de setembro de 2008 17:18

Respostas

  • Conseguí o script.
    Segue abaixo para quem quiser aproveitar.

    O único porém que ainda nao descobrí, é excluir da lista os usuários desabilitados, pois ele pega todos os usuários daquela OU pra dentro, habilitados ou não.





    Dim oContainer
    Dim OutPutFile
    Dim FileSystem
    Set FileSystem = WScript.CreateObject("Scripting.FileSystemObject")
    Set OutPutFile = FileSystem.CreateTextFile("db_carga_ldap_bsb.txt", True)
    Set oContainer = GetObject("LDAP://OU=Filial RJ,DC=domain,DC=com,DC=br")
     
    EnumerateUsers oContainer
     
    OutPutFile.Close
    Set FileSystem = Nothing
    Set oContainer = Nothing
    WScript.Quit(0)
     
    Sub EnumerateUsers(oCont)
         Dim oUser, bUser
         For Each oUser In oCont
              bUser = False
              Select Case LCase(oUser.Class)
                   Case "user"
                   bUser = True
                                       
           OutPutFile.Write oUser.sAMAccountName & "|"
           OutPutFile.Write oUser.displayName & "|"
           OutPutFile.Write oUser.mail & "|"
           OutPutFile.Write oUser.physicalDeliveryOfficeName &  "|"
           OutPutFile.Write oUser.telephoneNumber & "|"
           OutPutFile.Write oUser.department & "|"
           OutPutFile.Write oUser.title
        
        Case "organizationalunit", "container"
            EnumerateUsers oUser
        End Select
        If bUser Then
            OutPutFile.WriteLine
        End If
    Next
     
    End Sub

    quinta-feira, 25 de setembro de 2008 20:34

Todas as Respostas

  • Sucrilhos...

     

    checa se o dn do grupo ta certo...

     

    aqui funcionou narmal  ...

    Code Snippet

     

    ("LDAP://cn=domain users,CN=Users,DC=meu,DC=local")

     

     

     

     

     

    testa ae
    quarta-feira, 24 de setembro de 2008 21:38
    Moderador
  • Felipe, o dn está certo.

    O estranho é que o script funciona se eu apontar para outros grupos dentro do mesmo dn.

    Quando abro a lista de "members"  do "domain admin", todos os membros estão na cor branca.

     

    Tem como mudar o script de forma que busque todos os usuários do dominio sem apontar o grupo (domain admin) ??

    Digo, que busque pelo dominio e saia no formato que especifiquei ?

     

    Obrigado

    quinta-feira, 25 de setembro de 2008 13:54
  • Conseguí o script.
    Segue abaixo para quem quiser aproveitar.

    O único porém que ainda nao descobrí, é excluir da lista os usuários desabilitados, pois ele pega todos os usuários daquela OU pra dentro, habilitados ou não.





    Dim oContainer
    Dim OutPutFile
    Dim FileSystem
    Set FileSystem = WScript.CreateObject("Scripting.FileSystemObject")
    Set OutPutFile = FileSystem.CreateTextFile("db_carga_ldap_bsb.txt", True)
    Set oContainer = GetObject("LDAP://OU=Filial RJ,DC=domain,DC=com,DC=br")
     
    EnumerateUsers oContainer
     
    OutPutFile.Close
    Set FileSystem = Nothing
    Set oContainer = Nothing
    WScript.Quit(0)
     
    Sub EnumerateUsers(oCont)
         Dim oUser, bUser
         For Each oUser In oCont
              bUser = False
              Select Case LCase(oUser.Class)
                   Case "user"
                   bUser = True
                                       
           OutPutFile.Write oUser.sAMAccountName & "|"
           OutPutFile.Write oUser.displayName & "|"
           OutPutFile.Write oUser.mail & "|"
           OutPutFile.Write oUser.physicalDeliveryOfficeName &  "|"
           OutPutFile.Write oUser.telephoneNumber & "|"
           OutPutFile.Write oUser.department & "|"
           OutPutFile.Write oUser.title
        
        Case "organizationalunit", "container"
            EnumerateUsers oUser
        End Select
        If bUser Then
            OutPutFile.WriteLine
        End If
    Next
     
    End Sub

    quinta-feira, 25 de setembro de 2008 20:34
  • Sucrilho...

    o seu dn estava errado, não adianta va apontar uma coisa genérica..

    o seu atual funciona pq os usuarios estão dentro da OU Filial RJ...

    o dn do domain admins é "cn=domain admins,cn=builtin,dc=domain,dc=com" , por isso que não estava funcionando..

    abs

    quinta-feira, 25 de setembro de 2008 21:29
    Moderador