Оглавление
Схема сети

Подготовка Active Directory
Dns forward
Создадим условную пересылку из ctdrus в corp и из corp в ctdrus в DNS.

Проверяем

Создаем трасты между доменами












Настройка DNS суффикса через GPO
Policies — Administrative Templates -Network — Dns Client — Dns suffix search list



В будущем при добавлении аккаунта между домена в админы , если будет ошибка
The Active Directory Domain Controllers required to find the selected objects in the following domains are not available: CTDRUS.Ioc Ensure the Active Directory Domain Controllers are available, and try to select the objects again.
нужно проверить dns суффикс , тут на предмет лишних которые могут создавать конфликты

и тут между собой

Создаем ADMT аккаунт для миграции
На КД в который мы мигрируем по схеме в домен corp.local , мы сделаем аккаунт corp\admtadmin и добавим его в группу Domain admins , administrators

На КД в домене CTDRUS.LOC из которого мы мигрируем , мы добавим учетку corp\adminadmt в группу Administrators и администратора из corp\administrator


Для CORP.LOCAL в группу Administrators , мы добавим учетку ctdrus\administrator

Подготовка машины ADMT
Схема миграции

Настройка DNS клиента
Настроем DNS клиента на серверах друг на друга на серверах КД

Аналогично на сервере SQL1.ctdrus.loc

и на SQL2.corp.local

Настройка SQL — подготовка установке admt
Устанавливаем Net Framework 3.5 на SQL1.ctdrus.loc (Source Forest)


Устанавливаем SQL на сервер sql1.ctdrus.loc



Где sql service agent используем данные от другово домена. corp\admtadmin




Устанавливаем SQL на сервер sql2.corp.local
Устанавливаем net framework 3.5








Установка ADMT
На сервере V19CTDMSC02100.ctdrus.loc устанавливаем ADMT



На сервере S22RUMSKDC1.corp.loc устанавливаем ADMT


Отключим SID Filtering включим Sid History
выключим фильтрацию SID в обеих доменах
netdom trust TrustingDomainName /domain: TrustedDomainName /quarantine:no
и включим SID history также в обеих доменах:
В CTDRUS
netdom trust ctdrus.loc /domain:corp.local /enableSIDhistory:yes
В CORP
netdom trust corp.local /domain:ctdrus.loc /enableSIDhistory:yes
Подготовка PES
Идем на Source Forest (corp.local) КД c которого мигрируем . Открываем ADMT.
cd C:\Windows\ADMT
admt key /option:create /sourcedomain:ctdrus.loc /keyfile:c:\pes.pes /keypassword:123456

После устанавливаем Password Export Server version 3.1 (x64) .

Выбираем файл который сгенерировали и вводим пароль который вводили ранее когда генерировали файл 123456


Настроем запуск сервиса из под учетной записи Target forest.

После установки перезагрузка.
Переведем службу на автоматический старт на Source Forest (v19ctdmsc02100)

Миграция
Для начала вот такой список атрибутов для миграции у нас выключен

