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.