Untitled

 avatar
unknown
plain_text
16 days ago
2.9 kB
4
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. Exports output to AdResults.txt.
#>

try {
    # Define OU Path
    $ouPath = "OU=Finance,DC=consultingfirm,DC=com"
    $ouExists = Get-ADOrganizationalUnit -LDAPFilter "(distinguishedName=$ouPath)" -ErrorAction SilentlyContinue

    Write-Host "`nChecking if 'Finance' OU exists..."

    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: $_"
}

# Recreate Finance 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: $_"
}

# Import users from CSV
try {
    $csvPath = "$PSScriptRoot\financePersonnel.csv"
    if (Test-Path $csvPath) {
        Unblock-File -Path $csvPath
        Write-Host "`nCSV file found and unblocked: $csvPath"
        Write-Host "`nImporting users from CSV..."
        $users = Import-Csv $csvPath
        foreach ($user in $users) {
            $displayName = "$($user.first_name) $($user.last_name)"
            New-ADUser -Name $displayName `
                -SamAccountName $user.samAccount `
                -GivenName $user.first_name `
                -Surname $user.last_name `
                -DisplayName $displayName `
                -City $user.city `
                -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"
        }
    } else {
        Write-Host "Error: File not found at $csvPath"
    }
} catch {
    Write-Host "Error importing users: $_"
}

# Export AD User details 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