Learn What IT Pros Need to Know About Windows 11 - August 26th at 1 PM ET! Learn What IT Pros Need to Know About Windows 11 - August 26th at 1 PM ET!
Active Directory

Populate Active Directory with Test User Accounts

In this Ask the Admin, I’ll use a PowerShell script to populate Active Directory with test user accounts.

 

 

Sponsored Content

Say Goodbye to Traditional PC Lifecycle Management

Traditional IT tools, including Microsoft SCCM, Ghost Solution Suite, and KACE, often require considerable custom configurations by T3 technicians (an expensive and often elusive IT resource) to enable management of a hybrid onsite + remote workforce. In many cases, even with the best resources, organizations are finding that these on-premise tools simply cannot support remote endpoints consistently and reliably due to infrastructure limitations.

Active Directory (AD) is the chosen user-authentication mechanism in most organizations and a key infrastructure component that’s central to giving users access to business applications. Because of Active Directory’s critical role, it is usually a required component in pre-production test labs. Setting up AD in Azure is quite easy. If you want to automate provisioning Windows Server Active Directory in Azure, look at my series on automating the process using Infrastructure-as-Code:

Deploy Active Directory and Certificate Services in Azure Using Infrastructure-as-Code — Part 1
Deploy Active Directory and Certificate Services in Azure Using Infrastructure-as-Code — Part 2
Deploy Active Directory and Certificate Services in Azure Using Infrastructure-as-Code — Part 3

Once you’ve got AD up and running, you’ll need to populate it with user accounts to get a realistic test environment. Instead of reinventing the wheel and writing my own script, I decided to look at what’s already out there. There are lots of examples available, some of them more complicated than others. In the end, after looking at different scripts, I settled on a script from the Tailspintoys – 365lab.net blog by Johan Dahlbom. I liked the script because of its simplicity and it is well thought out, making it easy to adapt. Some of the other examples had more options for creating user object attributes but also used different text files for male and female usernames, or worked but created incomplete user objects in AD.

Johan’s script uses a comma delimited text file (.csv) that contains a list of first names and last names. In the script, there is only one variable that you must tailor for your environment. The $OU variable contains the path for the Organizational Unit (OU) in which the new user accounts should be created. This is how the variable is defined in the script:

$OU = "OU=TestUsers,OU=Cloud Inc.,DC=cloud,DC=lab"

For my test lab, I changed it to this:
$OU = "OU=Enabled Users,OU=User Accounts,DC=ad,DC=contoso,DC=com"

Be sure to get the order of the OUs correct in the path otherwise the New-ADUser cmdlet will return an error ‘Directory object not found’. Other variables you might want to change are $Password and $Departments. But the script works without modifying them. It might be necessary to change the value of $Password if ‘Password1’ doesn’t meet the password complexity requirements of your domain.

The script picks random first and last names from the .csv file. Before setting up the necessary variables for a new user, the script checks AD to make sure the proposed user object doesn’t already exist. Once the script has determined that a user with the same name doesn’t exist, it uses the New-ADUser cmdlet to add the user to the domain.

Running the PowerShell script from Tailspintoys – 365lab.net (Image Credit: Russell Smith)
Running the PowerShell Script from Tailspintoys — 365lab.net (Image Credit: Russell Smith)

By default, the script creates 100 users. Alternatively, you can specify a number by adding the -NumUsers parameter when you run the script. To run the script, make sure that the FirstNameEurope.csv file is in the same directory as the script, that you have permission to create new user objects in the specified container or OU, and that the Active Directory module for PowerShell is installed. If you want to run the script on Windows 10, that means making sure that the Remote Server Administration Tools (RSAT) for Windows 10 are installed and that the RSATClient-Roles-AD-Powershell feature is enabled. You can download RSAT from Microsoft’s website here.

.\CreateUsers3.ps1 -NumUsers 10

After you run the script, check that the new users have been created in the specified OU by opening Active Directory Users and Computers (ADUC) in the Tools menu in Server Manager.

Users created by the script in Active Directory (Image Credit: Russell Smith)
Users Created by the Script in Active Directory (Image Credit: Russell Smith)

The text file provided contains almost 400 first names and last names. This should be enough for most use cases. But if you want a longer list or different names, make a bulk order for names at Fake Name Generator. You can customize the file generated, including the fields included, the ethnicity and sex of the names, and the output format.

Create a list of fake user names (Image Credit: Russell Smith)
Create a List of Fake User Names (Image Credit: Russell Smith)

In this article, I showed you how to use a PowerShell script that populates Active Directory with test user accounts.

Related Topics:

BECOME A PETRI MEMBER:

Don't have a login but want to join the conversation? Sign up for a Petri Account

Register
Comments (0)

Leave a Reply

IT consultant, Contributing Editor @PetriFeed, and trainer @Pluralsight. All about Microsoft, Office 365, Azure, and Windows Server.

Register for Advanced Microsoft 365 Day!

GET-IT: Advanced Microsoft 365 1-Day Virtual Conference - Live August 24th!

Join us on Tuesday, August 24th and hear from Microsoft MVPs and industry experts about how to take advantage of Microsoft 365 at a technical level and dive deep into the features and functionality that will make your environment more secure and compliant.

RSVP Now

Sponsored By