ADMT Tool EXC Migration

Active Directory geçişlerinde kullanıcı hesaplarının bir forest’tan başka bir forest’a taşınması ve Exchange posta kutularının yeni ortama aktarılması gerekebilir.

Bu makalede, kaynak ve hedef Exchange forest’ları arasında posta kutusu taşıma işlemi anlatılmaktadır.

Örnek ortam:

  • Kaynak forest: source.local
  • Hedef forest: target.local
  • Kaynak domain denetleyicisi: dc01.source.local
  • Hedef domain denetleyicisi: dc01.target.local

Cross-forest posta kutusu taşıma işlemi aşağıdaki sırayla yapılmalıdır:

1. Prepare-MoveRequest.ps1
2. ADMT ile kullanıcı taşıma ve birleştirme
3. New-MoveRequest ile posta kutusu taşıma

Bu sırada önce hedef forest’ta posta kutusu için gerekli MailUser nesnesi oluşturulur. Daha sonra ADMT ile kullanıcı hesabı aynı hedef nesneyle birleştirilir. Son aşamada posta kutusu MRS Proxy üzerinden taşınır.

Ön koşullar

İşleme başlamadan önce aşağıdaki şartlar sağlanmalıdır:

  • Kaynak ve hedef forest arasında güven ilişkisi bulunmalıdır.
  • Kaynak ve hedef DNS çözümlemesi çalışmalıdır.
  • Kaynak Exchange üzerinde MRS Proxy açık olmalıdır.
  • Kaynak Exchange’e HTTPS üzerinden erişilebilmelidir. (Kaynak Exchange Sunucudan Hedef Exchange Sunucuya sertifikanın export-import yapılması )
  • Kaynak ve hedef domain denetleyicilerine erişim olmalıdır.
  • Kaynak ve hedef hesapların gerekli yetkileri bulunmalıdır.
  • Hedef forest’ta posta kutusunun oluşturulacağı OU hazır olmalıdır.

Kaynak Exchange üzerinde MRS Proxy kontrolü:

Get-WebServicesVirtualDirectory |
  Format-List Identity,MRSProxyEnabled

Gerekirse etkinleştirme:

Get-WebServicesVirtualDirectory |
  Set-WebServicesVirtualDirectory -MRSProxyEnabled $true

1. Prepare-MoveRequest.ps1 çalıştırılması

İlk adımda Prepare-MoveRequest.ps1 script’i hedef Exchange sunucusunda çalıştırılır.

Bu script, kaynak posta kutusuna ait gerekli Exchange özniteliklerini hedef forest’a aktarır ve hedefte MailUser nesnesi oluşturur.

Önce kaynak ve hedef forest kimlik bilgileri alınır:

$LocalCredentials = Get-Credential
$RemoteCredentials = Get-Credential
  • $LocalCredentials: Hedef forest hesabı
  • $RemoteCredentials: Kaynak forest hesabı

Ardından hazırlık script’i çalıştırılır:

.\Prepare-MoveRequest.ps1 `
  -Identity "user1@source.local" `
  -RemoteForestDomainController "dc01.source.local" `
  -RemoteForestCredential $RemoteCredentials `
  -LocalForestDomainController "dc01.target.local" `
  -LocalForestCredential $LocalCredentials `
  -TargetMailUserOU "OU=Migration,DC=target,DC=local"

Komut başarılı olduğunda aşağıdaki benzeri bir çıktı görülmelidir:

Preparation for user1@source.local done.
1 mailbox(s) ready to move.

Bu aşamadan sonra hedef Exchange üzerinde kullanıcı kontrol edilebilir:

Get-Recipient user1 |
  Format-List Name,RecipientTypeDetails,PrimarySmtpAddress,ExternalEmailAddress

Kullanıcının Exchange açısından MailUser olarak görünmesi beklenir:

RecipientTypeDetails : MailUser

2. Kullanıcının ADMT ile taşınması

Prepare işlemi tamamlandıktan sonra kullanıcı ADMT ile hedef forest’a taşınır.

ADMT üzerinde:

  1. Kullanıcı taşıma sihirbazı başlatılır.
  2. Kaynak kullanıcı seçilir.
  3. Hedef OU olarak şu OU kullanılır
  4. İşlem, mümkünse Migrate and Merge yöntemiyle gerçekleştirilir.
  5. Hedefte Prepare-MoveRequest.ps1 tarafından oluşturulan kullanıcı nesnesiyle birleştirme yapılır.

ADMT sırasında hariç tutulması gereken Exchange öznitelikleri

ADMT, Exchange’e ait bazı öznitelikleri taşırsa hedef kullanıcı yanlışlıkla UserMailbox olarak oluşabilir. Bu durumda aşağıdaki hata alınabilir:

Database is mandatory on UserMailbox

Bu nedenle ADMT sırasında aşağıdaki öznitelikler hariç tutulmalıdır:

homeMDB
homeMTA
showInAddressBook
msExchHomeServerName
mail
proxyAddresses
msExch*

Bu işlem, Prepare-MoveRequest.ps1 tarafından oluşturulan MailUser bilgilerinin korunmasını sağlar.

ADMT işlemi tamamlandıktan sonra hedef kullanıcı tekrar kontrol edilmelidir:

Get-Recipient user1 |
  Format-List Name,RecipientTypeDetails,EmailAddresses,ExternalEmailAddress

Beklenen değer:

RecipientTypeDetails : MailUser

