From cf9bf2e71f169027c3531823207091a8df979523 Mon Sep 17 00:00:00 2001 From: Matthew McKinnon Date: Fri, 1 Aug 2025 18:39:13 +1000 Subject: [PATCH] chore: add setup users --- SetupUsers.ps1 | 42 ++++++++++++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/SetupUsers.ps1 b/SetupUsers.ps1 index 77dca15..29ddd6f 100644 --- a/SetupUsers.ps1 +++ b/SetupUsers.ps1 @@ -1,31 +1,45 @@ param( [string]$Domain, [string]$OU - ) - $Users = Import-Csv .\Users.csv ForEach ($User in $Users) { $DisplayName = $User.DisplayName $FirstName = $User.FirstName $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 - $UserPassword = ConvertTo-SecureString "P@ssw0rd123!" -AsPlainText -Force + # Check if user already exists + $ExistingUser = Get-ADUser -Filter { SamAccountName -eq $SamAccountName } -ErrorAction SilentlyContinue - New-ADUser -Name "$DisplayName" -GivenName "$FirstName" -Surname "$Surname" ` - -SamAccountName "$FirstName$SurnameInitial" -UserPrincipalName "$FirstName$SurnameInitial@$Domain" ` - -AccountPassword $UserPassword -Enabled $true ` - -Path "$OU" -ErrorAction SilentlyContinue + if ($ExistingUser) { + Write-Host "User '$SamAccountName' already exists. Skipping creation." -ForegroundColor DarkGray + } else { + Write-Host "🛠️ Creating user '$SamAccountName'..." -ForegroundColor Cyan + $UserPassword = ConvertTo-SecureString "P@ssw0rd123!" -AsPlainText -Force - Set-ADUser -Identity "$FirstName$SurnameInitial" -EmailAddress "$FirstName$SurnameInitial@$Domain" - Set-ADUser -Identity "$FirstName$SurnameInitial" -DisplayName "$DisplayName" - Set-ADUser -Identity "$FirstName$SurnameInitial" -Add @{proxyAddresses="SMTP:$FirstName$SurnameInitial@$Domain"} + New-ADUser -Name $DisplayName ` + -GivenName $FirstName ` + -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"} -} \ No newline at end of file + Write-Host "✅ User '$SamAccountName' created successfully." -ForegroundColor Green + + } +}