Перенос групп из одного леса в другой для Microsoft Entra Подключение
В этой статье описывается, как выполнить миграцию групп из одного леса в другой, чтобы перенесенные объекты группы соответствовали существующим объектам в облаке.
Необходимые компоненты
- Microsoft Entra Подключение версии 1.5.18.0 или более поздней
- Атрибут привязки к источнику со значением
mS-DS-ConsistencyGuid
Миграция групп
Начиная с версии 1.5.18.0, Microsoft Entra Подключение поддерживает использование атрибута mS-DS-ConsistencyGuid
для групп. Если вы выбираете mS-DS-ConsistencyGuid
в качестве атрибута привязки источника и значение заполняется в Active Directory, Microsoft Entra Подключение использует значение mS-DS-ConsistencyGuid
в качестве immutableId
значения. В противном случае он возвращается к использованию objectGUID
. Но обратите внимание, что Microsoft Entra Подключение не записывает значение обратно mS-DS-ConsistencyGuid
в атрибут в Active Directory.
При перемещении между лесами, когда объект группы из одного леса (скажем, F1) перемещается в другой лес (скажем, F2), необходимо скопировать значение mS-DS-ConsistencyGuid
(если оно имеется) или значение objectGUID
из объекта в лесу F1 в атрибут mS-DS-ConsistencyGuid
объекта в F2.
Используйте приведенные ниже сценарии в качестве руководства, чтобы узнать, как перенести одну группу из одного леса в другой. Эти сценарии также можно использовать в качестве руководства по переносу нескольких групп. Скрипты используют имя леса F1 для исходного леса и F2 для целевого леса.
Сначала мы получаем objectGUID
и mS-DS-ConsistencyGuid
объекта группы в лесу F1. Эти атрибуты экспортируются в 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
Далее мы используем созданный выходной CSV-файл для отметки атрибута mS-DS-ConsistencyGuid
в целевом объекте в лесу 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
Следующие шаги
Узнайте больше об интеграции локальных удостоверений с идентификатором Microsoft Entra.