none
Mover computadores. RRS feed

  • Pergunta

  • Bom dia,

    Tenho uma lista (.txt) de nomes de computadores, com essa lista é possivel fazer algum script para que leia e jogue para a OU que eu determinar?

    Estou separando computadores que são XP, 7, 2003, como falei, essa lista eu tenho, só preciso mover via script, se não terá que manualmente mesmo.

     

    Obrigado desde já.


    Rafael S. AMARAL
    segunda-feira, 30 de janeiro de 2012 12:34

Respostas

  • Boa Tarde galera,

     

    Consegui, quem precisar um dia, está ai o script.

    Através de uma lista de computadores, consegui mover para a OU que desejo.

     

    on error resume next
     
    CONST ForReading = 1
    Const ForAppending = 8
     
    Set oFS = CreateObject("Scripting.FileSystemObject")
    Set oTS = oFS.OpenTextFile("oldcomputers.txt",ForReading)
    set oLS = oFS.OpenTextFile("movecomputerlog.txt",ForAppending,True)
    Set objRootDSE = GetObject("LDAP://RootDSE")
    strDNSDomain = objRootDSE.Get("defaultNamingContext")
    Set objCommand = CreateObject("ADODB.Command")
    Set objConnection = CreateObject("ADODB.Connection")
    objConnection.Provider = "ADsDSOObject"
    objConnection.Open "Active Directory Provider"
    objCommand.ActiveConnection = objConnection
     
    'Modify the following line to desired OU
    Set objNewOU = GetObject("LDAP://OU=Computadores,dc=xxx,dc=xxx,dc=xxxx")
    Do Until oTS.AtEndOfStream
            strComputer = oTS.ReadLine
            strQuery = _
              "<LDAP://" & strDNSDomain & ">;(&(objectCategory=computer)(cn=" & strComputer & "));adspath,cn;subtree"
            objCommand.CommandText = strQuery
            Set RS = objCommand.Execute
            While not RS.EOF
                    strPath = RS.Fields("adspath")
                    strName = "CN=" & RS.Fields("cn")
                    oLS.Writeline(strPath)
                    Set objMoveComputer = objNewOU.MoveHere(strPath,strName)
                    RS.MoveNext
            Wend
    Loop


    Rafael S. AMARAL
    • Marcado como Resposta Rafael S. AMARAL segunda-feira, 30 de janeiro de 2012 16:09
    segunda-feira, 30 de janeiro de 2012 16:09