Tüm posta kutularını bir veritabanından diğerine taşıyın


Bazen tüm posta kutularını Exchange Server'daki bir veritabanından başka bir veritabanına taşımanız gerekir. Yeni hedef veritabanı mevcut veya yeni bir posta kutusu veritabanı olabilir. Bunu yapmanın en iyi yolu ne? Bu makalede, tüm posta kutularını bir veritabanından diğerine nasıl taşıyacağınızı öğreneceksiniz. Çalıştırılacak tek bir cmdlet olduğunu size söylemiş miydik?

Neden tüm posta kutularını taşıyorsun?

Tüm posta kutularını neden bir posta kutusu veritabanından başka bir posta kutusu veritabanına taşımak istediğinize dair bazı örnekler:

  • Posta kutusu veritabanı bozuk

  • Posta kutusu veritabanındaki kullanılabilir beyaz alanı temizleyin

Not: Hangi posta kutularının en fazla alanı kapladığını bilmek ister misiniz? PowerShell ile Exchange'deki tüm kullanıcıların posta kutusu boyutunu alma makalesini okuyun.

Takılı posta kutusu veritabanlarını bulun

Kaynak ve hedef posta kutusu veritabanlarını zaten biliyoruz. Posta kutusu veritabanlarının adlarına sahip değilseniz, Exchange Server'a hangi veritabanlarının eklendiğini kontrol edin.

Exchange Management Shell'i yönetici olarak çalıştırın. Daha sonra, önceki Exchange sürümlerindeki posta kutusu veritabanını almak için -IncludePreExchange parametresini içeren Get-MailboxDatabase cmdlet'ini çalıştırın.

[PS] C:\>Get-MailboxDatabase -IncludePreExchange -Status | Sort Name | Format-Table Name, Server, Mounted

Name Server    Mounted
---- ------    -------
DB01 EX01-2016    True
DB02 EX01-2016    True

İki posta kutusu veritabanımızın olduğunu görebiliriz. Bu nedenle, posta kutularını kaynak posta kutusu veritabanı DB01'den hedef posta kutusu veritabanı DB02'ye taşıyacağız.

PowerShell ile tüm posta kutularını bir veritabanından başka bir veritabanına taşıma

Posta kutularını CSV'ye aktarmanız ve ardından posta kutularını taşımak için bir taşıma isteği oluşturmanız gerekmez. Bunun yerine bunu daha hızlı yapabilirsiniz. Aşağıdaki cmdlet'ler Exchange Server 2010/2013/2016/2019 için geçerlidir.

Önemli: Posta kutularını taşımadan önce -ViewEntireForest parametresi de dahil olmak üzere Set-ADServerSettings cmdlet'ini çalıştırın. Bu, ormanın tamamındaki nesneleri görmenizi sağlayacaktır.

[PS] C:\>Set-ADServerSettings -ViewEntireForest $true

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.

Posta kutusu

[PS] C:\>Get-Mailbox -Database "DB01" -ResultSize Unlimited | New-MoveRequest -TargetDatabase "DB02"

DisplayName       StatusDetail        TotalMailboxSize         TotalArchiveSize PercentComplete
-----------       ------------        ----------------         ---------------- ---------------
Administrator     WaitingForJobPickup 694.2 KB (710,903 bytes)                  0
Christopher Payne WaitingForJobPickup 805.7 KB (825,070 bytes)                  0
Mary Walsh        WaitingForJobPickup 53.4 KB (54,682 bytes)                    0
Benetiz Anees     WaitingForJobPickup 411.4 KB (421,233 bytes)                  0
Larson Tevin      WaitingForJobPickup 40.93 KB (41,913 bytes)                   0
Jake Cornish      WaitingForJobPickup 40.93 KB (41,913 bytes)                   0

Posta Kutusu Planı

Posta kutusu planı şirket içi Exchange ortamlarıyla ilgili değildir. Yalnızca bulut tabanlı hizmette kullanılabilir.

Posta kutusu planı, Exchange Online'daki posta kutusu özelliklerini otomatik olarak yapılandıran bir şablondur. Posta kutusu planları Office 365 lisans türlerine karşılık gelir. Yeni bir kullanıcıya lisans atadığınızda, oluşturulan yeni posta kutusundaki ayarları yapılandırmak için ilgili posta kutusu planı kullanılır. Mevcut bir kullanıcıya atanan lisansı değiştirirseniz posta kutusu planındaki yeni lisansla ilişkili ayarlar kullanıcının mevcut posta kutusuna uygulanır.

