Daha önce pst formatında yedeklenmiş bir mailbox’ı Exchage Server’e geri yükleyebilirsiniz fakat bu yedekler gerçek senaryolarda genelde onlarca olabiliyor. Hal böyle olunca her biri için Import isteği göndermek çok zor olacağından aşağıdaki ufak scripti geliştirdik.

Gerekli Haklar

PST dosyasını Import edebilemk için önceliklle Mailbox Import Export rolüne sahip olmamız gerekir. Aşağıdaki komut ile Administrator’a verebilirsiniz.

New-ManagementRoleAssignment –Role "Mailbox Import Export" –User Administrator

Tek Dosyayı Import Edin

Bu yetkilendirmeden sonra eğer isterseniz tek bir PST Import etmek için aşağıdaki komutu kullanabilirsiniz.

New-MailboxImportRequest -Mailbox info@domain.com -FilePath "\\localhost\c$\Backups\info@domain.com.pst" -Confirm:$false

Bir Klasörü Import Edin

Eğer teker teker yapamayacağınızdan fazla *.pst dosyanız varsa. Bir klaösrdeki tüm PST’ler için ImportRequest başlatan aşağıdaki Powershell scriptini kullanabilirsiniz.

. 'C:\Program Files\Microsoft\Exchange Server\V15\bin\RemoteExchange.ps1'
Connect-ExchangeServer -Auto
$Source = Read-Host "Source Directory (\\localhost\c$\Backups)"

Get-ChildItem *.pst -Path $Source | Select Name,BaseName | ForEach { 
 New-MailboxImportRequest -MailBox $_.BaseName -FilePath "$Source\$($_.Name)" -BadItemLimit 9999 -Confirm:$false
}

Biraz optimizasyon:

-InternalFlags "SkipPreFinalSyncDataProcessing","SkipWordBreak","SkipStorageProviderForSource","SkipMailboxReleaseCheck","SkipProvisioningCheck","DoNotConvertSourceToMeu"

İstekleri Temizleyin

Import Request’leri Exchange Server’da Get-MailBoxImportRequest komutu ile izleyebilirsiniz. Import işlemi tamamlandığında bu işlemi kuyruktan temizlememiz gerekir. Aşağıdaki komut ile verdiğiniz Import Request’lerin “Completed” olanlarını temizleyebilirsiniz.

Get-MailboxImportRequest | Where { $_.Status –eq 'Completed' } | Remove-MailboxImportRequest –Confirm:$False

Hataları Yakalayın

Gerçek hayatta MailBox’ları import ederken çeşitli onlarca hata ile karşılaşırsınız. Import isteği yaptığınız bir pst dosyasının Exchange Server’a aktarılırken durumu Failed olabilmektedir. Bu Failed isteklerin neden Failed olduğunu Get-MailboxExportRequestStatistics komutu ile öğrenebilirsiniz.

Get-MailboxImportRequest -Status Failed | Get-MailboxImportRequestStatistics -IncludeReport | Format-Lis
t > C:\Backups\HataRaporlari.txt

İnce Ayar

“C:\Program Files\Microsoft\Exchange Server\V15\Bin\MsExchangeMailboxReplication.exe.config”

Yazar