Solved

Adding home directories to each user in script

Posted on 2006-07-24
3
328 Views
Last Modified: 2008-02-07
Ok, looking for suggestions on ways to add the functionality of creating home directories to a script I have for creating users.  Here is the current script i have:


******************************************************************
' 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, i
Dim strCN, strSam, strFirst, strLast, strPWD, strDesc, StrDis

' -------------------------------------------------------------'
' Important change OU= and strSheet to reflect your domain
' -------------------------------------------------------------'

strOU = "OU=Students, OU=AEC, OU=03 Schools," ' Note the comma
strSheet = "c:\creating users\aec\aectemp.xml"

' 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, 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.SetInfo

   ' Separate section to enable account with its password
   objUser.userAccountControl = 512
   objUser.ChangePassword "", strPWD
   objUser.SetInfo

intRow = intRow + 1
i = i + 1
Loop
objExcel.Quit


WScript.Echo "Finished Creating Users.  " & i & " Users created!"
WScript.Quit

' End of Sample UserSpreadsheet VBScript.
*****************************************************************

Thanks in advance.
0
Comment
Question by:matt1982
  • 3
3 Comments
 
LVL 10

Assisted Solution

by:ryangorman
ryangorman earned 500 total points
ID: 17174218
Add home directory path to column G and home drive letter to column H of the XML file

Change
   Dim strCN, strSam, strFirst, strLast, strPWD, strDesc, strDis
to
   Dim strCN, strSam, strFirst, strLast, strPWD, strDesc, strDis, strHomeDrive, strHomeDirectory

Add
   strHomeDirectory = Trim(objExcel.cells(intRow, 7).value)
   strHomeDrive = Trim(objExcel.cells(intRow, 8).value)
After
   strDis = Trim(objExcel.cells(intRow, 6).value)

Add
   objUser.homeDrive, strHomeDrive
   objUser.homeDirectory = strHomeDirectory
Before
   objUser.SetInfo
0
 
LVL 10

Accepted Solution

by:
ryangorman earned 500 total points
ID: 17174287
The final piece is to have the script create the folder and set permissions as desired. You can easily adapt the following script that was written by the same author as your original script.

http://www.computerperformance.co.uk/vbscript/vbscript_cacls_excel.htm
0
 
LVL 10

Expert Comment

by:ryangorman
ID: 17193176
Thankyou
0

Featured Post

Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

Join & Write a Comment

by Batuhan Cetin Within the dynamic life of an IT administrator, we hold many information in our minds like user names, passwords, IDs, phone numbers, incomes, service tags, bills and the order from our wives to buy milk when coming back to home.…
Recently, I had the need to build a standalone system to run a point-of-sale system. I’m running this on a low-voltage Atom processor, so I wanted a light-weight operating system, but still needed Windows. I chose to use Microsoft Windows Server 200…
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.
This demo shows you how to set up the containerized NetScaler CPX with NetScaler Management and Analytics System in a non-routable Mesos/Marathon environment for use with Micro-Services applications.

746 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

9 Experts available now in Live!

Get 1:1 Help Now