Compartilhar via


Migrar grupos de uma floresta para outra no Microsoft Entra Connect

Este artigo descreve como migrar grupos de uma floresta para outra para que os objetos de grupo migrado correspondam aos objetos existentes na nuvem.

Pré-requisitos

  • Microsoft Entra Connect versão 1.5.18.0 ou posterior
  • Atributo âncora de origem definido como mS-DS-ConsistencyGuid

Migrar grupos

Da versão 1.5.18.0 em diante, o Microsoft Entra Connect dá suporte ao uso do atributo mS-DS-ConsistencyGuid para grupos. Se você escolher mS-DS-ConsistencyGuid como o atributo de âncora de origem e o valor for populado no Active Directory, o Microsoft Entra Connect usará o valor de mS-DS-ConsistencyGuid como o immutableId. Caso contrário, ele voltará a usar objectGUID. Mas observe que o Microsoft Entra Connect não grava o valor de volta no atributo mS-DS-ConsistencyGuid no Active Directory.

Durante uma migração entre florestas, quando um objeto de grupo está migrando de uma floresta (vamos chamar de F1) para outra (vamos chamar de F2), você precisa copiar ou o valor mS-DS-ConsistencyGuid (se estiver presente) ou o valor objectGUID do objeto na floresta F1 para o atributo mS-DS-ConsistencyGuid do objeto na F2.

Use os scripts a seguir como um guia para saber como migrar um único grupo de uma floresta para outra. Você também pode usar esses scripts como um guia para a migração de vários grupos. Os scripts usam o nome da floresta F1 para a floresta de origem e F2 para a floresta de destino.

Primeiro, obtemos o objectGUID e o mS-DS-ConsistencyGuid do objeto de grupo na floresta F1. Esses atributos são exportados como um arquivo 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

Em seguida, usamos o arquivo CSV de saída gerado para carimbar o atributo mS-DS-ConsistencyGuid no objeto de destino na floresta 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

Próximas etapas

Saiba mais sobre a integração de identidades locais com o Microsoft Entra ID.