Перейти к содержимому

Как перенести пользователей из одной группы в другую через powershell

# 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:

Добавить комментарий

Яндекс.Метрика