3. Hedef SMTP proxy adresinin kontrol edilmesi

Hedef MailUser üzerinde hedef forest’a ait SMTP adresinin bulunması gerekir.

Kontrol:

Get-MailUser user1 |
  Format-List EmailAddresses,ExternalEmailAddress

Aşağıdaki adresin bulunması beklenir:

smtp:user1@target.local

Adres eksikse eklenebilir:

Set-MailUser -Identity "user1" `
  -EmailAddresses @{Add="smtp:user1@target.local"}

Bu adres eksik olduğunda aşağıdaki hata görülebilir:

The target mailbox doesn't have an SMTP proxy matching 'target.local'

Ayrıca target.local domaininin hedef Exchange üzerinde kabul edilen domain olarak tanımlı olması gerekir.

4. Posta kutusunun taşınması

ADMT işlemi ve hedef MailUser kontrolleri tamamlandıktan sonra posta kutusu taşınabilir.

Komut hedef Exchange Management Shell üzerinde çalıştırılır:

New-MoveRequest `
  -Identity "user1@source.local" `
  -Remote `
  -RemoteHostName "mail.source.local" `
  -RemoteCredential (Get-Credential "SOURCE\Administrator") `
  -TargetDeliveryDomain "target.local"

Komuttaki parametrelerin görevleri:

  • -Identity: Taşınacak kaynak posta kutusunu belirtir.
  • -Remote: Taşımanın başka bir forest’tan yapılacağını belirtir.
  • -RemoteHostName: Kaynak Exchange’in MRS Proxy adresidir.
  • -RemoteCredential: Kaynak forest hesabıdır.
  • -TargetDeliveryDomain: Hedef forest’ın posta yönlendirme domainidir.

Taşıma durumunun kontrol edilmesi

Taşıma isteğini kontrol etmek için:

Get-MoveRequest -Identity "user1@source.local"

Ayrıntılı durum bilgisi:

Get-MoveRequestStatistics `
  -Identity "user1@source.local" |
  Format-List Status,StatusDetail,PercentComplete,Error

Taşıma başarılı olduğunda aşağıdaki değer görülür:

Status : Completed

Sık karşılaşılan hatalar

Database is mandatory on UserMailbox

Hedef kullanıcı UserMailbox olarak görünmesine rağmen posta kutusu veritabanı atanmamıştır. Genellikle ADMT’nin homeMDB, homeMTA veya msExch* özniteliklerini hedefe taşıması nedeniyle oluşur.

Çözüm:

  • ADMT hariç tutma listesini kontrol edin.
  • Hedef kullanıcıyı UserMailbox olarak bırakmayın.
  • Enable-Mailbox çalıştırmayın.
  • Prepare-MoveRequest.ps1 işlemini doğru sırayla yeniden uygulayın.

The target mailbox doesn’t have an SMTP proxy matching target.local

Hedef MailUser üzerinde hedef domainle eşleşen SMTP adresi bulunmamaktadır.

Kontrol:

Get-MailUser user1 | Format-List EmailAddresses

Gerekirse:

Set-MailUser -Identity "user1" `
  -EmailAddresses @{Add="smtp:user1@target.local"}

LegacyExchangeDN bulunamıyor

Prepare-MoveRequest.ps1, hedef MailUser için yeni LegacyExchangeDN değeri oluşturur.

Kaynak kullanıcının eski LegacyExchangeDN değeri de hedef nesnenin proxyAddresses alanına X500 adresi olarak eklenmelidir. Bu işlem, eski adreslere verilen yanıtların ve mevcut Outlook önbelleklerinin sorunsuz çalışması için önemlidir.

Kaynak domain denetleyicisine erişilemiyor

Bu hata aşağıdaki nedenlerle oluşabilir:

  • Kaynak domain denetleyicisine erişim yoktur.
  • DNS çözümlemesi çalışmıyordur.
  • Kimlik bilgileri hatalıdır.
  • RPC, LDAP veya ADWS portları kapalıdır.
  • Güvenlik duvarı bağlantıyı engelliyordur.
  • Forest güven ilişkisi doğru yapılandırılmamıştır.

ADMT öncesi ve sonrası doğrulama

Prepare işleminden sonra

Get-Recipient user1 |
  Format-List RecipientTypeDetails,EmailAddresses,ExternalEmailAddress

Beklenen:

RecipientTypeDetails : MailUser

ADMT işleminden sonra

Get-Recipient user1 |
  Format-List RecipientTypeDetails,EmailAddresses

Exchange özniteliklerinin korunmuş olması gerekir.

Taşıma tamamlandıktan sonra

Get-MoveRequestStatistics `
  -Identity "user1@source.local" |
  Format-List Status,PercentComplete,Error

Beklenen:

Status : Completed

ADMT ile Exchange forest’lar arası posta kutusu taşımanın önerilen sıralaması şöyledir:

1. Prepare-MoveRequest.ps1
2. ADMT ile kullanıcıyı taşı ve birleştir
3. Exchange özniteliklerini koru
4. Hedef MailUser ve SMTP adresini kontrol et
5. New-MoveRequest ile posta kutusunu taşı
6. Taşıma durumunu takip et

Bu sıranın uygulanması, hedef kullanıcı nesnesinin yanlışlıkla UserMailbox olarak oluşmasını engeller ve posta kutusunun kaynak Exchange ortamından hedef Exchange ortamına daha sağlıklı şekilde taşınmasını sağlar.