Creating users through the AD Users and Computers snap-in is a very easy process, but you’ll frequently face the situation where you need to create accounts for a whole group of people at once. There’s no need for this to be a time consuming process for you though, and we’ve done all the heavy lifting so you don’t have to.

We’ve just got a list of new employees from the HR Department, and they’ve been kind enough to give it to us in an excel format. Make sure that your own Excel file matches the same format, and make sure that you are using First Name and Last Name as column headers.

The first thing we are going to do is save the file as a .csv, and to do that, we click on the Office Button and select Save As.

004

We’re going to name our file users.csv, and make sure that we pick CSV (Comma delimited) in the Save as type box, and then click Save.

005

Next we’ll create a new text document on the server where we’ll be doing the user creation.

007

We’ll then copy the following into our new text document:

$objOU=[ADSI]"LDAP://OU=People,DC=sysadmingeek,DC=com"

$dataSource=import-csv "users.csv"

foreach($dataRecord in $datasource) {

$cn=$dataRecord.FirstName + " " + $dataRecord.LastName

$sAMAccountName=$dataRecord.FirstName + "." + $dataRecord.LastName

$givenName=$dataRecord.FirstName

$sn=$dataRecord.LastName

$sAMAccountName=$sAMAccountName.ToLower()

$displayName=$sn + ", " + $givenName

$userPrincipalName=$sAMAccountName + "@sysadmingeek.com"

$objUser=$objOU.Create("user","CN="+$cn)

$objUser.Put("sAMAccountName",$sAMAccountName)

$objUser.Put("userPrincipalName",$userPrincipalName)

$objUser.Put("displayName",$displayName)

$objUser.Put("givenName",$givenName)

$objUser.Put("sn",$sn)

$objUser.SetInfo()

$objUser.SetPassword("P@assw0rd")

$objUser.psbase.InvokeSet("AccountDisabled",$false)

$objUser.SetInfo()

}

In the first line, make sure that you enter the correct information for your domain and the OU where you are creating the users. You'll want to update the @sysadmingeek.com line as well to match your domain.

sshot-2009-12-15-21-45-57

We then want to save the file as a PowerShell script, so we change the Save as type: to All Files (*), and name it PSusersScript.ps1.

009

Now we need to prep PowerShell to run scripts. You can launch PowerShell by clicking on the shortcut in the taskbar, or by typing PowerShell in the quick search box.

011

We need to change the Execution Policy to allow scripts to be run remotely, so we type

set-executionpolicy remotesigned

When prompted, we type Y and then hit enter to execute.

012

Now that we’ve allowed the script to be run, we need to place both the users.csv and the PSusersScript.ps1 files in our folder for execution. Since the PowerShell prompt naturally comes up to the root user folder, and we are logged on as Administrator, we are going to place them in the C:UsersAdministrator folder. When both files are in the folder, we right-click on the PSusersScript.ps1 file and choose Run with PowerShell.

013

If we take a look in AD Users and Computers, you will now see all those new users you just created.

0001

The new users will be created in the lastname.firstname format, but the script could easily be altered to your need. Now that you’ve already created the script, all you have to do in the future is to place your list of users in the C:UsersAdministrator folder and run the PowerShell script. Easy!