chore: add setup users

This commit is contained in:
2025-08-01 18:39:13 +10:00
parent 0c59471bef
commit cf9bf2e71f

View File

@ -1,31 +1,45 @@
param( param(
[string]$Domain, [string]$Domain,
[string]$OU [string]$OU
) )
$Users = Import-Csv .\Users.csv $Users = Import-Csv .\Users.csv
ForEach ($User in $Users) { ForEach ($User in $Users) {
$DisplayName = $User.DisplayName $DisplayName = $User.DisplayName
$FirstName = $User.FirstName $FirstName = $User.FirstName
$Surname = $User.Surname $Surname = $User.Surname
$SurnameInitial = $User.Surname[0] $SurnameInitial = $Surname[0]
$SamAccountName = "$FirstName$SurnameInitial"
$UserPrincipalName = "$SamAccountName@$Domain"
Write-Host $DisplayName "$FirstName$SurnameInitial@$Domain" Write-Host "`nProcessing user: $DisplayName ($UserPrincipalName)" -ForegroundColor Yellow
Write-Host "Creating sample users..." -ForegroundColor Cyan # Check if user already exists
$UserPassword = ConvertTo-SecureString "P@ssw0rd123!" -AsPlainText -Force $ExistingUser = Get-ADUser -Filter { SamAccountName -eq $SamAccountName } -ErrorAction SilentlyContinue
New-ADUser -Name "$DisplayName" -GivenName "$FirstName" -Surname "$Surname" ` if ($ExistingUser) {
-SamAccountName "$FirstName$SurnameInitial" -UserPrincipalName "$FirstName$SurnameInitial@$Domain" ` Write-Host "User '$SamAccountName' already exists. Skipping creation." -ForegroundColor DarkGray
-AccountPassword $UserPassword -Enabled $true ` } else {
-Path "$OU" -ErrorAction SilentlyContinue Write-Host "🛠️ Creating user '$SamAccountName'..." -ForegroundColor Cyan
$UserPassword = ConvertTo-SecureString "P@ssw0rd123!" -AsPlainText -Force
Set-ADUser -Identity "$FirstName$SurnameInitial" -EmailAddress "$FirstName$SurnameInitial@$Domain" New-ADUser -Name $DisplayName `
Set-ADUser -Identity "$FirstName$SurnameInitial" -DisplayName "$DisplayName" -GivenName $FirstName `
Set-ADUser -Identity "$FirstName$SurnameInitial" -Add @{proxyAddresses="SMTP:$FirstName$SurnameInitial@$Domain"} -Surname $Surname `
-SamAccountName $SamAccountName `
-UserPrincipalName $UserPrincipalName `
-AccountPassword $UserPassword `
-Enabled $true `
-Path $OU `
-ErrorAction Stop
# Set additional attributes
Set-ADUser -Identity $SamAccountName -EmailAddress $UserPrincipalName
Set-ADUser -Identity $SamAccountName -DisplayName $DisplayName
Set-ADUser -Identity $SamAccountName -Add @{proxyAddresses = "SMTP:$UserPrincipalName"}
Write-Host "✅ User '$SamAccountName' created successfully." -ForegroundColor Green
}
} }