İşlemlerin başlangıcında kafanızın karışmaması için altyapıyı anlatayım; mevcut ortam ve hedef ortamla alakalı bilgiler şu şekilde;
| Mevcut Ortam (Source Environment) | Hedef Ortam (Target Environment) | |
| Domain Name (FQDN) | vmware.local | broadcom.local |
| User Principal Name (UPN) | linuxpro.com.tr | sercancelenk.com |
| Domain Controller (DC) | DC.vmware.local | CrossDC.broadcom.local |
| Exchange Server | EXCHANGE-02.vmware.local | CrossExchange.broadcom.local |
Cross Forest ve Exchange Server Migration işleminde ilk yapacağınız işlem DNS’lerin birbirlerini çözebilmeleri için yeni Conditional Forwarder eklemek.
DNS panelini açın ve New Conditional Forwarder’a tıklayın.

Mevcut domainde, hedef AD’nin IP’sini yazın.

Hedef domainde, mevcut domainin IP’sini yazın.

vmware.local domaininden broadcom.local domainin dns’inin çözümlenip çözümlenmediğini test edin.

broadcom.local domaininden vmware.local domainin dns’inin çözümlenip çözümlenmediğini test edin.

Bir sonraki aşama Domainler arası trust yapma işleminde. Trust öncesinde aradaki portların two-directional yani çift yönlü açılması gerekmektedir.
| Servis / Protokol | Port Numarası | Protokol Tipi | Açıklama |
| DNS | 53 | TCP / UDP | Domain adlarının çözümlenmesi için |
| Kerberos | 88 | TCP / UDP | Kimlik doğrulama (Authentication) için |
| LDAP | 389 | TCP / UDP | Dizin sorgulamaları için |
| LDAP (SSL/TLS) | 636 | TCP | Güvenli LDAP sorguları için |
| SMB (Microsoft-DS) | 445 | TCP | NetLogon, dosya paylaşımı ve IPC$ için |
| NetBIOS Name | 137 | UDP | NetBIOS isim çözünürlüğü için |
| NetBIOS Datagram | 138 | UDP | NetBIOS trafiği için |
| NetBIOS Session | 139 | TCP | NetBIOS oturum yönetimi için |
| RPC Endpoint Mapper | 135 | TCP | Dinamik RPC portlarının haritalanması için |
| RPC Dynamic Ports | 49152 – 65535 | TCP | ADMT, Parola Taşınması (PES) ve replikasyon için |
| Global Catalog | 3268 / 3269 | TCP | Forest içi/arası nesne aramaları için |
Mevcut domainde Properties>Trusts kısmına gelin ve New Trust’a tıklayın.


Hedef domain adını yazın.

Taşımanın sorunsuz olması için Forest trust yapın.

Domainler arası iletişimi çift yönlü yapın.

İki taraf içinde uygularsanız, hedef domainde bu işlemleri yapmanıza gerek kalmaz. O yüzden bu seçenekle ilerleyin.

Hedef domain admin bilgilerini girin.

Geçişin sorunsuz gerçekleşmesi için Forest-wide ile ilerleyin.

Geçişin sorunsuz gerçekleşmesi için Forest-wide ile ilerleyin.


Mevcut domain suffix’leri gözükmektedir. Mevcut domainde kullanıcılar linuxpro.com.tr UPN’ini kullanıyor. İkisinide seçin





Trust sorunsuz bir şekilde tamamlandı.

Mevcut(broadcom.local) domainde Domain Admin grubuna; hedef(vmware.local) domain Domain Admin userını ekleyin.

Hedef(broadcom.local) domainde SQL kurulumu yapın.
https://www.microsoft.com/en-us/download/details.aspx?id=101064






Hedef(broadcom.local) domainde Active Directory Migration Tool(ADMT) kurulumu yapın.
https://www.microsoft.com/en-us/download/details.aspx?id=56570


CrossDC hedef domaindeki controller’ım. SQL’i kurduğumuz makine yani.



Management Studio’yu açtığınızda ADMT adında bir database oluşturulduğunu göreceksiniz.

Sıra şifrelerin aynı şekilde Hedef(broadcom.local) Domaine taşınabilmesi için Password Export Server kurulumunda.
Hedef(broadcom.local) cmd’yi açıp aşağıdaki komutu çalıştırın.
Verilen path’te .pes uzantılı bir dosya oluşturacaktır. Bu dosyayı Mevcut(vmware.local) domain controller makinesine taşıyın.
admt key /option:create /sourcedomain:vmware.local /keyfile:"C:/password.pes" /keypassword:Sercan123!

Mevcut(vmware.local) domain’de Password Export Server’i kurun.
https://www.microsoft.com/en-us/download/details.aspx?id=1838



Taşıdığınız dosyayı; gösterin.

CMD’de çalıştırdığınız komutta verdiğiniz şifreyi girin.


Mevcut(vmware.local) domain admin bilgilerini girin.


Sunucuyu muhakkak restart edin.

