none
Script para extrair para um arquido informações do AD como usuarios e data do ultimo login. RRS feed

  • Pergunta

  • Estou precisando de um script que busque no AD e grave em um arquivo informações de usuario e data do ultimo login, se poder ajudar eu agradeço muito.

    Grato.
    sexta-feira, 7 de agosto de 2009 19:39

Respostas

  • Olá,

    Verifique o script abaixo:


    Const ADS_SCOPE_SUBTREE = 2

    Set FileSystem = WScript.CreateObject("Scripting.FileSystemObject")
    Set OutPutFile = FileSystem.CreateTextFile("Lista_de_Usuarios.csv", True)

    Set objConnection = CreateObject("ADODB.Connection")
    Set objCommand =   CreateObject("ADODB.Command")
    objConnection.Provider = "ADsDSOObject"
    objConnection.Open "Active Directory Provider"
    Set objCommand.ActiveConnection = objConnection

    objCommand.Properties("Page Size") = 1000
    objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE

    objCommand.CommandText = _
        "SELECT name,description,distinguishedname,instanceType FROM 'LDAP://dc=contoso,dc=msft' " & _
            "WHERE objectCategory='user'" 

    Set objRecordSet = objCommand.Execute

    objRecordSet.MoveFirst

    Do Until objRecordSet.EOF
        nome = objRecordSet.Fields("name").Value
        descricao = objRecordSet.Fields("description").Value
        cn = objRecordSet.Fields("distinguishedname").Value
        Set objUser = GetObject("LDAP://" & cn)
        Set objLastLogon = objUser.Get("lastLogon")
        intLastLogonTime = objLastLogon.HighPart * (2^32) + objLastLogon.LowPart
        intLastLogonTime = intLastLogonTime / (60 * 10000000)
        intLastLogonTime = intLastLogonTime / 1440

        OutPutFile.WriteLine nome & ";" & cn & ";" & int(intLastLogonTime + #1/1/1601#)
        objRecordSet.MoveNext
    Loop



    Até mais,

    Jesiel

    Obs.: Se útil, classifique
    segunda-feira, 10 de agosto de 2009 12:38