none
Script de criação de Usuários no AD RRS feed

  • Pergunta

  • Olá, bom dia.

     

     Bom, o cenário é o seguinte:

    Tenho uma lista com cerca de 2000 usuários, nessa lista possuo 3 informações: Nome completo do usuário, CPF e Número de Matrícula. Preciso que os Números de Matrículas sejam usados como login e o CPF como senha, porém quando executo meu script ele da um erro e importa apenas 1 usuário (neste caso o "Fulano Pereira Moya").

     

    Gostaria que o programa importasse todos os usuários.
    Segue Print do erro e da lista.

     

     

     

     

    O SCRIPT QUE ESTOU USANDO É O SEGUINTE:

     


    ' UserSpreadsheet .vbs

    ' Sample VBScript to create User accounts from a spreadsheet

    ' Author Guy Thomas http://computerperformance.co.uk/

    ' Version 4.6 - June 2005

    ' ------------------------------------------------------'

    Option Explicit

    Dim objRootLDAP, objContainer, objUser, objShell

    Dim objExcel, objSpread, intRow

    Dim strUser, strOU, strSheet

    Dim strCN, strSam, strFirst, strLast, strPWD

     

    ' -------------------------------------------------------------'

    ' Important change OU= and strSheet to reflect your domain

    ' -------------------------------------------------------------'

     

    strOU = "OU=Temp ," ' Note the comma

    strSheet = "c:\Scripts2\script3.xls"

     

    ' Bind to Active Directory, Users container.

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

    Set objContainer = GetObject("LDAP://" & strOU & _

    objRootLDAP.Get("defaultNamingContext"))

     

    ' Open the Excel spreadsheet

    Set objExcel = CreateObject("Excel.Application")

    Set objSpread = objExcel.Workbooks.Open(strSheet)

    intRow = 3 'Row 1 often contains headings

     

    ' Here is the 'DO...Loop' that cycles through the cells

    ' Note intRow, x must correspond to the column in strSheet

    Do Until objExcel.Cells(intRow,1).Value = ""

       strSam = Trim(objExcel.Cells(intRow, 1).Value)

       strCN = Trim(objExcel.Cells(intRow, 2).Value)

       strFirst = Trim(objExcel.Cells(intRow, 3).Value)

       strLast = Trim(objExcel.Cells(intRow, 4).Value)

       strPWD = Trim(objExcel.Cells(intRow, 5).Value)

     

       ' Build the actual User from data in strSheet.

       Set objUser = objContainer.Create("User", "cn=" & strCN)

       objUser.sAMAccountName = strSam

       objUser.givenName = strFirst

       objUser.sn = strLast

       objUser.SetInfo

     

       ' Separate section to enable account with its password

       objUser.userAccountControl = 512

       objUser.pwdLastSet = 0

       objUser.SetPassword strPWD

       objUser.SetInfo

     

    'On Error GoTo TrataErro

    On Error Resume Next

     

    intRow = intRow + 1

    Loop

    objExcel.Quit

     

    WScript.Quit 

     

    --------------------------

     OBS. O Primeiro e Segundo nome são desnecessários, preciso apenas do nome completo, matrícula(login) e cpf(senha).

    SÓ PRECISO PASSAR A LISTA COMPLETA PARA O AD.

     

    Conto com a ajuda de vocês.

     

    Abraço. Desde já agradeço.

    Att, Marcos V. Nunes 

    • Movido Paul Haro quarta-feira, 4 de janeiro de 2012 14:53 Fórum incorreto (De:Windows Server 2008)
    quarta-feira, 4 de janeiro de 2012 14:15

Respostas

  • Seu dominio tem algum requisito de Senha?

    Se o dominio requer complexidade na senha esta deverá ter pelo menos 3 entre os 4 tipos de caracteres (maiusculas,minusculas,numeros,simbolos). Leve em conta também o tamanho da senha.

     


    Fábio de Paula Junior
    • Marcado como Resposta Marcos V. Nunes quinta-feira, 5 de janeiro de 2012 15:51
    quinta-feira, 5 de janeiro de 2012 14:36
    Moderador

Todas as Respostas

  • Marcos,

    Pode indicar qual é o código da linha de número 48 no seu script?

    Para saber o numero da linha abra seu script no bloco de notas posicione o cursor em alguma linha e aperte ctrl+G (quebra automatica de linha deve estar desabilitada), será indicado o número da linha que você está.


    Fábio de Paula Junior
    quarta-feira, 4 de janeiro de 2012 22:41
    Moderador
  • Olá Fabio, bom dia.

    A linha 48 é:
       objUser.SetPassword strPWD

    O Script está importando, mas só o primeiro usuário. Mesmo com esse erro.

    Acho que tem que criar algum loop, mas não tenho conhecimento pra fazer isto, peguei esse script aqui no fórum mesmo. Se alguém conhecer algum que me atenda, por favor compartilhe.

     

    Abraço.

    quinta-feira, 5 de janeiro de 2012 13:20
  • Seu dominio tem algum requisito de Senha?

    Se o dominio requer complexidade na senha esta deverá ter pelo menos 3 entre os 4 tipos de caracteres (maiusculas,minusculas,numeros,simbolos). Leve em conta também o tamanho da senha.

     


    Fábio de Paula Junior
    • Marcado como Resposta Marcos V. Nunes quinta-feira, 5 de janeiro de 2012 15:51
    quinta-feira, 5 de janeiro de 2012 14:36
    Moderador
  • Boa Fabio,
     Era isso mesmo, fiz as alterações na GPO e funcionou perfeitamente.
    Muito obrigado, não sabe o grande favor que me fez.

    Abraço. 
    quinta-feira, 5 de janeiro de 2012 15:53
  • Boa Fabio,
     Era isso mesmo, fiz as alterações na GPO e funcionou perfeitamente.
    Muito obrigado, não sabe o grande favor que me fez.

    Abraço. 

    Boa tarde Marcos,

     

    Teria como disponibilizar o modelo do xls que vc está utilizando?

    Valeu!


    Bruno.
    segunda-feira, 9 de janeiro de 2012 17:40
  • Olá, boa tarde.

     http://www.megaupload.com/?d=QRGR5CM3

    Link para download do xls como exemplo.



    Att,

    Marcos V. Nunes 

    segunda-feira, 9 de janeiro de 2012 19:50
  • Olá, boa tarde.

     http://www.megaupload.com/?d=QRGR5CM3

    Link para download do xls como exemplo.



    Att,

    Marcos V. Nunes 

    Obrigado!

    Bruno.
    segunda-feira, 9 de janeiro de 2012 20:17