Restart sonrası servis kısmına geldiğinizde Password Export Server servisini göreceksiniz.
Servisi başlatın.

Hedef(broadcom.local) domainin’de kurduğumuz ADMT tool’unu çalıştırın.

Önce user’ı taşıyacağız.
User Account Migration Wizard ile ilerleyin.


Mevcut(vmware.local) ve hedef (broadcom.local) domain bilgilerini girin.

User’ları GUI üzerinden seçebilir veya .csv .txt formatında dosya hazırlayıp tool’a yükleyebilirsiniz.
Şimdilik GUI’den yapacağız. İlerleyen kısımlarda .csv ile yapacağız.

Taşıyacağınız kullanıcıyı seçin.

Taşıyacağımız user’ın mevcut domaindeki durumu aşağıdaki gibidir.
NETBIOS vmware.local
UPN linuxpro.com.tr

Mevcut(vmware.local) domaindeki Exchange User durumuda aşağıdaki gibidir.

Tool’ a dönelim tekrardan;
Hedef(vmware.local) domaindeki taşınacağı OU’yu seçin.

Password’un değişmemesi için migrate password seçeneğini işaretleyin.

Mevcuttakini aynı şekilde hedefe taşımak için Target same as source’u işaretleyin.
Sorunsuz bir geçiş istiyorsanız; parçalı bir geçişiniz varsa Migrate user SIDs to target domaini muhakkak işaretleyin.

Mevcut(vmware.local) domain admin bilgilerini girin.

Fix users’ group memberships’i seçin.

Exclude etmek istediğiniz attribute varsa seçin.

Çakışan objelerin sorun çıkarmaması için Do not migrate source object if a conflict is detected in the target domain’i seçin.

Finish’e tıkladığınız an’da taşıma başlayacaktır.

Kısa süre bekledikten sonra taşımanın tamamlandığını göreceksiniz.

Hedef(broadcom.local) domain’e baktığınızda kullanıcının taşındığını göreceksiniz.

User taşıma işlemi sorunsuz bir şekilde tamamlandı. Sıra eski Exchange Server’da kalan mailboxını taşımada.
Mailbox’ı 2 yolla kesintisiz taşıyabilirsiniz;
1.YOL
Recipient Type attribute’ını Synced duruma getirmek ve Remote-Mailbox tanımlamalarını yapmak.
Set-ADUser -Identity "seyma.celenk" -Replace @{msExchRemoteRecipientType=1; msExchRecipientDisplayType=-2147483642; msExchRecipientTypeDetails=2147483648; msExchModerationFlags=0} -Clear msExchHomeServerName -Server "crossdc.broadcom.local"

AD Topoloji servisini restart edin.
Restart-Service MSExchangeADTopology

Remote-Mailbox için gerekli SMTP tanımlamalarını yapın.
Set-RemoteMailbox -Identity "seyma.celenk" -EmailAddressPolicyEnabled $false -PrimarySmtpAddress "[email protected]" -RemoteRoutingAddress "[email protected]" -DomainController "crossdc.broadcom.local"

Remote-Move için aşağıdaki komutu kendi ortamınza göre düzenleyin.
New-MoveRequest -Identity "seyma.celenk" -Remote -RemoteHostName "mail.linuxpro.com.tr" -RemoteCredential (Get-Credential) -TargetDatabase "DB-01" -TargetDeliveyDomain "sercancelenk.com" -BadItemLimit 1

Move başladı.

Tekrar kontrol ettiğinizde tamamlandığını göreceksiniz.
Get-MoveRequest

Taşıma işlemi tamamlandı. Hedef domainde kullanıcı oluştu. İlk yapılacak iş next logon’da şifreyi değiştirmeyi disable edeceğiz.

Set-ADUser -Identity "seyma.celenk" -ChangePasswordAtLogon $false
![]()
Next logonda şifre değiştirme disable edildi.

AD Connect / Entra Connect mail attribute’u ile sync ediyorsa sıkıntı olmaması için mail attribute’unu düzenleyin.
Set-ADUser -Identity "seyma.celenk" -EmailAddress "[email protected]"

Mail kısmıda düzenlendi.

Yeni Domaindeki Exchange sunucusunda kullanı OWA’sını açtığınızda sorunsuz bir şekilde maillerin taşındığını göreceksiniz.

2.YOL
YALNIZCA KULLANICIYI MIGRATE ETTIKTEN SONRA YENI DOMAINDEKI USER’IN YENI EXCHANGEDEKI BAGLANTISINI KOPARTIP YENI BIR REMOTE-MAILBOX TANIMLAMASI YAPMAK.
Mevcut domaindeki kullanıcıyı Hedef domaine gönderdiniz. Sıra yine mailboxı taşıma işleminde. Remote-mailbox olarak eklenen mailboxın önce içeriğini temizleyeceğiz.
Get-Mailbox

Hedef(broadcom.local) Exchange Server’ına gelen kullanıcı remote mailboxını disable edin.
Disable-Mailbox -Identity "seyma.celenk" -Confirm:$false

