PowerShell ile posta kutusunu başka bir veritabanına taşıma


Exchange 2010/2013/2016/2019'daki bir posta kutusunu PowerShell ile başka bir veritabanına taşıyabilirsiniz. Ancak PowerShell'den başka bir yol daha var. Bu, Exchange Kontrol Paneli (ECP) ile olur. Bunu Exchange Management Shell (EMS) ile yapmanızı öneririm. ECP sonuçları yenilemede her zaman hızlı değildir. Bu yazımızda PowerShell ile bir mail kutusunu başka bir veritabanına taşıyacağız.

Bilgi

John Doe adında bir kullanıcımız var ve e-posta adresi john.doe@exoip.com. Kullanıcı posta kutusunu PowerShell ile başka bir veritabanına taşımak istiyoruz.

Not: Posta kutusunu başka bir veritabanına taşımadan önce Exchange veritabanı en iyi uygulamaları makalesini okuduğunuzdan emin olun.

Posta kutusunu taşımak, ancak taşıma isteğini Tamamlama Devam Ediyor durumuna ulaşmadan önce askıya almak ve böylece işlemi manuel olarak tamamlamak mı istiyorsunuz? Mükemmel bir yol, her komutta -SuspendWhenReadyToComplete anahtarını kullanmaktır.

PowerShell ile posta kutusu bilgilerini alın

Öncelikle kullanıcının şu anda hangi veritabanında olduğunu kontrol edelim. Exchange Management Shell'i yönetici olarak çalıştırın ve Get-Mailbox cmdlet'ini çalıştırın. Kullanıcı e-posta adresine veya kullanıcının adına göre arama yapabilirsiniz.

Birincil posta kutusu ve arşiv posta kutusu konumları DB01 veritabanındadır.

[PS] C:\>Get-Mailbox "john.doe@exoip.com" | Format-Table Name,PrimarySmtpAddress,Database,ArchiveDatabase

Name     PrimarySmtpAddress Database ArchiveDatabase
----     ------------------ -------- ---------------
John Doe John.Doe@exoip.com DB01     DB01           
[PS] C:\>Get-Mailbox "John Doe" | Format-Table Format-Table Name,PrimarySmtpAddress,Database,ArchiveDatabase

Name     PrimarySmtpAddress Database ArchiveDatabase
----     ------------------ -------- ---------------
John Doe John.Doe@exoip.com  DB01     DB01          

Artık birincil posta kutusunun ve arşiv posta kutusunun DB01'de olduğunu bildiğimize göre, posta kutularını nasıl taşıyacağımızla ilgili bir sonraki adıma bakalım.

PowerShell ile birincil posta kutusunu taşıyın ve posta kutusunu arşivleyin

Birincil posta kutusunu ve arşiv posta kutusunu başka bir veritabanına taşıyın. Birincil posta kutusunu ve arşiv posta kutusunu DB02 veritabanına taşıyacağız.

New-MoveRequest cmdlet'ini çalıştıralım.

[PS] C:\>New-MoveRequest "john.doe@exoip.com" -TargetDatabase "DB02"

DisplayName StatusDetail        TotalMailboxSize               TotalArchiveSize         PercentComplete
----------- ------------        ----------------               ----------------         ---------------
John Doe    WaitingForJobPickup 4.891 GB (5,251,716,383 bytes) 810.9 KB (830,394 bytes) 0              

Diğer bir seçenek de birincil posta kutusunu ve arşiv posta kutusunu farklı posta kutusu veritabanlarına taşımaktır. Birincil posta kutusunu DB02'ye, arşiv posta kutusunu da DB03'e taşıyalım.

[PS] C:\>New-MoveRequest "john.doe@exoip.com" -TargetDatabase "DB02" -ArchiveTargetDatabase "DB03"

DisplayName StatusDetail        TotalMailboxSize               TotalArchiveSize         PercentComplete
----------- ------------        ----------------               ----------------         ---------------
John Doe    WaitingForJobPickup 4.891 GB (5,251,716,383 bytes) 810.9 KB (830,394 bytes) 0              

