54 lines
2.2 KiB
PowerShell
54 lines
2.2 KiB
PowerShell
# Copyright 2024 Rayyan Hodges, M Salim Olime, TAFE NSW, AlphaDelta
|
|
# Contact: rayyan.hodges@studytafensw.edu.au, mohammad.olime1@tafensw.edu.au
|
|
# Program Name: AutoUserAndOUCreator
|
|
# Purpose of script: Create a batch set of user's within an existing OU using a CSV file containing a list of predetermined users and OU's.
|
|
# Other Notes: My job is to create simple checks to avoid issues such as duplicate users.
|
|
|
|
# Import required PowerShell modules
|
|
import-module ActiveDirectory
|
|
|
|
#Specify User Principal Name (Active Directory Domain Forest Name)
|
|
$UPN = "alphadelta.com"
|
|
|
|
#Get user to specify path of the CSV file containing user info to be added into the Active Directory.
|
|
$fpath = Read-Host -Prompt "Please enter the path to your CSV file:"
|
|
|
|
# Check if CSV file exists with the path specified by the end-user
|
|
# If so, error out the program with generic error stating so. (RAYYAN Contribution)
|
|
if (-not (Test-Path $fpath)) {
|
|
Write-Host "CSV file does not exist. Exiting script."
|
|
exit
|
|
}
|
|
|
|
# Display path to file given by end-user
|
|
echo $fpath
|
|
|
|
#Import users from CSV file.
|
|
$fusers = Import-Csv $fpath
|
|
#Set tempoary password to "Pa$$w0rd1" which the user will be required to change when they first login.
|
|
$fsecPass = ConvertTo-SecureString -AsPlainText "Pa$$w0rd1" -Force
|
|
|
|
|
|
# Create user within already created OU
|
|
ForEach ($user in $fusers) {
|
|
$fname = $user.fName
|
|
$lname = $user.lName
|
|
$jtitle = $user.jTitle
|
|
$OUpath = $user.OU
|
|
echo $fname $lname $jtitle $OUpath
|
|
New-ADUser -SamAccountName = $fname.$lname -UserPrincipalName "$fname@alphadelta.com" -Path $OUpath -AccountPassword $fsecPass -Enabled $true -PassThru
|
|
}
|
|
|
|
# Check if user already exists within OU. Skip if so with message stating so. (RAYYAN Contribution)
|
|
if (Get-ADUser -Filter "SamAccountName -eq '$fname.$lname'") {
|
|
Write-Host "User $fname.$lname already exists. Skipping."
|
|
} else {
|
|
New-ADUser -SamAccountName "$fname.$lname" -UserPrincipalName "$fname@$UPN" -Path $OUpath -AccountPassword $fsecPass -Enabled $true -PassThru
|
|
}
|
|
}
|
|
|
|
#Print message stating the program has completed succsessfully, and to prompt them to press any key to close the program. (RAYYAN Contribution)
|
|
|
|
Read-Host -Prompt "User creation completed, press any key to close the window."
|
|
|