A very simple PowerShell script to create Active Directory users. We will create three AD users ("Bruce Wayne","Alfred Pennyworth","Selina KYLE") with the same password : "ComplexP@ss908".
########################### # author : shebangthedolphins.net # version : 1.1 # date : 2020.09 # role : Create AD users from a list # other : Tested on Windows 2016 Server # updates : # - 1.X (2018/06) : First Version # - 1.1 (2020/09) : Small updates with Write-Host part $users = New-Object System.Collections.ArrayList [void] $users.AddRange( ("Bruce Wayne","Alfred Pennyworth","Selina KYLE")) $password = "ComplexP@ss908!" $addomain = "shebangthedolphins.net" Foreach ($user in $users) { Write-Host "My user : $user" $pos = $user.IndexOf(" ") $first_name = $user.Substring(0, $pos).ToLower() $name = $user.Substring($pos+1).ToLower() $first_name_ = "$($first_name.substring(0,1).ToUpper())$($first_name.Substring(1))" $name_ = "$($name.substring(0,1).ToUpper())$($name.Substring(1))" $first_name__ = $first_name.ToUpper() $name__ = $name.ToUpper() Write-Host "first_name : $first_name" Write-Host "name : $name" Write-Host "First_name : $first_name_" Write-Host "Name : $name_" Write-Host "FIRSTNAME : $first_name__" Write-Host "NAME : $name__" Write-Host "Account : $($first_name).$($name)@$($addomain)" New-ADUser -Name "$($first_name_) $($name__)" -GivenName $first_name_ -Surname $name__ -SamAccountName "$($first_name).$($name)" -UserPrincipalName "$($first_name).$($name)@$($addomain)" -AccountPassword (ConvertTo-SecureString $password -AsPlainText -Force) -PassThru | Enable-ADAccount }
New version, it allows to automatically generate a 8 characters user password, users list is now in this format : last name, first name et AD login.
########################### # author : shebangthedolphins.net # version : 2.0 # date : 2020.10 # role : Create AD users from a list # other : Tested on Windows 2016 Server # updates : # - 1.X (2018/06) : First Version # - 1.1 (2020/09) : Small corrections with Write-Host part # - 2.0 (2020/10) : Auto generate password #Needed for auto password Add-Type -AssemblyName "System.Web" -ErrorAction Stop #Set your domain here $addomain = "shebangthedolphins.net" $users = New-Object System.Collections.ArrayList #user list : "LASTNAME FIRSTNAME ad.login" [void] $users.AddRange(( "CARTMAN Eric e.cartman", "Broflovski Kyle k.Broflovski", "Marsh Randy r.marsh", "Stotch Butters b.Stotch" )) Foreach ($user in $users) { $name = $user.split(" ")[0].ToLower() $first_name = $user.split(" ")[1].ToLower() $login = $user.split(" ")[2].ToLower() $first_name_ = "$($first_name.substring(0,1).ToUpper())$($first_name.Substring(1))" $name_ = "$($name.substring(0,1).ToUpper())$($name.Substring(1))" $first_name__ = $first_name.ToUpper() $name__ = $name.ToUpper() $password = [System.Web.Security.Membership]::GeneratePassword(8,1) Write-Host "Name : $first_name_ $name__ `nUser : $login `nPassword : $password" Write-Host "-----------------------" New-ADUser -Name "$($first_name_) $($name__)" -GivenName $first_name_ -Surname $name__ -SamAccountName "$($login)" -UserPrincipalName "$($login)@$($addomain)" -AccountPassword (ConvertTo-SecureString $password -AsPlainText -Force) -PassThru | Enable-ADAccount }
Contact :