Fireup your PowerShell ISE, modify to your needs, and run !
Please leave comments, suggestions below !
Import-Module ActiveDirectory # Determine the base OU $Path = 'OU=Accounting,OU=-Department,OU=Office,DC=MyDomain,DC=net' # Determine the new path where the groups will be created. Can be different or the same. $NewPath = 'OU=HR,OU=-Department,OU=Office,DC=MyDomain,DC=net' # Get all security groups to duplicate. You can select Universal, Distribution or Security. $Grp = Get-ADGroup -Filter {GroupCategory -eq 'security'} -searchbase $Path # Loop through the groups and duplicate them, with a new name, and same base OU. foreach ($OldGrp in $Grp) { #If you need to replace characters from the original group name, else comment the "-replace" part. $OldGrpName = $OldGrp.SamAccountName -replace '-','_' #Adds a prefix/suffix to the new name. You can use either or both. Comment what you don't need. $NewGrpName = "gbl_" + $OldGrpName + "_new" #Prints out the progress of the loop so you can visually keep track. Write-Host $NewGrpName #Creates the new group, in the new Path. New-ADGroup –name $NewGrpName –groupscope Global –path $NewPath #Get the users from the original group $Users = Get-ADGroupMember $OldGrp #Add the same users to the new group. if($Users -ne $null){Add-ADGroupMember -Identity $NewGrpName -members $Users} }