This program aids in the tedious task of adding new users to active directory on a windows server.

When the program opens you are prompted to select how you would the names to be generated, using one of the preset types, the syntax system (explained below), or manually entered.  The program can randomly generate passwords with length and complexity options or passwords can be entered/imported manually.  The program supports batch importing from dos encoded csv files and the format of the csv is determined by what type of login name and password options you choose.

This program will generate a username or use the username you provided and compare that name to all user names already on the domain.  If auto-generation is selected it will attempt to create a different name up to a maximum.  If manual names are selected, or the max generation is reached you will be prompted to enter the new name desired.

Once the list is built you specify where you would like home directories to be stored and what login script to be used for your list of users. You select the OU in your AD structure where the users should be created and the DN of the group the users should be added to if desired.  All users are added to "Domain Users", an additional group specification is optional.  If desired, a folder is created for each user in the home directory parent folder chosen.  That folder has the same name as the user.

The NTFS permissions of that folder are modified to be: "Domain Admins"-FULL and <the user>-FULL as well as keeping the inherited parent permissions.

In default mode:

AUTOaddusers can be run from any machine on the domain including workstations.  The share path selected is a UNC path on the server that you want the home folders created in.

In legacy mode:

****LEGACY MODE IS REQUIRED IF YOU STILL HAVE 9X clients...this is because Windows 9x cannot map to \\server\share\folder it can only map to \\server\share****

When Useing legacy mode AUTOaddusers must be run from the server where the home folders will reside and then each folder is shared out with the share name <username>$...the "$" makes the share hidden

When the program runs:

-the home directory will be established (if desired)

-the user will be created in the desired OU

-the user will be a member of the desired group (in additional to “domain users”)

-the home directory and login script parameters of the AD user name will be populated (can be blank)

Note: at the end of the program a message box notifies you that you need to let the xcacls.vbs script finish running.  If you are testing the program with a small number of users, the xcacls.vbs command prompt window may be done very quickly.  This message is just there to remind you to not close the command window that could be running if you are attempting to add a large number of users in one run (the xcacls.vbs window could run for a few minutes).


Import File

Starting with v4.0 of this program almost all user creation variables are stored independently with each user in the pending users list.  This means the program can be run once but create users in different OU’s or added to different groups.  If you would like to take advantage of this in the import file here is the field layout needed:

No header row

If importing usernames and passwords:

FirstName,MiddleName,LastName,UserName,Password,Extra Data,Home Folder Path,login script,security groupdn,description,OU,home drive letter,username syntax,cn syntax

If importing usernames with generated passwords:

FirstName,MiddleName,LastName,UserName,Extra Data,Home Folder Path,login script,security groupdn,description,OU,home drive letter,username syntax,cn syntax

If generating usernames but importing passwords:

FirstName,MiddleName,LastName,Password,Extra Data,Home Folder Path,login script,security groupdn,description,OU,home drive letter,username syntax,cn syntax

If generating usernames and passwords:

FirstName,MiddleName,LastName,Extra Data,Home Folder Path,login script,security groupdn,description,OU,home drive letter,username syntax,cn syntax

All previous import layouts are compatible with the new system.  If you import rows that do not contain any data past “extra data” then the gui configured global variables will be used or the variables specified in the silient xml config.  If you include the extra fields you must at least have empty comma separated placeholders for all fields.  Due to commas always existing in Group DN(s) and OU DN(s) you’ll need to have properly formatted CSV with double quotes around at least those fields. 

Sample GroupDN: 

LDAP://CN=Students,OU=Students,OU=School Users,DC=school,DC=pvt

Sample OU DN:

LDAP://OU=Students,OU=School Users,DC=school,DC=pvt

The Generate Name Syntax

The text box provided allows you to specify how you would like the login names created when you enter them using the program's “Add User” form or the “Get Users From File” button

Enter your syntax with pieces separated using the "+" sign

The following variables are supported:

$F will use the first name

$M will use the middle name

$L will use the last name

$X will use the extra/meta data

Here are additional useful options:

&B appended to a string will tell it to build from that string, ex: 123&B would produce 1, then 12, then 123 starting with the first character and then increasing if a unique name is not found

&O appended to a string will tell it to only use that string if other build attempts do not succeed in creating a unique name

"[number]" appended to a string will cap a string or variable to the specified number of characters...this is useful if you want to use &b but only to a certain size

Bulk name creation option:

If you need to batch create a set of generic accounts, such as dummyuser1 dummyuser2, here's how...

somewhere in your syntax use the following command:

#<startnumber>-<endnumber> ex: #1-100



The default syntax of $F&b+$M&b&o+$L when given Curtis Paul McKay would produce the following sequence:


***You can always shorten how far it will attempt to go using the [number] option such as:

$F&b[2]+$M&o[1]+$L would produce



student+#1-100 would produce:

student1, student2, student3,....student99, student100


CN Name Syntax

On the settings screen or in the input file you specify the syntax to be used for generating the LDAP container name (CN) of the user.  This is the name that is displayed in the “Name” column in Active Directory Users and Computers.  The syntax is the same as the system described above except in addition to the already listed variables, $U is supported in a CN.  It is the dynamically created sAMAccountName user name that was imported or created by the program.


Silent User Creation

Included in the install is a file entitled "silentsample.xml" and an accompanying "SilentXMLSettings.pdf" documentation file.  Using the settings in the xml file it is possible to script autoaddusers to read in from an input file, create all the users, export the new user list and exit.  This is for automated batch user creation of new users.  Read SilentXMLSettings.pdf for more information.


This program suite was written by Curtis McKay and can be downloaded at:


I would like to thank Abe Loveless for helping push me to get this program where it is at today.  His feature requests have helped make this program what it is.  I would also like to give thanks to Jason Alldredge for the creation of the AutoAddUsers splash screen and icon.