VBscript fun!
2009
I’m not a programmer, but I can hack a mean script together! The following creates 7 classes of 30 students each in Active Directory and also creates their home folder and assigns the correct permissions to that folder. Beats having to do it one at a time when reloading a school server!
I’ll be looking to clean it up with the use of functions or whatever you VBscript people call it.
' User account and folder creation script with individual user permissions added.
' ------------ Created by Ross Armer 6/14/2009-------------
' !!!!! BUG - Do not forget to change the homePath in the oShell.Run lines !!!!
Dim teacher,homepath,profilePath,scriptPath
' *** Provide the following variables for your network ***
teacher="a"
homepath="\\server\users$\"
profilePath="\\server\profiles$"
scriptPath="students.bat"
' ********************************************************
Set objRootDSE = GetObject("LDAP://rootDSE")
Set objContainer = GetObject("LDAP://cn=Users," & _
objRootDSE.Get("defaultNamingContext"))
For i = 100 To 130
Set objLeaf = objContainer.Create("User", "cn=" & teacher & i)
objLeaf.Put "sAMAccountName", teacher & i
objLeaf.Put "givenName", teacher & i
objLeaf.Put "displayName", teacher & i
objLeaf.Put "profilePath", profilePath
objLeaf.Put "scriptPath", scriptPath
objLeaf.Put "HomeDrive", "J:"
objLeaf.Put "HomeDirectory", homepath & teacher & i
objLeaf.SetInfo
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.CreateFolder(homepath & teacher & i)
Set oShell = wscript.CreateObject("Wscript.Shell")
oShell.Run "%COMSPEC% /c Echo Y| cacls \\server\users$\"& teacher & i & " /t /e /g Administrators:F "& teacher & i & ":F", 2, True
Next
For i = 200 To 230
Set objLeaf = objContainer.Create("User", "cn=" & teacher & i)
objLeaf.Put "sAMAccountName", teacher & i
objLeaf.Put "givenName", teacher & i
objLeaf.Put "displayName", teacher & i
objLeaf.Put "profilePath", profilePath
objLeaf.Put "scriptPath", scriptPath
objLeaf.Put "HomeDrive", "J:"
objLeaf.Put "HomeDirectory", homepath & teacher & i
objLeaf.SetInfo
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.CreateFolder(homepath & teacher & i)
Set oShell = wscript.CreateObject("Wscript.Shell")
oShell.Run "%COMSPEC% /c Echo Y| cacls \\server\users$\"& teacher & i & " /t /e /g Administrators:F "& teacher & i & ":F", 2, True
Next
For i = 300 To 330
Set objLeaf = objContainer.Create("User", "cn=" & teacher & i)
objLeaf.Put "sAMAccountName", teacher & i
objLeaf.Put "givenName", teacher & i
objLeaf.Put "displayName", teacher & i
objLeaf.Put "profilePath", profilePath
objLeaf.Put "scriptPath", scriptPath
objLeaf.Put "HomeDrive", "J:"
objLeaf.Put "HomeDirectory", homepath & teacher & i
objLeaf.SetInfo
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.CreateFolder(homepath & teacher & i)
Set oShell = wscript.CreateObject("Wscript.Shell")
oShell.Run "%COMSPEC% /c Echo Y| cacls \\server\users$\"& teacher & i & " /t /e /g Administrators:F "& teacher & i & ":F", 2, True
Next
For i = 400 To 430
Set objLeaf = objContainer.Create("User", "cn=" & teacher & i)
objLeaf.Put "sAMAccountName", teacher & i
objLeaf.Put "givenName", teacher & i
objLeaf.Put "displayName", teacher & i
objLeaf.Put "profilePath", profilePath
objLeaf.Put "scriptPath", scriptPath
objLeaf.Put "HomeDrive", "J:"
objLeaf.Put "HomeDirectory", homepath & teacher & i
objLeaf.SetInfo
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.CreateFolder(homepath & teacher & i)
Set oShell = wscript.CreateObject("Wscript.Shell")
oShell.Run "%COMSPEC% /c Echo Y| cacls \\server\users$\"& teacher & i & " /t /e /g Administrators:F "& teacher & i & ":F", 2, True
Next
For i = 500 To 530
Set objLeaf = objContainer.Create("User", "cn=" & teacher & i)
objLeaf.Put "sAMAccountName", teacher & i
objLeaf.Put "givenName", teacher & i
objLeaf.Put "displayName", teacher & i
objLeaf.Put "profilePath", profilePath
objLeaf.Put "scriptPath", scriptPath
objLeaf.Put "HomeDrive", "J:"
objLeaf.Put "HomeDirectory", homepath & teacher & i
objLeaf.SetInfo
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.CreateFolder(homepath & teacher & i)
Set oShell = wscript.CreateObject("Wscript.Shell")
oShell.Run "%COMSPEC% /c Echo Y| cacls \\server\users$\"& teacher & i & " /t /e /g Administrators:F "& teacher & i & ":F", 2, True
Next
For i = 600 To 630
Set objLeaf = objContainer.Create("User", "cn=" & teacher & i)
objLeaf.Put "sAMAccountName", teacher & i
objLeaf.Put "givenName", teacher & i
objLeaf.Put "displayName", teacher & i
objLeaf.Put "profilePath", profilePath
objLeaf.Put "scriptPath", scriptPath
objLeaf.Put "HomeDrive", "J:"
objLeaf.Put "HomeDirectory", homepath & teacher & i
objLeaf.SetInfo
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.CreateFolder(homepath & teacher & i)
Set oShell = wscript.CreateObject("Wscript.Shell")
oShell.Run "%COMSPEC% /c Echo Y| cacls \\server\users$\"& teacher & i & " /t /e /g Administrators:F "& teacher & i & ":F", 2, True
Next
For i = 700 To 730
Set objLeaf = objContainer.Create("User", "cn=" & teacher & i)
objLeaf.Put "sAMAccountName", teacher & i
objLeaf.Put "givenName", teacher & i
objLeaf.Put "displayName", teacher & i
objLeaf.Put "profilePath", profilePath
objLeaf.Put "scriptPath", scriptPath
objLeaf.Put "HomeDrive", "J:"
objLeaf.Put "HomeDirectory", homepath & teacher & i
objLeaf.SetInfo
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.CreateFolder(homepath & teacher & i)
Set oShell = wscript.CreateObject("Wscript.Shell")
oShell.Run "%COMSPEC% /c Echo Y| cacls \\server\users$\"& teacher & i & " /t /e /g Administrators:F "& teacher & i & ":F", 2, True
Next
WScript.Echo "All 7 hours created."
Comment