Untitled

 avatar
unknown
plain_text
21 days ago
3.0 kB
4
Indexable
<#
    Name: Daytona Thornton
    Student ID: 12345678
    Script: Restore-AD.ps1
    Description: Deletes 'Finance' OU if it exists, recreates it, imports users from CSV, and outputs results to AdResults.txt
#>

# Check for Administrator rights
$currentIdentity = [Security.Principal.WindowsIdentity]::GetCurrent()
$principal = New-Object Security.Principal.WindowsPrincipal($currentIdentity)
if (-not $principal.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)) {
    Write-Warning "⚠️ Please run this script as Administrator."
    exit
}

# Unblock the CSV file if needed
$csvPath = "$PSScriptRoot\financePersonnel.csv"
if (Test-Path $csvPath) {
    Unblock-File -Path $csvPath
}

# SECTION 1: Delete 'Finance' OU if it exists
try {
    Write-Host "`nChecking for existing 'Finance' OU..."
    $financeOU = Get-ADOrganizationalUnit -LDAPFilter "(name=Finance)" -SearchBase "DC=consultingfirm,DC=com" -SearchScope OneLevel -ErrorAction Stop

    if ($financeOU) {
        Remove-ADOrganizationalUnit -Identity $financeOU.DistinguishedName -Recursive -Confirm:$false
        Write-Host "'Finance' OU found and deleted."
    }
} catch {
    Write-Host "'Finance' OU does not exist. Proceeding to create."
}

# SECTION 2: Create new OU
try {
    Write-Host "`nCreating 'Finance' OU..."
    New-ADOrganizationalUnit -Name "Finance" -Path "DC=consultingfirm,DC=com"
    Write-Host "'Finance' OU created successfully."
} catch {
    Write-Host "Error creating OU: $_"
}

# SECTION 3: Import users from financePersonnel.csv
try {
    Write-Host "`nImporting users from CSV..."
    $users = Import-Csv $csvPath

    foreach ($user in $users) {
        $first = $user.FirstName.Trim()
        $last = $user.LastName.Trim()
        $displayName = "$first $last"
        $samAccountName = ($first.Substring(0,1) + $last).ToLower()

        New-ADUser -Name $displayName `
                   -SamAccountName $samAccountName `
                   -GivenName $first `
                   -Surname $last `
                   -DisplayName $displayName `
                   -PostalCode $user.PostalCode `
                   -OfficePhone $user.OfficePhone `
                   -MobilePhone $user.MobilePhone `
                   -Path "OU=Finance,DC=consultingfirm,DC=com" `
                   -AccountPassword (ConvertTo-SecureString "P@ssw0rd123" -AsPlainText -Force) `
                   -Enabled $true

        Write-Host "Created user: $displayName"
    }
} catch {
    Write-Host "Error importing users: $_"
}

# SECTION 4: Export output to AdResults.txt
try {
    Write-Host "`nExporting user details to AdResults.txt..."
    Get-ADUser -Filter * -SearchBase "OU=Finance,DC=consultingfirm,DC=com" -Properties DisplayName,PostalCode,OfficePhone,MobilePhone |
    Select-Object DisplayName, PostalCode, OfficePhone, MobilePhone |
    Format-Table -AutoSize |
    Out-File "$PSScriptRoot\AdResults.txt"

    Write-Host "AdResults.txt created successfully."
} catch {
    Write-Host "Error exporting user details: $_"
}
Editor is loading...
Leave a Comment