# Define group names
$sourceGroup = "G-Rec"
$destinationGroup = "G-Rec-fslogix"
# Import Active Directory module
Import-Module ActiveDirectory
try {
# Get members from source group (first 50)
$users = Get-ADGroupMember -Identity $sourceGroup | Select-Object -First 50
if ($users.Count -eq 0) {
Write-Host "No users found in the source group."
exit
}
Write-Host "Found $($users.Count) users in the source group. Processing..."
# Add users to destination group
Add-ADGroupMember -Identity $destinationGroup -Members $users -ErrorAction Stop
Write-Host "Successfully added users to destination group $destinationGroup"
# Remove users from source group
Remove-ADGroupMember -Identity $sourceGroup -Members $users -Confirm:$false -ErrorAction Stop
Write-Host "Successfully removed users from source group $sourceGroup"
# Verification
Write-Host "`nVerification:"
# Check destination group
$destMembers = Get-ADGroupMember -Identity $destinationGroup | Select-Object -ExpandProperty SamAccountName
$movedUsers = $users | Select-Object -ExpandProperty SamAccountName
$verifiedCount = 0
foreach ($user in $movedUsers) {
if ($destMembers -contains $user) {
$verifiedCount++
} else {
Write-Warning "$user not found in destination group"
}
}
Write-Host "$verifiedCount users verified in destination group"
# Check source group
$remainingUsers = Get-ADGroupMember -Identity $sourceGroup | Select-Object -ExpandProperty SamAccountName
$remainingCount = 0
foreach ($user in $movedUsers) {
if ($remainingUsers -contains $user) {
Write-Warning "$user still exists in source group"
$remainingCount++
}
}
if ($remainingCount -eq 0) {
Write-Host "All users successfully removed from source group"
} else {
Write-Warning "$remainingCount users still remain in source group"
}
} catch {
Write-Error "An error occurred: $_"
Write-Host "Error details:"
$_.Exception.Message
$_.ScriptStackTrace
}
Similar Posts: