Exchange Cross-Forest/Child Domain PST Aktarım ve Sorun Çözüm Rehberi
Bu rehber, farklı bir Exchange ortamından (farklı domain/forest veya child domain) PST export alıp başka bir Exchange ortamına (farklı domain/forest/child domain) import etme sürecini baştan sona ve olası sorunları ile çözümlerini kapsar. Ayrıca özel senaryolara ve gerçek çözümlere (ör: mailbox’ı başka DB’ye taşıma) de yer verilmiştir.
1. Senaryolar
- Forest Root → Forest Root: İki farklı ana domain/forest arası.
- Forest Root → Child Domain: Ana domain’den child’a ya da tersi.
- Child Domain → Child Domain: İki farklı child arasında.
- Tek Domain (Baseline): Klasik ortam.
2. Ön Gereksinimler
- Her iki Exchange ortamında admin yetkisi.
- PST export/import için Mailbox Import Export rolü atanmalı.
- File share (paylaşımlı klasör) erişim izinleri (EXCHANGE$ hesabı için) tanımlanmalı.
- DNS, ağ ve firewall izinleri kontrol edilmeli.
3. Kaynak Exchange’den PST Export Alma
3.1. Mailbox Import Export Rolü Atama
New-ManagementRoleAssignment –Role "Mailbox Import Export" –User KAYNAKDOMAINadm.yonetici
3.2. Export İçin File Share Ayarı
- Paylaşımlı klasör aç (ör:
\fileserverpst_exports) - Exchange sunucusunun bilgisayar hesabına (EXCHANGE$) Full Control ver.
3.3. Export Komutu
New-MailboxExportRequest -Mailbox "user1@source.com" -FilePath "\fileserverpst_exportsuser1.pst"
Child domain ortamında:
New-MailboxExportRequest -Mailbox "user1@child.source.com" -FilePath "\fileserverpst_exportsuser1.pst" -DomainController dc1.child.source.com
3.4. Export Durumunu İzleme
Get-MailboxExportRequest | Get-MailboxExportRequestStatistics
4. PST Dosyasını Hedef Exchange Ortamına Aktar
- Dosyayı hedef Exchange’in erişebileceği bir file share’e kopyala (ör:
\targetfileserverpst_imports).
5. Hedef Exchange’de PST Import
5.1. Import Export Rolü Atama
New-ManagementRoleAssignment –Role "Mailbox Import Export" –User HEDEFDOMAINadm.yonetici
5.2. File Share Yetkileri
- Hedef Exchange sunucusu bilgisayar hesabına (EXCHANGE2$) read izni ver.
5.3. Import Komutu
New-MailboxImportRequest -Mailbox "user1@target.com" -FilePath "\targetfileserverpst_importsuser1.pst"
Child domain ortamında:
New-MailboxImportRequest -Mailbox "user1@child.target.com" -FilePath "\targetfileserverpst_importsuser1.pst" -DomainController dc1.child.target.com
5.4. Import Durumunu İzleme
Get-MailboxImportRequest | Get-MailboxImportRequestStatistics
6. Sık Karşılaşılan Sorunlar ve Çözümleri
6.1. “MailboxCapacityExceeded” / Kotaya Takılma
- Kullanıcı mailbox kotası ve database kotasını kontrol et:
Get-Mailbox "user1@target.com" | fl IssueWarningQuota,ProhibitSendQuota,ProhibitSendReceiveQuota,Database
Get-MailboxDatabase "DBNAME" | fl IssueWarningQuota,ProhibitSendQuota,ProhibitSendReceiveQuota
- Kotaları yükselt:
Set-Mailbox "user1@target.com" -IssueWarningQuota 98GB -ProhibitSendQuota 99GB -ProhibitSendReceiveQuota 100GB
Set-MailboxDatabase "DBNAME" -IssueWarningQuota 98GB -ProhibitSendQuota 99GB -ProhibitSendReceiveQuota 100GB
- Child domain’de ise:
Set-Mailbox "user1@child.target.com" ... -DomainController dc1.child.target.com
Ekstra: Mailbox’ı Başka Bir Database’e Taşıyarak Sorunu Çözmek
Bazen mailbox kota/bozulma sorunları klasik yöntemle çözülmez ise Mailbox’ı farklı bir DB’ye taşımayı deneyin.
New-MoveRequest -Identity "user1@target.com" -TargetDatabase "YeniMailboxDB"
# Örnek:
New-MoveRequest -Identity "HEDEFDOMAINadm.yonetici" -TargetDatabase "YeniMailboxDB"
Child domain örneği:
New-MoveRequest -Identity "adm.yonetici@child.target.com" -TargetDatabase "YeniMailboxDB" -DomainController dc1.child.target.com
Taşıma bittiğinde:
Get-MoveRequest | Remove-MoveRequest -Confirm:$false
Sonra import işlemini tekrar deneyin.
6.2. “Sync Destination Mode” / Mailbox Kitli
- Aktif move/import/export request var mı kontrol et:
Get-MoveRequest
Get-MailboxImportRequest
Get-MailboxExportRequest
- Tümünü kaldır:
Get-MoveRequest | Remove-MoveRequest -Confirm:$false
Get-MailboxImportRequest | Remove-MailboxImportRequest -Confirm:$false
Get-MailboxExportRequest | Remove-MailboxExportRequest -Confirm:$false
- Hala move request varsa, GUID veya identity ile sil:
Remove-MoveRequest -Identity "child.target.com/OU/Users/User1" -DomainController dc1.child.target.com
Remove-MoveRequest -ExchangeGuid xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -DomainController dc1.child.target.com
6.3. “New-MailboxExportRequest is not recognized” Hatası
Mailbox Import Export Rolü/Grubu Oluşturma ve Admin’e Yetki Verme
Bu komutları kullanmadan önce, rol atanmalı. Kullanıcı örneği: HEDEFDOMAINadm.yonetici
1. Role Group oluşturup admin’i ekle:
New-RoleGroup -Name "Mailbox Import Export" -Roles "Mailbox Import Export" -Members "HEDEFDOMAINadm.yonetici"
2. Veya sadece rol ataması:
New-ManagementRoleAssignment –Role "Mailbox Import Export" –User "HEDEFDOMAINadm.yonetici"
3. Mevcut gruba admin ekle:
Add-RoleGroupMember "Mailbox Import Export" -Member "HEDEFDOMAINadm.yonetici"
Değişiklik sonrası shell’i kapatıp tekrar açmanız gerekebilir.
6.4. Recoverable Items/Deleted Items Kotası
- Recoverable Items dolu ise import başarısız olur.
Get-MailboxStatistics "user1@target.com" | fl TotalItemSize,TotalDeletedItemSize
Search-Mailbox -Identity "user1@target.com" -SearchDumpsterOnly -DeleteContent
6.5. LDAP/Domain Controller Sorunları
- “The LDAP server is unavailable” veya benzeri hata alırsanız:
- Doğru domain controller kullanıyor musunuz?
- DC’ye ping atın, port 389 açık mı?
Test-Connection dc1.child.target.com
Test-NetConnection dc1.child.target.com -Port 389
- Gerekirse başka bir DC deneyin veya replikasyon tetikleyin:
repadmin /syncall /AdeP
6.6. Mailbox Replication Service (MRS) Sorunları
- Exchange sunucusunda “Microsoft Exchange Mailbox Replication” servisini yeniden başlatın (
services.msc).
7. İpuçları ve Best Practice
- Her işlemin başında ve sonunda kotaları ve aktif request’leri kontrol edin.
- Child domain ortamında mutlaka doğru DC’yi belirtin.
- Kota değişikliklerinden sonra 1-2 dakika bekleyin.
- Paylaşımlı klasörlerin izinlerini kontrol edin.
- Hatalı request’leri temizlemeden yeni import başlatmayın.
- Import/export işlemlerini yapacak hesabın rolü tam olmalı.
- Database taşıma (move request) işlemi, çözülemeyen kapasite hatalarını aşmak için çok etkilidir.
8. Faydalı Komutlar (Kopyala-Kullan)
- Tüm mailbox’ları export et:
Get-Mailbox -ResultSize Unlimited | %{ New-MailboxExportRequest -Mailbox $_.Alias -FilePath "\fileserverpst_exports$($_.Alias).pst" }
- Tüm mailbox’ları import et (child domain):
Get-Mailbox -ResultSize Unlimited | %{ New-MailboxImportRequest -Mailbox $_.Alias -FilePath "\targetfileserverpst_imports$($_.Alias).pst" -DomainController dc1.child.target.com }