Provision_EmployeeOnboarding.ps1

function Provision-EmployeeOnboarding {
    param (
        [string]$FirstName,
        [string]$LastName,
        [string]$Department,
        [string]$EmployeeNumber
    )

    $Username = ($FirstName.ToLower() + "." + $LastName.ToLower())

    $Password = Generate-RandomPassword

    New-ADUser -Name "$FirstName $LastName" `
               -SamAccountName $Username `
               -UserPrincipalName "$Username@yourdomain.com" `
               -GivenName $FirstName `
               -Surname $LastName `
               -AccountPassword (ConvertTo-SecureString -String $Password -AsPlainText -Force) `
               -ChangePasswordAtLogon $true `
               -Department $Department `
               -EmployeeNumber $EmployeeNumber

    Write-Host "Employee account provisioned:"
    Write-Host "Username: $Username"
    Write-Host "Password: $Password (User will be prompted to change it at logon)"
    Write-Host "Department: $Department"
    Write-Host "Employee Number: $EmployeeNumber"
}