Posta kutusunu arşivle

[PS] C:\>Get-Mailbox -ResultSize Unlimited | Where {$_.ArchiveDatabase -like "DB01"} | New-MoveRequest -ArchiveTargetDatabase "DB02"

Ortak klasör posta kutusu

[PS] C:\>Get-Mailbox -Database "DB01" -PublicFolder | New-MoveRequest -TargetDatabase "DB02"

Tahkim posta kutusu

[PS] C:\>Get-Mailbox -Database "DB01" -Arbitration | New-MoveRequest -TargetDatabase "DB02"

Denetim Günlüğü posta kutusu

[PS] C:\>Get-Mailbox -Database "DB01" -AuditLog | New-MoveRequest -TargetDatabase "DB02"

Posta kutusunu izleme

En iyi uygulama, izleme posta kutularını posta kutusu veritabanları arasında taşımamaktır. Deneyimlerime göre izleme posta kutusunu bulup devre dışı bırakmak en iyisidir. Bunu yapmazsanız, posta kutusu veritabanını sildikten sonra olay görüntüleyici günlüklerinde tekrarlanan bir uyarı alırsınız. Ayrıca sağlık posta kutuları da bozuk durumda olacaktır. Makaleyi okuyun, Exchange sağlık posta kutularını kontrol edin.

[PS] C:\>Get-Mailbox -Database "DB01" -Monitoring | Disable-Mailbox -Confirm:$false

Bir sonraki adımda posta kutusu taşıma işlemlerinin tamamlanıp tamamlanmadığını kontrol edeceğiz.

Başka bir veritabanına taşıma isteğini kontrol edin

Posta kutusu taşıma işlemlerinin ilerlemesine bir göz atın. Taşıma isteğini kontrol etmek için Get-MoveRequestStatistics cmdlet'ini çalıştırın.

[PS] C:\>Get-MoveRequestStatistics -MoveRequestQueue "DB02" | Sort DisplayName

DisplayName              StatusDetail TotalMailboxSize         TotalArchiveSize PercentComplete
-----------              ------------ ----------------         ---------------- ---------------
Administrator            Completed    694.2 KB (710,903 bytes)                  100
Ali Tajran               Completed    418.1 KB (428,159 bytes)                  100
Amanda Morgan            Completed    728.2 KB (745,692 bytes)                  100
Anna Welch               Completed    60.56 KB (62,017 bytes)                   100
Benetiz Anees            Completed    411.4 KB (421,233 bytes)                  100
Boris Campbell           Completed    427.9 KB (438,136 bytes)                  100

Tamamlanan taşıma isteğini kaldır

Taşıma işlemi tamamlandıktan sonra Exchange'de tamamlanan taşıma isteklerini kaldırın. Bu, posta kutularını bir dahaki sefere taşıdığınızda size net bir görünüm sağlayacaktır. Tüm taşıma isteklerini kaldırmak istiyorsanız ikinci komutu çalıştırın.

[PS] C:\>Get-MoveRequest -MoveStatus Completed -ResultSize Unlimited | Remove-MoveRequest -Confirm:$false

[PS] C:\>Get-MoveRequest -ResultSize Unlimited | Remove-MoveRequest -Confirm:$false

Artık posta kutularını taşıdığımıza göre, DB01 kaynak posta kutusu veritabanını kaldırabiliriz.

Çözüm

Exchange Server'da tüm posta kutularını bir veritabanından başka bir veritabanına nasıl taşıyacağınızı öğrendiniz. Öncelikle Exchange Server'da oluşturulan tüm posta kutusu veritabanlarını alın. Hangi posta kutusu veritabanının kaynak, hangisinin hedef olduğunu yazın. Tüm posta kutularını bir veritabanından diğerine taşımak için cmdlet'i makalede gösterildiği gibi çalıştırın. Posta kutusu taşıma isteği durumunu kontrol edin ve tamamlandığında tamamlanan taşıma isteklerini temizleyin.

Bu makaleyi beğendiniz mi? Ayrıca Exchange Server'da posta kutusu taşıma isteğini duraklat seçeneğini de beğenebilirsiniz. Bizi takip etmeyi ve bu yazımızı paylaşmayı unutmayın.

İlgili makaleler