Mevcut(vmware.local) Exchange Server’ında taşınacak mailboxın ExchangeGUID’sini çekin.
Get-Mailbox -Identity "seyma.celenk" | Select-Object Name, ExchangeGUID

Hedef(broadcom.local) Exchange Server’ında Remote-Mailbox’ı Enable edip, Mevcut yani taşınacak Exchange Server’daki user’ın UPN’ini RemoteRoutingAddress olarak ekleyin.
Enable-RemoteMailbox -Identity "seyma.celenk" -RemoteRoutingAddress "[email protected]

Demin aldığınız ExchangeGUID’i RemoteMailbox’a ekleyin.
Set-RemoteMailbox -Identity "seyma.celenk" -ExchangeGuid "302517fd-aedb-4610-8fa6-c04c4b777243"

AD Connect / Entra Connect mail attribute’u ile sync ediyorsa sıkıntı olmaması için mail attribute’unu düzenleyin.
Set-ADUser -Identity "seyma.celenk" -EmailAddress "[email protected]"

SMTP proxyAddresses attribute’ını düzenleyin.
Set-RemoteMailbox -Identity "seyma.celenk" -EmailAddressPolicyEnabled $false -EmailAddresses "SMTP:[email protected]"

Taşıma işlemi artık başlatılabilir. Aşağıdaki komutu kendi altyapınıza göre düzenleyin.
New-MoveRequest -Identity "[email protected]" -Remote -RemoteHostName "mail.linuxpro.com.tr" -RemoteCredential $SourceCredential -TargetDatabase "DB-01" -BatchName "CrossForest_SeymaCelenk" -TargetDeliveryDomain "sercancelenk.com"

Taşıma başladı.

Taşıma tamamlandı.
Get-MoveRequest

OWA’yı açtığınızda sorunsuz bir şekilde maillerin taşındığını ve kullanıma hazır olduğunu göreceksiniz.

SENARYO 2: YENI DOMAINE TAŞINMA SÜRECİNDE UPN DEĞİŞİKLİĞİ VARSA;
Mevcut(vmware.local) tcelenk UPN’li kullanıcı Hedef(broadcom.local) domainine tusem.celenk UPN’li olacak şekilde taşınacak.

Bir excell’de şu şekilde .csv dosyası hazırlayın.

User Account Migration Wizard’da Read objects from an include file kısmına tıklayın.

İlgili .csv doyasını gösterin ve kullanıcının Mevcut(vmware.local) domainde bulunduğu OU’yı seçin.

Hedef(broadcom.local) domainde taşınacağı OU’yu seçin.

Şifreleri yine aynı şekilde taşımak istiyorsanız Migrate passwords kısmını işaretleyin.


Mevcut(vmware.local) domain admin bilgilerini girin.






Mevcut domain;
VMWARE\tcelenk
[email protected]
Hedef domain;
BROADCOM\tusem.celenk
[email protected]
tcelenk kullanıcısı tusem.celenk UPN’i ile sorunsuz bir şekilde Hedef(broadcom.local) domainine taşındı.

Taşıma sonrası mailbox taşımalarıda yapılacaksa yukarıda gösterilen şekilde remote-move yapılarak sorunsuz bir şekilde geçiş tamamlanabilir.
SENARYO 3 :AD KULLANICILARIN TAŞINMAYIP, YALNIZCA KULLANICI MAILBOXLARININ HEDEF DOMAINDEKI EXCHANGE’E AKTARILMASI
Mevcut domaindeki kullanıcının yalnızca mailboxını yeni domaindeki kullanıcıya aktaracağız.
Mevcut(vmware.local) domain kullanıcısı;
VMWARE\b1934
[email protected]

Hedef(vmware.local) domaindeki hazır kullanıcısı;
BROADCOM\ali.can
[email protected]

Mevcut(vmware.local) domain’indeki kullanıcı mailboxı

Hedef(broadcom.local) domain Exchange suncusunda aşağıdaki komutu çalıştırın.
Enable-RemoteMailbox -Identity "ali.can" -RemoteRoutingAddress "[email protected]"

Mevcut(vmware.local) domain Exchange sunucusunda aşağıdaki komutu çalıştırarak, mailboxın guid’sini alın.
Get-Mailbox -Identity "ali.can" | Select-Object Name, ExchangeGUID

Set-RemoteMailbox -Identity "ali.can" -ExchangeGuid "bb96598e-050f-4228-817b-dc66d13f73db"

Set-RemoteMailbox -Identity "ali.can" -EmailAddressPolicyEnabled $false -EmailAddresses "SMTP:[email protected]"

New-MoveRequest -Identity "[email protected]" -Remote -RemoteHostName "mail.linuxpro.com.tr" -RemoteCredential $SourceCredential -TargetDatabase "DB-01" -BatchName "CrossForest_AliCan" -TargetDeliveryDomain "sercancelenk.com"

Get-MoveRequest


