Copy all users from one Active Directory group to another Active Directory Group

The following script copies users from one Active directory group into another active directory group. If the user is already in the new group, then no action is taken.

# Import the Active Directory module if it's not already loaded
if (-not (Get-Module -Name ActiveDirectory)) {
    Import-Module ActiveDirectory
}

# Specify the name of the source and target Active Directory groups
$sourceGroupName = "SourceGroupName"
$targetGroupName = "TargetGroupName"

# Get all members of the source Active Directory group
$sourceGroupMembers = Get-ADGroupMember -Identity $sourceGroupName | Where-Object {$_.objectClass -eq "user"}

# Get all members of the target Active Directory group
$targetGroupMembers = Get-ADGroupMember -Identity $targetGroupName | Where-Object {$_.objectClass -eq "user"}

# Iterate through the source group members and add them to the target group
foreach ($user in $sourceGroupMembers) {
    # Check if the user is already a member of the target group
    if ($targetGroupMembers -notcontains $user) {
        # Add the user to the target group
        Add-ADGroupMember -Identity $targetGroupName -Members $user.SamAccountName
        Write-Host "Added $($user.SamAccountName) to $targetGroupName"
    }
    else {
        Write-Host "$($user.SamAccountName) is already a member of $targetGroupName"
    }
}

Moves users where the Distinguished Name matches a pattern

The following script copies members of an Active Directory Group into another Active Directory group where the name matches a particular pattern.

# Import the Active Directory module if it's not already loaded
if (-not (Get-Module -Name ActiveDirectory)) {
    Import-Module ActiveDirectory
}

# Specify the name of the source and target Active Directory groups
$sourceGroupName = "SourceGroupName"
$targetGroupName = "TargetGroupName"

# Get all members of the source Active Directory group
$sourceGroupMembers = Get-ADGroupMember -Identity $sourceGroupName | Where-Object {$_.objectClass -eq "user" -and $_.SamAccountName -like "*SVC*"}

# Get all members of the target Active Directory group
$targetGroupMembers = Get-ADGroupMember -Identity $targetGroupName | Where-Object {$_.objectClass -eq "user"}

# Iterate through the source group members and add them to the target group
foreach ($user in $sourceGroupMembers) {
    # Check if the user is already a member of the target group
    if ($targetGroupMembers -notcontains $user) {
        # Add the user to the target group
        Add-ADGroupMember -Identity $targetGroupName -Members $user.SamAccountName
        Write-Host "Added $($user.SamAccountName) to $targetGroupName"
    }
    else {
        Write-Host "$($user.SamAccountName) is already a member of $targetGroupName"
    }
}

By Rudy