It's late at night, the week before school starts and I'm finally getting around to one of my more important projects for the summer. Best laid plans of mice and men, right? I'm talking about a full rebuild of the 5 servers at our high school. I'm afraid that a couple of years with minimal maintenance and an initial import of a legacy Windows Server 2000 legacy domain has left them quite a bit worse for wear. We're looking at a storage server, two domain controllers, and two terminal servers.
I'm sticking with Server 2003, by the way. I tested 2008 and was actually quite impressed, but our server hardware is just a bit too long in the tooth to achieve the kind of performance I'm looking for. A refresh is about a year away and I'll be looking at 2008, virtualization in Linux, and plenty of other technologies then, but for now, I just need to open school with a system that is tried, true, and well-tested in our environment.
We've finally hired a tech at the high school this year, meaning that I can fully get on to doing my real job as technology director and meaning that a stressed out teacher isn't just fitting in computer work whenever he/she can (that was basically my job description before I became technology director). In fairness to the tech, though, I need to give him a clean slate on which he can do preventive maintenance and actually manage an Active Directory the way it's supposed to be managed. No more futzing around with outdated OUs, graduated students, legacy Group Policies, etc.
Given the state of our AD at the high school, I'm electing to start from scratch and Server 2003 R2 is installing on 2 of them as we speak (the existing domain controllers). Important files are backing up on our storage server and all is going well since this part, as most of you know, is a piece of cake. My new Active Directory structure is mapped out, Group Policies are planned (largely copied from our solid faculty and student GPs already in place), and all of the new users are sitting in a spreadsheet, exported from our SIS.
And there is the challenge: how to create a whole bunch of users en masse from a CSV file or a spreadsheet. Those of you out there who are AD gurus or who are vastly better VB programmers than I am will probably say, "Hey, I have a script for that." If you do, then cool! Please share them in the talkbacks below, because there are plenty of us who maintain Active Directories who certainly have a clue but are far from guru status.
For those of you who don't and are wondering the same thing as your guidance counselors inundate you with new students who need accounts, here are a few tools I've found. I'll be trying them this weekend once all of the servers are fully configured, so I'll report back, but any and all feedback below would be helpful both to me and to other readers.
The first is csvde.exe. This has actually been around since the Windows 2000 Server days and exists in the c:\windows\system32 folder of 2000 and 2003 Server machines. The CSV file required as input can be a bit daunting, but a great explanation of its usage can be found here.
The second is a script I stumbled across was sitting in a PDF on one of the servers. Since it was called "Create users in Active Directory from a CSV file with this VBScript.pdf" I thought it might be a good place to start. If I remember correctly, George Ou sent it to me years ago when I had a similar problem but ended up just throwing money at a software solution from Tools4Ever (which worked brilliantly, by the way, but I just couldn't cough up the cash this year). A bit of looking at the script, though, and a bit more experience with VB since then, and it looked fairly manageable.
We'll see. I still have some more configuration to go before I declare either of them winners. Share your own tools below!