Migración de grupos de un bosque a otro en Microsoft Entra Connect
En este artículo se describe cómo migrar grupos de un bosque a otro, de modo que los objetos de grupo migrados coincidan con los objetos existentes en la nube.
Requisitos previos
- Microsoft Entra Connect versión 1.5.18.0 o posterior.
- El atributo del delimitador de origen establecido en
mS-DS-ConsistencyGuid
Migración de grupos
A partir de la versión 1.5.18.0, Microsoft Entra Connect admite el uso del atributo mS-DS-ConsistencyGuid
para grupos. Si se elige mS-DS-ConsistencyGuid
como atributo del delimitador de origen y el valor se rellena en Active Directory, Microsoft Entra Connect usa el valor de mS-DS-ConsistencyGuid
como immutableId
. De lo contrario, recurre al uso de objectGUID
. Sin embargo, tenga en cuenta que Microsoft Entra Connect no vuelve a escribir el valor en el atributo mS-DS-ConsistencyGuid
en Active Directory.
Durante un escenario de traslado entre bosques en el que un objeto de grupo se mueve de un bosque (por ejemplo, F1) a otro bosque (por ejemplo, F2), debe copiar el valor de mS-DS-ConsistencyGuid
(si está presente) o el valor de objectGUID
del objeto del bosque F1 al atributo mS-DS-ConsistencyGuid
del objeto en F2.
Use los siguientes scripts como guía para aprender cómo migrar un solo grupo de un bosque a otro. También puede usar estos scripts como guía para la migración de varios grupos. Los scripts usan el nombre de bosque F1 para el bosque de origen y F2 para el bosque de destino.
En primer lugar, obtenemos objectGUID
y mS-DS-ConsistencyGuid
del objeto de grupo en el bosque F1. Estos atributos se exportan a un archivo 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
A continuación, usamos el archivo CSV de salida generado para marcar el atributo mS-DS-ConsistencyGuid
en el objeto de destino en el bosque 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
Pasos siguientes
Más información sobre la integración de las identidades locales con Microsoft Entra ID.