<#Created By Abhishek Bansal
Read Note
Script Usage :: Adding multiple Users in an AD Group.
Pre requisites :: Copy all the code into a text file, save it with an extension ".PS1". On same location create a text file named "Inputusers.txt" which will be containing samaccount of all the users who will be added. Once saved, run script as Administrator.
Execution & Outputs :: During execution, it will prompt for AD group name. Need to provide the same. Once done, script will firt backup current membership of AD Group into Backup_membership.csv and final Output into Output.csv" onto same location. #>
$inputusers = Get-Content .\Inputusers.txt
$line = 0
$lines = $inputusers.count
$grp = Read-Host "Enter AD Group Name = "
Write-Host -ForegroundColor Yellow "`nAD Group Name Provided : $grp`n"
if((Get-ADGroup -Identity $grp).Samaccountname -eq $grp)
{
$choice = $(Write-Host -ForegroundColor Yellow "`nDo you want to proceed adding users mentioned in Inputusers.txt file to $grp. Press Y for Yes and N for No = " -NoNewline ; Read-Host)
Switch($choice)
{
Y {
Write-Host -ForegroundColor Green "Backing up $grp Group membership before doing changes in Backup_membership.csv file.."
Get-ADGroupMember -Identity $grp | Select Name,SamAccountName | Export-Csv .\Backup_membership.csv -NoTypeInformation
foreach($row in $inputusers)
{
$line++
$pct = $line/$lines * 100
$row = $row.trim()
Write-Progress -Activity "Adding Users ..." -PercentComplete $pct -Status "$line of $lines"
try
{
Add-ADGroupMember -Identity $grp -Members $row -Confirm:$false
$row | Select-Object -Property @{n="User ID";e={("$row")}},@{n="Status";e={("Added now.")}} | Export-Csv .\Output.csv -NoTypeInformation -Append
}
catch
{
$row | Select-Object -Property @{n="User ID";e={($row)}},@{n="Status";e={($error.exception.Message)}} | Export-Csv .\Output.csv -NoTypeInformation -Append
}
}
} #Closing Y condition
N {
Write-Host -ForegroundColor Green "You pressed N & hence nothing added in $grp AD Group."
} #Closing N condition
Default
{
Write-Host -ForegroundColor Red "Invalid Choice. Try again"
}
} #Closing switch
}