mail,proxyAddresses,msDS-PSOApplied,msDS-HostServiceAccount,attributeCertificateAttribute,audio,carLicense,departmentNumber,employeeNumber,employeeType,gecos,gidNumber,homePostalAddress,houseIdentifier,ipHostNumber,jpegPhoto,labeledURI,loginShell,memberUid,msDFSR-ComputerReferenceBL,msDFSR-MemberReferenceBL,msDS-ObjectReferenceBL,msDS-SourceObjectDN,msExchAssistantName,msExchHouseIdentifier,msExchLabeledURI,msRADIUS-FramedIpv6Route,msRADIUS-SavedFramedIpv6Route,msSFU30Aliases,msSFU30Name,msSFU30NisDomain,msSFU30PosixMember,msSFU30PosixMemberOf,networkAddress,nisMapName,otherMailbox,photo,preferredLanguage,registeredAddress,roomNumber,secretary,shadowExpire,shadowFlag,shadowInactive,shadowLastChange,shadowMax,shadowMin,shadowWarning,textEncodedORAddress,uid,uidNumber,unixHomeDirectory,unixUserPassword,userPKCS12,userSMIMECertificate,x500uniqueIdentifier
мы его изменим , создадим файл DisplayExclusionList.vbs в корне диска С:\ и в него впишем вот такой код
Set o = CreateObject("ADMT.Migration")
WScript.Echo o.SystemPropertiesToExclude
После этого запустим его , переходим в папку C:\Windows\SysWOW64 , он нам покажет список атрибутов в исключении
c:\Windows\SysWOW64>cscript.exe C:\DisplayExclusionList.vbs
Давайте изменим его создадим файл ExclusionList.vbs в корне диска С:\ и в него впишем вот такой код
Set o = CreateObject("ADMT.Migration")
o.SystemPropertiesToExclude = "mail,proxyAddresses,msDS-PSOApplied,msDS-HostServiceAccount,attributeCertificateAttribute,audio,carLicense,departmentNumber,employeeNumber,employeeType,gecos,gidNumber,homePostalAddress,houseIdentifier,ipHostNumber,jpegPhoto,labeledURI,loginShell,memberUid,msDFSR-ComputerReferenceBL,msDFSR-MemberReferenceBL,msDS-ObjectReferenceBL,msDS-SourceObjectDN,msExchAssistantName,msExchHouseIdentifier,msExchLabeledURI,msRADIUS-FramedIpv6Route,msRADIUS-SavedFramedIpv6Route,msSFU30Aliases,msSFU30Name,msSFU30NisDomain,msSFU30PosixMember,msSFU30PosixMemberOf,networkAddress,nisMapName,otherMailbox,photo,preferredLanguage,registeredAddress,roomNumber,secretary,shadowExpire,shadowFlag,shadowInactive,shadowLastChange,shadowMax,shadowMin,shadowWarning,textEncodedORAddress,uid,uidNumber,unixHomeDirectory,unixUserPassword,userPKCS12,userSMIMECertificate,x500uniqueIdentifier"
После исполним cscript.exe C:\ExclusionList.vbs и проверим результат через cscript.exe C:\DisplayExclusionList.vbs
c:\Windows\SysWOW64>cscript.exe C:\ExclusionList.vbs
c:\Windows\SysWOW64>cscript.exe C:\DisplayExclusionList.vbs
Microsoft (R) Windows Script Host Version 5.812
Copyright (C) Microsoft Corporation. All rights reserved.
msDS-PSOApplied,msDS-HostServiceAccount,attributeCertificateAttribute,audio,carLicense,departmentNumber,employeeNumber,employeeType,gecos,gidNumber,homePostalAddress,houseIdentifier,ipHostNumber,jpegPhoto,labeledURI,loginShell,memberUid,msDFSR-ComputerReferenceBL,msDFSR-MemberReferenceBL,msDS-ObjectReferenceBL,msDS-SourceObjectDN,msExchAssistantName,msExchHouseIdentifier,msExchLabeledURI,msRADIUS-FramedIpv6Route,msRADIUS-SavedFramedIpv6Route,msSFU30Aliases,msSFU30Name,msSFU30NisDomain,msSFU30PosixMember,msSFU30PosixMemberOf,networkAddress,nisMapName,otherMailbox,photo,preferredLanguage,registeredAddress,roomNumber,secretary,shadowExpire,shadowFlag,shadowInactive,shadowLastChange,shadowMax,shadowMin,shadowWarning,textEncodedORAddress,uid,uidNumber,unixHomeDirectory,unixUserPassword,userPKCS12,userSMIMECertificate,x500uniqueIdentifier
После данных манипуляция мы включили атрибут mail из исключений
Миграция пользователей, когда пользователь есть в 2 доменах(Добавление атрибутов)
Есть 2 пользователя . Мы хотим обновить данные из домена ctdrus.loc в домен corp.local











=================
Для начала попробуем смигрировать группы




Если установить Copy Group Member , он за собой смигрирует и всех людей которые включены в группу . Если нужно просто скопировать группы , то нужно убрать галку Copy Group Members







Ошибки при миграции
[PS] C:\Windows\system32>Get-MigrationUser | fl
RunspaceId : 0b533105-ccb3-44b2-96c9-e412bb273fdc
Identity : dmitry.kovalev@corp.local
Guid : 319c4f55-f1cd-49cc-8331-5e4828da68a6
Identifier : dmitry.kovalev@corp.local
BatchId : dmitry
MailboxIdentifier : dmitry.kovalev@corp.local
MailboxEmailAddress : dmitry.kovalev@corp.local
RecipientType : MailboxOrMailuser
SkippedItemCount : 0
SyncedItemCount : 0
MailboxGuid : 5a785747-56bd-498d-ad8c-42787c60a74f
MailboxLegacyDN : /o=CORP/ou=Exchange Administrative Group
(FYDIBOHF23SPDLT)/cn=Recipients/cn=a71b5dba26164ac3bfc41b5376c8d379-Dmitry Kovalev
RequestGuid : 00000000-0000-0000-0000-000000000000
LastSuccessfulSyncTime :
Status : Failed
State : Failed
Flags : None
WorkflowStep : DataMigration
WorkflowStage : Injection
TriggeredAction : None
ErrorSummary : У целевого почтового ящика нет прокси-сервера SMTP, соответствующего "domain.ru".
--> У целевого почтового ящика нет прокси-сервера SMTP, соответствующего
"domain.ru".
StatusSummary : Failed
LastSubscriptionCheckTime :
SupportedActions : Start, Set, Remove
IsValid : True
ObjectState : Unchanged
У пользователя при миграции по в контакте по дефолту должен стоят x500 примари , именно эта ошибка указывает что у пользователя в контакте не добавлен SMTP домена куда мы мигрируем