ย้ายกล่องจดหมายไปยังฐานข้อมูลอื่นด้วย PowerShell
คุณสามารถย้ายกล่องจดหมายใน Exchange 2010/2013/2016/2019 ไปยังฐานข้อมูลอื่นด้วย PowerShell อย่างไรก็ตาม มีวิธีอื่นนอกเหนือจาก PowerShell นั่นก็คือ Exchange Control Panel (ECP) ฉันแนะนำให้ทำกับ Exchange Management Shell (EMS) ECP ไม่ได้รีเฟรชผลลัพธ์อย่างรวดเร็วเสมอไป ในบทความนี้ เราจะย้ายกล่องจดหมายไปยังฐานข้อมูลอื่นด้วย PowerShell
ข้อมูล
เรามีผู้ใช้ชื่อ John Doe และอีเมลของเขาคือ john.doe@exoip.com เราต้องการย้ายกล่องจดหมายของผู้ใช้ไปยังฐานข้อมูลอื่นด้วย PowerShell
หมายเหตุ: ก่อนที่จะย้ายกล่องจดหมายไปยังฐานข้อมูลอื่น ตรวจสอบให้แน่ใจว่าคุณได้อ่านบทความแนวทางปฏิบัติที่ดีที่สุดของฐานข้อมูล Exchange แล้ว
คุณต้องการย้ายกล่องจดหมายแต่ระงับคำขอย้ายก่อนที่จะถึงสถานะ CompletionInProgress เพื่อให้คุณสามารถดำเนินการได้ด้วยตนเองหรือไม่ วิธีที่ยอดเยี่ยมในการใช้สวิตช์ -SuspendWhenReadyToComplete ในทุกคำสั่ง
รับข้อมูลกล่องจดหมายด้วย PowerShell
ก่อนอื่นเรามาตรวจสอบฐานข้อมูลที่ผู้ใช้อยู่ในปัจจุบัน เรียกใช้ Exchange Management Shell ในฐานะผู้ดูแลระบบ และเรียกใช้ Get-Mailbox cmdlet คุณสามารถค้นหาด้วยที่อยู่อีเมลของผู้ใช้หรือชื่อผู้ใช้
กล่องจดหมายหลักและที่ตั้งกล่องจดหมายเก็บถาวรอยู่ในฐานข้อมูล DB01
[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
ตอนนี้เรารู้แล้วว่ากล่องจดหมายหลักและกล่องจดหมายเก็บถาวรอยู่ใน DB01 มาดูขั้นตอนถัดไปเกี่ยวกับวิธีย้ายกล่องจดหมายกัน
ย้ายกล่องจดหมายหลักและกล่องจดหมายเก็บถาวรด้วย PowerShell
ย้ายกล่องจดหมายหลักและกล่องจดหมายเก็บถาวรไปยังฐานข้อมูลอื่น เราจะย้ายกล่องจดหมายหลักและกล่องจดหมายเก็บถาวรไปยังฐานข้อมูล DB02
มาเรียกใช้ New-MoveRequest cmdlet
[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 อีกทางเลือกหนึ่งคือย้ายกล่องจดหมายหลักและเก็บกล่องจดหมายถาวรไปยังฐานข้อมูลกล่องจดหมายอื่น มาย้ายกล่องจดหมายหลักไปที่ DB02 และกล่องจดหมายเก็บถาวรไปที่ DB03
[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 ย้ายกล่องจดหมายหลักด้วย PowerShell เท่านั้น
สมมติว่าเราต้องการย้ายกล่องจดหมายหลักเท่านั้น เราต้องเพิ่มพารามิเตอร์ -PrimaryOnly ให้กับคำสั่ง
[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 ย้ายกล่องจดหมายเก็บถาวรด้วย PowerShell เท่านั้น
หากเราต้องการย้าย กล่องจดหมายเก็บถาวรเท่านั้น เราจำเป็นต้องเพิ่มพารามิเตอร์ -ArchiveTargetDatabase และ -ArchiveOnly ให้กับคำสั่ง
[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
เรียกใช้ Get-MoveRequest cmdlet และ Get-MoveRequestStatistics cmdlet เพื่อตรวจสอบสถานะการย้ายกล่องจดหมาย
[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 กำลังคัดลอกข้อความ รันคำสั่งอีกครั้ง
[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 เมื่อกล่องจดหมายเสร็จสมบูรณ์ คุณจะเห็นว่า john.doe@exoip.com เสร็จสมบูรณ์ 100%
ตรวจสอบการย้ายกล่องจดหมายเสร็จสมบูรณ์ด้วย PowerShell
ตรวจสอบว่ากล่องจดหมายของผู้ใช้และกล่องจดหมายเก็บถาวรถูกย้ายไปยังฐานข้อมูลใหม่หรือไม่
[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
กล่องจดหมายทั้งสองถูกย้ายเรียบร้อยแล้ว คุณจะย้ายกล่องจดหมายไปที่ Exchange 2010/2013/2016/2019 ด้วย PowerShell หรือไม่
อ่านเพิ่มเติม: ย้ายกล่องจดหมายทั้งหมดจากฐานข้อมูลหนึ่งไปยังอีกฐานข้อมูลหนึ่ง »
บทสรุป
คุณได้เรียนรู้วิธีย้ายกล่องจดหมายใน Exchange 2010/2013/2016/2019 ไปยังฐานข้อมูลอื่นด้วย PowerShell ฉันหวังว่าคุณจะสามารถใช้คำสั่งเหล่านี้ให้เกิดประโยชน์ได้ และการย้ายกล่องจดหมายไปยังฐานข้อมูลอื่นจะดำเนินไปด้วยดี เป็นการดีเสมอที่จะเก็บคำสั่งเหล่านี้ไว้ข้างตัวหากคุณต้องการย้ายกล่องจดหมายไปยังฐานข้อมูลอื่นในอนาคต
คุณสนุกกับบทความนี้หรือไม่? คุณอาจต้องการบันทึกการล้างข้อมูล Exchange 2013/2016/2019 อย่าลืมติดตามเราและแบ่งปันบทความนี้