The script removes all members from the target group and adds them to another group. To run the script, you can use a custom command, business rule or scheduled task configured for the Group object type. In the script, the $targetGroupDN variable specifies the distinguished name (DN) of the group to which members will be added.
PowerShell
$targetGroupDN = "CN=MyGroup,OU=Groups,DC=domain,DC=com" # TODO: modify me
# Get source group members
$sourceGroup = $Context.TargetObject
try
{
$memberGuidsBytes = $sourceGroup.GetEx("adm-DirectMembersGuid")
}
catch
{
return # source group has no members
}
$targetGroup = $Context.BindToObjectByDN($targetGroupDN)
foreach ($guidBytes in $memberGuidsBytes)
{
# Remove member from the source group
$guid = [Guid]$guidBytes
$sourceGroup.Remove("Adaxes://<GUID=$guid>")
if ($targetGroup.IsMember("Adaxes://<GUID=$guid>"))
{
continue
}
# Add member to the target group
$targetGroup.Add("Adaxes://<GUID=$guid>")
}