? "Create / Modify Student Accounts? (y/n)"
GET $t
IF $t <> "y" quit ENDIF
call @SCRIPTDIR+"\functions.udf"
;===== Open Database And Prepare Table
IF EXIST ("c:\scripts\userlist.mdb") = 1
del "c:\scripts\userlist.mdb"
ENDIF
copy "c:\scripts\blank.mdb" "c:\scripts\userlist.mdb"
$objConn = DBConnOpen('DRIVER={Microsoft Access Driver (*.mdb)}; UID=; PWD=; DBQ=c:\scripts\userlist.mdb')
$SQL = "CREATE TABLE PRINTOUT (name char(50), username char(50), password char(50), schoolname char(50), description char(50))"
$NULL= DBCommand($objConn,$SQL)
$ShareSrvObj = GetObject("WinNT://NT_ADMIN/LANMANSERVER")
;====== Get User Info From Text File
$NULL=Open(1,"c:\scripts\users.txt")
$result=ReadLine(1)
WHILE $result<>""
$uarray=SPLIT($result,"#")
$username=$uarray[0]
$firstname=$uarray[1]
$lastname=$uarray[2]
$description="Class of "+$uarray[3]
$group=$uarray[4]
$fullname=$lastname+", "+$firstname
If $group = "Students"
$schoolname = "High School"
ENDIF
If $group = "msstudents"
$schoolname = "Middle School"
ENDIF
If $group = "fwstudents"
$schoolname = "Fountain Woods"
ENDIF
;====== End Get User Info From Text File
;====== Generate Password
dim $parray[4]
SRND(@MSECS*@MSECS)
For $i=0 to 4
$parray[$i]=Chr(97+Rnd(122-97))
Next
$password=JOIN($parray,"")
;====== End Generate Password
;====== Check If User Exists
$usercheck = getobject("WinNT://BURLINGTON/$username,user")
if $usercheck=1
$userexists=1
$usercheck=0
else
$userexists=0
endif
;====== Create New User Account
IF $userexists=0
$objOU = GetObject("LDAP://ou=Students,ou=Domain Users,dc=burlington,dc=org")
$objUser = $objOU.Create("User","cn=$username")
$objUser.Put ("samAccountname", "$username")
$objUser.SetInfo
$objOU = ""
$objUser = ""
ENDIF
$objUser = GetObject("LDAP://cn=$username,ou=Students,ou=Domain Users,dc=burlington,dc=org")
$objUser.AccountDisabled = FALSE
$objUser.IsAccountLocked = FALSE
$objUser.PasswordRequired = FALSE
$objUser.givenName = "$firstname"
$objUser.sn = "$lastname"
$objUser.displayName = "$fullname"
$objUser.description = "$description"
$objUser.scriptPath = "logon.bat"
$objUser.SetPassword($password)
$UserFlags = $objUser.Get("userAccountControl")
$UF_DONT_EXPIRE_PASSWD = 65536
$NewUserFlags = $UserFlags | $UF_DONT_EXPIRE_PASSWD
$objUser.Put ("userAccountControl", $NewUserFlags)
$objUser.SetInfo
$objUser = ""
shell '%comspec% /c net user $username /passwordchg:no /domain'
shell '%comspec% /c net group $group $username /add /domain'
;====== End Create New User Account
;====== User's Network Folders
IF NOT EXIST("\\nt_admin\d$\users\$username")
md "\\nt_admin\d$\users\$username"
ENDIF
$NewShareObj = $ShareSrvObj.Create("fileshare", "$username"+"$")
$NewShareObj.Path = "D:\users\$username"
$NewShareObj.SetInfo
$NewShareObj=""
;====== End User's Network Folders
;====== Send User Info To Database For Mailers
;==First replace any ' with `
IF INSTR($fullname,"'") <>0
$fullarray=SPLIT($fullname,"'")
$fullname=JOIN($fullarray,"`")
ENDIF
;==End Replace
$SQL = "INSERT INTO PRINTOUT (name,username,password,schoolname,description) VALUES ('$fullname','$username','$password','$schoolname','$description')"
$NULL= DBCommand($objConn,$SQL)
;====== End Send User Info To Database for Mailers
$result=ReadLine(1)
LOOP
$NULL=Close(1)
;====== Close Database
$NULL=DBConnClose($objConn)
$ShareSrvObj=""
;====== Open Word And Print Mailers
$word=createobject("Word.Application")
$word.Visible = 1
$null=$word.Documents.Open("c:\scripts\mailer.doc")
$null=$word.ActiveDocument.MailMerge.Execute
$null=$word.quit(0)
$word=0
;====== Clean Up
sleep 5
del "c:\scripts\userlist.mdb"
;====== Process CACLS
$NULL=Open(2,"c:\scripts\users.txt")
$result=ReadLine(2)
WHILE $result<>""
$uarray=SPLIT($result,"#")
$username=$uarray[0]
SHELL "xcacls \\nt_admin\d$\users\$username /t /c /g $username:c burlington\administrator:f "+Chr(34)+"domain admins"+Chr(34)+":f system:f staff:r /y"
$result=ReadLine(2)
LOOP
$NULL=Close(2)
quit