Partager via


Migrer des groupes d’une forêt à une autre pour Microsoft Entra Connect

Cet article décrit comment migrer correctement des groupes d’une forêt vers une autre, afin que les objets de groupe migrés correspondent aux objets existants dans le cloud.

Prérequis

  • Microsoft Entra Connect version 1.5.18.0 ou ultérieure
  • Attribut d’ancrage source défini sur mS-DS-ConsistencyGuid

Migrer des groupes

À partir de la version 1.5.18.0, Microsoft Entra Connect prend en charge l’utilisation de l’attribut mS-DS-ConsistencyGuid pour les groupes. Si mS-DS-ConsistencyGuid est choisi comme attribut d’ancrage source et que la valeur est renseignée dans Active Directory, Microsoft Entra Connect utilise la valeur de mS-DS-ConsistencyGuid en tant que valeur immutableId. Dans le cas contraire, il revient à l’utilisation de objectGUID. Toutefois, notez que Microsoft Entra Connect n’écrit pas à nouveau la valeur dans l’attribut mS-DS-ConsistencyGuid dans Active Directory.

Dans le cadre d’un déplacement d’une forêt à une autre, où un objet de groupe est déplacé d’une forêt (par exemple, F1) vers une autre forêt (par exemple, F2), vous devez copier la valeur mS-DS-ConsistencyGuid (le cas échéant) ou la valeur objectGUID à partir de l’objet dans la forêt F1 vers l’attribut mS-DS-ConsistencyGuid de l’objet dans F2.

Utilisez les scripts suivants comme guide pour apprendre à migrer un groupe unique d’une forêt vers une autre. Vous pouvez également utiliser ces scripts comme guide pour la migration de plusieurs groupes. Les scripts utilisent le nom de forêt F1 pour la forêt source et F2 pour la forêt de destination.

Tout d’abord, nous obtenons les paramètres objectGUID et mS-DS-ConsistencyGuid de l’objet groupe dans la forêt F1. Ces attributs sont exportés dans un fichier CSV.

<#
DESCRIPTION
============
This script will take DN of a group as input.
It then copies the objectGUID and mS-DS-ConsistencyGuid values along with other attributes of the given group to a CSV file.

This CSV file can then be used as input to the Export-Group script.
#>
Param(
       [ValidateNotNullOrEmpty()]
       [string]
       $dn,

       [ValidateNotNullOrEmpty()]
       [string]
       $outputCsv
)

$defaultProperties = @('samAccountName', 'distinguishedName', 'objectGUID', 'mS-DS-ConsistencyGuid')
$group  = Get-ADGroup -Filter "DistinguishedName -eq '$dn'" -Properties $defaultProperties -ErrorAction Stop
$results = @()
if ($group -eq $null)
{
       Write-Error "Group not found"
}
else
{
       $objectGUIDValue = [GUID]$group.'objectGUID'
       $mSDSConsistencyGuidValue = "N/A"
       if ($group.'mS-DS-ConsistencyGuid' -ne $null)
       {
              $mSDSConsistencyGuidValue = [GUID]$group.'mS-DS-ConsistencyGuid'
       }
       $adgroup = New-Object -TypeName PSObject
       $adgroup | Add-Member -MemberType NoteProperty -Name samAccountName -Value $($group.'samAccountName')
       $adgroup | Add-Member -MemberType NoteProperty -Name distinguishedName -Value $($group.'distinguishedName')
       $adgroup | Add-Member -MemberType NoteProperty -Name objectGUID -Value $($objectGUIDValue)
       $adgroup | Add-Member -MemberType NoteProperty -Name mS-DS-ConsistencyGuid -Value $($mSDSConsistencyGuidValue)
       $results += $adgroup
}

Write-Host "Exporting group to output file"
$results | Export-Csv "$outputCsv" -NoTypeInformation

Ensuite, nous utilisons le fichier CSV de sortie généré pour marquer l’attribut mS-DS-ConsistencyGuid sur l’objet cible dans la forêt F2 :

<#
DESCRIPTION
============
This script will take DN of a group as input and the CSV file that was generated by the Import-Group script.
It copies either the objectGUID or the mS-DS-ConsistencyGuid value from the CSV file to the given object.

#>
Param(
       [ValidateNotNullOrEmpty()]
       [string]
       $dn,

       [ValidateNotNullOrEmpty()]
       [string]
       $inputCsv
)

$group  = Get-ADGroup -Filter "DistinguishedName -eq '$dn'" -ErrorAction Stop
if ($group -eq $null)
{
       Write-Error "Group not found"
}

$csvFile = Import-Csv -Path $inputCsv -ErrorAction Stop
$msDSConsistencyGuid = $csvFile.'mS-DS-ConsistencyGuid'
$objectGuid = [GUID] $csvFile.'objectGUID'
$targetGuid = $msDSConsistencyGuid

if ($msDSConsistencyGuid -eq "N/A")
{
       $targetGuid = $objectGuid
}

Set-ADGroup -Identity $dn -Replace @{'mS-DS-ConsistencyGuid'=$targetGuid} -ErrorAction Stop

Étapes suivantes

En savoir plus sur l'intégration de vos identités sur site avec Microsoft Entra ID.