none
Script para criação de usuários no AD - Problemas com o nome da OU RRS feed

  • Pergunta

  • Pessoal, bom dia,
     
    Estou desenvolvendo um script que cria contas de users no ad a partir de uma planilha de excel. Um dos campos que eu informo na planilha é a OU do usuário, porém eu não informo o nome completo da ou (ex: ou=teste, dc=dominio, etc...) informo apenas o primeiro nome e concateno com o restante do nome do domínio, mas não está funcionando, ele está criando as contas na raiz do ad e não na OU que eu informei. Alguem poderia me ajudar, por favor?
    Desde já agradeço a ajuda. Segue o script abaixo:
     
     
    ' ------------------------------------------------------'
    Option Explicit
    Dim objRootLDAP, objContainer, objUser, objShell
    Dim objExcel, objSpread, intRow
    Dim strUser, strOU, strSheet
    Dim strCN, strSam, strFirst, strLast, strPWD
     
     
     
     
     

    strSheet = "C:\ADscripts\criacao\entradacriacao.xls"
     

    Set objRootLDAP = GetObject("LDAP://rootDSE")
    Set objContainer = GetObject("LDAP://" & strOU & _
       objRootLDAP.Get("defaultNamingContext"))
     

    Set objExcel = CreateObject("Excel.Application")
    Set objSpread = objExcel.Workbooks.Open(strSheet)
    intRow = 2 'Row 1 often contains headings
     
     
     
    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)
       strOU = Trim(objExcel.Cells(intRow, 6).Value)
     
       Set objUser = objContainer.Create("User", "cn=" & strCN)
       objUser.sAMAccountName = strSam
       objUser.givenName = strFirst
       objUser.sn = strLast
       objUser.SetInfo
     
       objUser.userAccountControl = 512
       objUser.pwdLastSet = 0
       objUser.SetPassword strPWD
       objUser.SetInfo
     
    intRow = intRow + 1
    Loop
    objExcel.Quit
     
    WScript.Quit
     
     
     
     
    terça-feira, 26 de fevereiro de 2008 10:56

Respostas

  • Leonardo, segu eo script, funcionando Wink

     

    Dim objRootLDAP, objContainer, objUser, objShell
    Dim objExcel, objSpread, intRow
    Dim strUser, strOU, strSheet
    Dim strCN, strSam, strFirst, strLast, strPWD

    strSheet = "C:\teste.xls"
     

    Set objRootDSE = GetObject("LDAP://RootDSE")
    strConfig = objRootDSE.Get("configurationNamingContext")
    strConfig = split(strConfig, ",")
    For i = 1 to Ubound(strConfig)
     strDNSDomain = StrDNSDomain & strConfig(i) & ","
    Next
    tamanho = len(StrDNSDomain)
    strDNSDomain = left(StrDNSDomain, tamanho - 1 )

     


    Set objExcel = CreateObject("Excel.Application")
    Set objSpread = objExcel.Workbooks.Open(strSheet)
    intRow = 2 'Row 1 often contains headings
     
     
     
    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)
       strOU = Trim(objExcel.Cells(intRow, 6).Value)


       Set objOU = GetObject("LDAP://OU=" & strOU & "," & strDNSDomain)
       Set objUser = objOU.Create("User", "cn=" & strCN)
       objUser.Put "sAMAccountName", strSam
       objUser.Put "givenName", strFirst
       objUser.userAccountControl = 512

       objUser.pwdLastSet = 0
       objUser.SetPassword strPWD
       objUser.SetInfo
     
    intRow = intRow + 1
    Loop
    objExcel.Quit
     
    WScript.Quit

     

    • Marcado como Resposta Richard Juhasz terça-feira, 10 de abril de 2012 17:32
    terça-feira, 26 de fevereiro de 2008 21:38