Untitled
unknown
plain_text
21 days ago
3.1 kB
5
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