ค้นหาเว็บไซต์

ย้ายกล่องจดหมายไปยังฐานข้อมูลอื่นด้วย 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 อย่าลืมติดตามเราและแบ่งปันบทความนี้

บทความที่เกี่ยวข้อง