Dela via


Migrera grupper från en skog till en annan för Microsoft Entra Anslut

Den här artikeln beskriver hur du migrerar grupper från en skog till en annan så att de migrerade gruppobjekten matchar de befintliga objekten i molnet.

Förutsättningar

  • Microsoft Entra Anslut version 1.5.18.0 eller senare
  • Källankarattribut inställt på mS-DS-ConsistencyGuid

Migrera grupper

Från och med version 1.5.18.0 stöder Microsoft Entra Anslut användning av mS-DS-ConsistencyGuid attributet för grupper. Om du väljer mS-DS-ConsistencyGuid som källankareattribut och värdet fylls i i Active Directory använder Microsoft Entra Anslut värdet mS-DS-ConsistencyGuid för som immutableId. Annars återgår den till att använda objectGUID. Observera dock att Microsoft Entra Anslut inte skriver tillbaka värdet till mS-DS-ConsistencyGuid attributet i Active Directory.

När ett gruppobjekt flyttas från en skog (till exempel F1) till en annan skog (t.ex. F2) måste du kopiera antingen mS-DS-ConsistencyGuid värdet (om det finns) eller objectGUID värdet från objektet i skog F1 till attributet för mS-DS-ConsistencyGuid objektet i F2.

Använd följande skript som en guide för att lära dig hur du migrerar en enskild grupp från en skog till en annan. Du kan också använda dessa skript som en guide för migrering av flera grupper. Skripten använder skogsnamnet F1 för källskogen och F2 för målskogen.

Först hämtar objectGUID vi gruppobjektet och mS-DS-ConsistencyGuid i skog F1. Dessa attribut exporteras till en CSV-fil.

<#
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

Sedan använder vi csv-filen med genererade utdata för att stämpla mS-DS-ConsistencyGuid attributet på målobjektet i skog 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

Nästa steg

Läs mer om att integrera dina lokala identiteter med Microsoft Entra-ID.