Untitled
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