Birincil posta kutusunu yalnızca PowerShell ile taşıyın

Yalnızca birincil posta kutusunu taşımak istediğimizi varsayalım. -PrimaryOnly parametresini komuta eklememiz gerekiyor.

[PS] C:\>New-MoveRequest "john.doe@exoip.com" -TargetDatabase "DB02" -PrimaryOnly

DisplayName StatusDetail        TotalMailboxSize               TotalArchiveSize PercentComplete
----------- ------------        ----------------               ---------------- ---------------
John Doe    WaitingForJobPickup 4.891 GB (5,251,716,383 bytes)                  0              

Arşiv posta kutusunu yalnızca PowerShell ile taşıyın

Yalnızca arşiv posta kutusunu taşımak istiyorsak komuta -ArchiveTargetDatabase ve -ArchiveOnly parametrelerini eklememiz gerekir.

[PS] C:\>New-MoveRequest "john.doe@exoip.com" -ArchiveTargetDatabase "DB02" -ArchiveOnly

DisplayName StatusDetail        TotalMailboxSize TotalArchiveSize         PercentComplete
----------- ------------        ---------------- ----------------         ---------------
John Doe    WaitingForJobPickup 0 B (0 bytes)    812.4 KB (831,851 bytes) 0              

PowerShell ile posta kutusu taşıma ilerlemesini kontrol etme

Posta kutusu taşıma durumunu kontrol etmek için Get-MoveRequest cmdlet'ini ve Get-MoveRequestStatistics cmdlet'ini çalıştırın.

[PS] C:\>Get-MoveRequest | Get-MoveRequestStatistics

DisplayName StatusDetail    TotalMailboxSize               TotalArchiveSize         PercentComplete
----------- ------------    ----------------               ----------------         ---------------
John Doe    CopyingMessages 4.891 GB (5,251,716,383 bytes) 812.4 KB (831,851 bytes) 84             

Mesajlar kopyalanıyor. Komutu tekrar çalıştırın.

[PS] C:\>Get-MoveRequest | Get-MoveRequestStatistics

DisplayName StatusDetail TotalMailboxSize               TotalArchiveSize         PercentComplete
----------- ------------ ----------------               ----------------         ---------------
John Doe    Completed    4.891 GB (5,251,716,383 bytes) 812.4 KB (831,851 bytes) 100            

Posta kutusu tamamlandığında john.doe@exoip.com adresinin %100 tamamlandığını göreceksiniz.

PowerShell ile posta kutusu taşıma işleminin tamamlandığını doğrulama

Kullanıcı posta kutusunun ve arşiv posta kutusunun yeni veritabanına taşınıp taşınmadığını kontrol edin.

[PS] C:\>Get-Mailbox "john.doe@exoip.com" | Format-Table Name,PrimarySmtpAddress,Database,ArchiveDatabase

Name     PrimarySmtpAddress Database ArchiveDatabase
----     ------------------ -------- ---------------
John Doe John.Doe@exoip.com DB02     DB03           

Her iki posta kutusu da başarıyla taşındı. Posta kutusunu PowerShell ile Exchange 2010/2013/2016/2019'a taşıyacak mısınız?

Devamını oku: Tüm posta kutularını bir veritabanından diğerine taşıma »

Çözüm

Exchange 2010/2013/2016/2019'daki bir posta kutusunu PowerShell ile başka bir veritabanına nasıl taşıyacağınızı öğrendiniz. Umarım bu komutları iyi şekilde kullanırsınız ve posta kutusunun başka bir veritabanına taşınması harika olur. Gelecekte bir posta kutusunu başka bir veritabanına taşımanız gerekirse, bu komutları yanınızda bulundurmak her zaman iyidir.

Bu makaleyi beğendiniz mi? Ayrıca Exchange 2013/2016/2019 Temizleme günlüklerini de beğenebilirsiniz. Bizi takip etmeyi ve bu yazımızı paylaşmayı unutmayın.

İlgili makaleler