none
Relatorio AD RRS feed

  • Pergunta

  • Boa tarde,
    Queria saber e possivel extrair do AD um relatorio da seguinte forma:

    Usuario A tem acesso ao grupo Administrator
    Usuario B tem acesso ao grupo Oper. Backup
    E tambem listar todos os usuarios pelas OUs.
    Benedito Jr
    quarta-feira, 23 de setembro de 2009 17:53

Respostas

  • Olá,

    Dá uma olhada no script abaixo:

    Option Explicit

     

    Dim objDSE, strDefaultDN, strDN, objContainer, objChild,Userobj,List,GroupObj,FileSystem,OutPutFile

     

    Set FileSystem = WScript.CreateObject("Scripting.FileSystemObject")

    Set OutPutFile = FileSystem.CreateTextFile("Lista_de_Grupos.txt", True)

    Set objDSE = GetObject("LDAP://rootDSE")

    strDefaultDN = "CN=Users," & objDSE.Get("defaultNamingContext")

     

    strDN =     InputBox("Coloque o Caminho da OU" & _
        vbCrLf & "(Exemplo: cn=users,dc=contoso,dc=local)", , "cn=users,dc=contoso,dc=local")

     

    If strDN = "" Then WScript.Quit(1)        '

     

    Set objContainer = GetObject("LDAP://" & strDN)

     

    objContainer.Filter = Array("user")

     

    For Each objChild In objContainer

        set UserObj = GetObject("LDAP://" & objChild.Name & "," & strDN)

        if err.number<>0 then

             if ChkEngine = "cscript.exe" then



              wscript.quit

           else

              wscript.quit

           end if

        end if

     

        List= "Grupos do usuário: " & UserObj.cn & " (" & objChild.Name & ") in " & UCASE(strDN) & VBCRLF & VBCRLF

     

        For Each GroupObj In UserObj.Groups

           List = List & GroupObj.Name  & VBCRLF

        Next



     

            OutPutFile.WriteLine List

        OutPutFile.WriteLine "===================================================="

    Next

     

    OutPutFile.Close

    wscript.quit

     

    Function ChkEngine()

     

    ON ERROR RESUME NEXT

     

    strEngine=Wscript.FullName

     

    if Err.Number <>0 then

    wscript.echo "Error!"

    wscript.echo "Erro (" & Err.Number & ") Descrição: " & Err.Description

    wscript.quit

    end if

     

    PosX=InStrRev(strEngine,"\",-1,vbTextCompare)

    ChkEngine=Mid(strEngine,PosX+1)

     

    End Function




    Até mais,

    Jesiel

    Obs.: Se útil, classifique




    quarta-feira, 23 de setembro de 2009 18:35

Todas as Respostas

  • Olá,

    Dá uma olhada no script abaixo:

    Option Explicit

     

    Dim objDSE, strDefaultDN, strDN, objContainer, objChild,Userobj,List,GroupObj,FileSystem,OutPutFile

     

    Set FileSystem = WScript.CreateObject("Scripting.FileSystemObject")

    Set OutPutFile = FileSystem.CreateTextFile("Lista_de_Grupos.txt", True)

    Set objDSE = GetObject("LDAP://rootDSE")

    strDefaultDN = "CN=Users," & objDSE.Get("defaultNamingContext")

     

    strDN =     InputBox("Coloque o Caminho da OU" & _
        vbCrLf & "(Exemplo: cn=users,dc=contoso,dc=local)", , "cn=users,dc=contoso,dc=local")

     

    If strDN = "" Then WScript.Quit(1)        '

     

    Set objContainer = GetObject("LDAP://" & strDN)

     

    objContainer.Filter = Array("user")

     

    For Each objChild In objContainer

        set UserObj = GetObject("LDAP://" & objChild.Name & "," & strDN)

        if err.number<>0 then

             if ChkEngine = "cscript.exe" then



              wscript.quit

           else

              wscript.quit

           end if

        end if

     

        List= "Grupos do usuário: " & UserObj.cn & " (" & objChild.Name & ") in " & UCASE(strDN) & VBCRLF & VBCRLF

     

        For Each GroupObj In UserObj.Groups

           List = List & GroupObj.Name  & VBCRLF

        Next



     

            OutPutFile.WriteLine List

        OutPutFile.WriteLine "===================================================="

    Next

     

    OutPutFile.Close

    wscript.quit

     

    Function ChkEngine()

     

    ON ERROR RESUME NEXT

     

    strEngine=Wscript.FullName

     

    if Err.Number <>0 then

    wscript.echo "Error!"

    wscript.echo "Erro (" & Err.Number & ") Descrição: " & Err.Description

    wscript.quit

    end if

     

    PosX=InStrRev(strEngine,"\",-1,vbTextCompare)

    ChkEngine=Mid(strEngine,PosX+1)

     

    End Function




    Até mais,

    Jesiel

    Obs.: Se útil, classifique




    quarta-feira, 23 de setembro de 2009 18:35
  • Bom dia Jesser ,

    Esta aparecendo um erro para mim linha28 caratec 1, o que pode ser ?

    Benedito Jr
    quinta-feira, 24 de setembro de 2009 12:57
  • Olá,

    Como você está colocando quando pede o caminho??

    Se for no container padrão (users) utilize:

    cn=users,dc=seudominio,dc=com,dc=br


    Seu usuário tem que ter permissão para acessar o AD.

    Até mais,

    Jesiel

    Obs.: Se útil, classifique


    quinta-feira, 24 de setembro de 2009 15:14