Untitled
unknown
plain_text
7 months ago
2.8 kB
7
Indexable
<#
Name: Daytona Thornton
Student ID: [Your Student ID]
Script: Restore-AD.ps1
Description: Deletes existing 'Finance' OU if present, recreates it, and imports users from financePersonnel.csv
#>
try {
# Ensure the script file is unblocked (helpful if copied/downloaded)
Unblock-File -Path $MyInvocation.MyCommand.Path -ErrorAction SilentlyContinue
# Define OU path
$ouPath = "OU=Finance,DC=consultingfirm,DC=com"
Write-Host "`nChecking if 'Finance' OU exists..."
$ouExists = Get-ADOrganizationalUnit -LDAPFilter "(distinguishedName=$ouPath)" -ErrorAction SilentlyContinue
if ($ouExists) {
Write-Host "'Finance' OU exists. Deleting..."
Remove-ADOrganizationalUnit -Identity $ouExists.DistinguishedName -Recursive -Confirm:$false
Write-Host "'Finance' OU deleted."
} 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 {
# Define CSV path
$csvPath = "$PSScriptRoot\financePersonnel.csv"
Write-Host "`nImporting users from CSV..."
Write-Host "Looking for file: $csvPath"
if (-not (Test-Path $csvPath)) {
throw "CSV not found at 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 $ouPath `
-AccountPassword (ConvertTo-SecureString "P@ssw0rd123" -AsPlainText -Force) `
-Enabled $true
Write-Host "Created user: $displayName"
}
} 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 |
Out-File "$PSScriptRoot\AdResults.txt"
Write-Host "AdResults.txt created successfully."
} catch {
Write-Host "Error exporting user details: $_"
}Editor is loading...
Leave a Comment