Migrieren von Gruppen aus einer Gesamtstruktur zu einer anderen mit Microsoft Entra Connect

In diesem Artikel wird beschrieben, wie Gruppen aus einer Gesamtstruktur in eine andere migriert werden, sodass die migrierten Gruppenobjekte mit den in der Cloud vorhandenen Objekten übereinstimmen.

Voraussetzungen

  • Microsoft Entra Connect Version 1.5.18.0 oder höher
  • Quellankerattribut auf mS-DS-ConsistencyGuid festgelegt

Migrieren von Gruppen

Ab Version 1.5.18.0 unterstützt Microsoft Entra Connect die Verwendung des mS-DS-ConsistencyGuid-Attributs für Gruppen. Wenn mS-DS-ConsistencyGuid als Quellankerattribut ausgewählt und der Wert in Active Directory aufgefüllt wird, verwendet Microsoft Entra Connect den Wert mS-DS-ConsistencyGuid als immutableId. Andernfalls wird ein Fallback auf objectGUID ausgeführt. Beachten Sie jedoch, dass Microsoft Entra Connect den Wert nicht in das mS-DS-ConsistencyGuid-Attribut in Active Directory zurückschreibt.

Bei einer Verschiebung zwischen Gesamtstrukturen, bei der ein Gruppenobjekt von einer Gesamtstruktur (z. B. F1) in eine andere Gesamtstruktur (z. B. F2) verschoben wird, müssen Sie entweder den Wert mS-DS-ConsistencyGuid (sofern vorhanden) oder den Wert objectGUID des Objekts in Gesamtstruktur F1 in das Attribut mS-DS-ConsistencyGuid des Objekts in Gesamtstruktur F2 kopieren.

Verwenden Sie die folgenden Skripts als Leitfaden, um zu erfahren, wie Sie eine einzelne Gruppe von einer Gesamtstruktur in eine andere migrieren. Sie können diese Skripts auch als Leitfaden für die Migration mehrerer Gruppen verwenden. In den Skripts wird für die Quellgesamtstruktur der Name F1 und für die Zielgesamtstruktur der Name F2 verwendet.

Zunächst werden die Werte objectGUID und mS-DS-ConsistencyGuid des Gruppenobjekts in der Gesamtstruktur F1 abgerufen. Diese Attribute werden in eine CSV-Datei exportiert.

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

Anschließend verwenden Sie die generierte CSV-Ausgabedatei, um das Attribut mS-DS-ConsistencyGuid für das Zielobjekt in der Gesamtstruktur F2 zu stempeln:

<#
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ächste Schritte

Erfahren Sie mehr zum Integrieren lokaler Identitäten in Microsoft Entra ID.