Bulk Importing users into Domain

Here in this section we will learn how to add users in bulk into the domain controller using windows scripts and the data from the .csv files.


Creating the .csv file :

We will create the .csv file and fill the data into it in the following syntax:

Now we will Import the data inside the powershell using the following command :

Import-Csv <path_to_data.csv> | Format-Table 

The output should look like this :

Importing Script :

After making the necessary changes in the following script given here we can proceed adding the users in our active directory domain.

# Import active directory module for running AD cmdlets
Import-Module ActiveDirectory
  
# Store the data from MultiUser.csv in the $ADUsers variable
$ADUsers = Import-Csv data.csv 

# Define UPN, replace hg.local = Your-UPN
$UPN = "rookie.local"

# Loop through each row containing user details in the CSV file
foreach ($User in $ADUsers) {

    #Read user data from each field in each row and assign the data to a variable as below
    $username = $User.username
    $password = $User.password
    $firstname = $User.firstname
    $lastname = $User.lastname
    $initials = $User.initials
    $OU = $User.ou
    $email = $User.email
    $streetaddress = $User.streetaddress
    $city = $User.city
    $zipcode = $User.zipcode
    $state = $User.state
    $country = $User.country
    $telephone = $User.telephone
    $jobtitle = $User.jobtitle
    $company = $User.company
    $department = $User.department

    # Check to see if the user already exists in AD
    if (Get-ADUser -F { SamAccountName -eq $username }) {
        
        # If user does exist, give a warning
        Write-Warning "A user account with username $username already exists in Active Directory."
    }
    else {

        # User does not exist then proceed to create the new user account
        # Account will be created in the OU provided by the $OU variable read from the CSV file
        New-ADUser `
            -SamAccountName $username `
            -UserPrincipalName "$username@$UPN" `
            -Name "$firstname $lastname" `
            -GivenName $firstname `
            -Surname $lastname `
            -Initials $initials `
            -Enabled $True `
            -DisplayName "$lastname, $firstname" `
            -Path $OU `
            -City $city `
            -PostalCode $zipcode `
            -Country $country `
            -Company $company `
            -State $state `
            -StreetAddress $streetaddress `
            -OfficePhone $telephone `
            -EmailAddress $email `
            -Title $jobtitle `
            -Department $department `
            -AccountPassword (ConvertTo-secureString $password -AsPlainText -Force) -ChangePasswordAtLogon $True

        # If user is created, show message.
        Write-Host "The user account $username is created." -ForegroundColor Cyan
    }
}

Read-Host -Prompt "Press Enter to exit"

Running the Powershell script:

We will run the following script in the powershell ISE application in the windows server ISE shell

Select the whole code and click on the run script button so that the script can be executed

Once the script will run the output should look like this and the users will be reflected in the Active Directory Users & Computers section.

This is how we can bulk import users into the domain and make the import task easier when adding a lot of users or migrating users from the other Active directory domains.

Last updated