Untitled
unknown
plain_text
8 months ago
3.1 kB
11
Indexable
<#
Name: Daytona Thornton
Student ID: [Your Student ID]
Script: Restore_AD.ps1
Description: Fully functional script that deletes and recreates the Finance OU, imports users from CSV,
handles errors, confirms OU and user creation, outputs results to AdResults.txt,
includes script standards, comments, and file unblocker.
#>
# Unblock the CSV file if needed
$csvPath = "$PSScriptRoot\financePersonnel.csv"
if (Test-Path $csvPath) {
Unblock-File -Path $csvPath
Write-Host "CSV file found and unblocked: $csvPath"
} else {
Write-Host "CSV file NOT found at path: $csvPath"
}
try {
Write-Host "`nChecking if 'Finance' OU exists..."
$ouExists = Get-ADOrganizationalUnit -LDAPFilter "(name=Finance)" -SearchBase "DC=consultingfirm,DC=com" -ErrorAction SilentlyContinue
if ($ouExists) {
try {
Remove-ADOrganizationalUnit -Identity $ouExists.DistinguishedName -Recursive -Confirm:$false
Write-Host "'Finance' OU deleted."
} catch {
Write-Host "Warning: could not delete 'Finance' OU. Error: $_"
}
} else {
Write-Host "'Finance' OU does not exist. Proceeding to create."
}
} catch {
Write-Host "Error during OU check or deletion: $_"
}
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: $_"
}
try {
Write-Host "`nImporting users from CSV..."
if (Test-Path $csvPath) {
$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"
}
} else {
Write-Host "Error: Could not find CSV at path: $csvPath"
}
} catch {
Write-Host "Error importing users: $_"
}
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 > "$PSScriptRoot\AdResults.txt"
Write-Host "AdResults.txt created successfully."
} catch {
Write-Host "Error exporting user details: $_"
}
Editor is loading...
Leave a Comment