# Import the ActiveDirectory module Import-Module ActiveDirectory # Define the path to the CSV file $csvPath = "C:\path\to\csv\file.csv" # Define the OU where the new users will be created $ouPath = "OU=Employees,DC=example,DC=com" # Define the password length and complexity $passwordLength = 10 $passwordComplexity = [System.Security.Cryptography.PasswordDeriveBytes]::Create("P@ssw0rd!", 0, 0).GetBytes(32) # Read the CSV file $users = Import-Csv $csvPath # Loop through each user and create an AD account foreach ($user in $users) { # Generate a random password $password = [System.Web.Security.Membership]::GeneratePassword($passwordLength, 2) # Set the AD account properties $adUser = @{ GivenName = $user.'First name' Surname = $user.'Last name' DisplayName = "$($user.'First name') $($user.'Last name')" Name = "$($user.'First name') $($user.'Last name')" UserPrincipalName = $user.Email SamAccountName = $user.Email.Split("@")[0] AccountPassword = ConvertTo-SecureString -String $password -AsPlainText -Force Enabled = $true Path = $ouPath } # Create the AD account New-ADUser @adUser # Print the username and password Write-Host "Username: $($adUser.SamAccountName)" Write-Host "Password: $password" }