matt1982
asked on
Creating Users script
Trying to get a script to take information from an excel file and input them into active directory. They will add if complex passwords are used. But if complex passwords are not used then it gives an errors that a complex password is needed.
The script being used looks like this:
' 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, strDesc, StrDis
' -------------------------- ---------- ---------- ---------- -----'
' Important change OU= and strSheet to reflect your domain
' -------------------------- ---------- ---------- ---------- -----'
strOU = "OU=Students, OU=SAJS, OU=03 Schools," ' Note the comma
strSheet = "c:\studenttest.xml"
' Bind to Active Directory, Users container.
Set objRootLDAP = GetObject("LDAP://rootDSE" )
Set objContainer = GetObject("LDAP://" & strOU & _
objRootLDAP.Get("defaultNa mingContex t"))
' Open the Excel spreadsheet
Set objExcel = CreateObject("Excel.Applic ation")
Set objSpread = objExcel.Workbooks.Open(st rSheet)
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).V alue = ""
strSam = Trim(objExcel.Cells(intRow , 1).Value)
strCN = Trim(objExcel.Cells(intRow , 1).Value)
strFirst = Trim(objExcel.Cells(intRow , 2).Value)
strLast = Trim(objExcel.Cells(intRow , 3).Value)
strPWD = Trim(objExcel.Cells(intRow , 4).Value)
strDesc = Trim(objExcel.cells(intRow , 5).value)
strDis = Trim(objExcel.cells(intRow , 6).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.Put "DisplayName", strDis
' objUser.Put "description", strDesc
objUser.SetInfo
' Separate section to enable account with its password
objUser.userAccountControl = 512
' objUser.pwdLastSet = 0
objUser.SetPassword strPWD
objUser.SetInfo
intRow = intRow + 1
Loop
objExcel.Quit
WScript.Quit
' End of Sample UserSpreadsheet VBScr
In the domain security settings all the complex password rules are turned off so i can't see that being the problem. Any suggestions would be great, thanks.
The script being used looks like this:
' 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, strDesc, StrDis
' --------------------------
' Important change OU= and strSheet to reflect your domain
' --------------------------
strOU = "OU=Students, OU=SAJS, OU=03 Schools," ' Note the comma
strSheet = "c:\studenttest.xml"
' Bind to Active Directory, Users container.
Set objRootLDAP = GetObject("LDAP://rootDSE"
Set objContainer = GetObject("LDAP://" & strOU & _
objRootLDAP.Get("defaultNa
' Open the Excel spreadsheet
Set objExcel = CreateObject("Excel.Applic
Set objSpread = objExcel.Workbooks.Open(st
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).V
strSam = Trim(objExcel.Cells(intRow
strCN = Trim(objExcel.Cells(intRow
strFirst = Trim(objExcel.Cells(intRow
strLast = Trim(objExcel.Cells(intRow
strPWD = Trim(objExcel.Cells(intRow
strDesc = Trim(objExcel.cells(intRow
strDis = Trim(objExcel.cells(intRow
' Build the actual User from data in strSheet.
Set objUser = objContainer.Create("User"
objUser.sAMAccountName = strSam
objUser.givenName = strFirst
objUser.sn = strLast
objUser.Put "DisplayName", strDis
' objUser.Put "description", strDesc
objUser.SetInfo
' Separate section to enable account with its password
objUser.userAccountControl
' objUser.pwdLastSet = 0
objUser.SetPassword strPWD
objUser.SetInfo
intRow = intRow + 1
Loop
objExcel.Quit
WScript.Quit
' End of Sample UserSpreadsheet VBScr
In the domain security settings all the complex password rules are turned off so i can't see that being the problem. Any suggestions would be great, thanks.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.