ใช้ PowerShell เพื่อคืนค่ากล่องจดหมาย Exchange ที่ถูกลบ


ไม่ว่าคุณจะลบกล่องจดหมายของบุคคลใน Exchange โดยไม่ตั้งใจคุณสามารถกู้คืนได้โดยใช้ PowerShell (PoSh) คีย์กำลังดำเนินการทันทีที่คุณทราบว่ากล่องจดหมายถูกลบไปแล้ว

เป็นช่วงเวลาที่หัวใจเต้นรัวเมื่อเราตระหนักว่าเราได้ทำสิ่งนี้โดยไม่ได้ตั้งใจ หากคุณลบข้อความอีเมลเพียงไม่กี่รายการเราสามารถแสดง วิธีกู้คืนอีเมลที่ถูกลบใน Office 365 ได้เช่นกัน

ก่อนที่เราจะเริ่มโปรดทราบว่านี่มีไว้สำหรับการกู้คืนกล่องจดหมายที่ถูกลบใน Exchange Onlineสำหรับ Office 365 สภาพแวดล้อมและ Exchange 2010นอกจากนี้เรายังสมมติว่าคุณมีสิทธิ์ระดับผู้ดูแลระบบในการใช้วิธีการที่อธิบายไว้และได้ทำ การเขียนสคริปต์ PowerShell ขั้นพื้นฐาน บางอย่างแล้ว

เกิดอะไรขึ้นเมื่อมีการลบกล่องจดหมาย

กล่องจดหมายจะถูกย้ายไปรีไซเคิล Azure Active Directory(AD) ถังขยะใน Exchange Online หรือไดเรกทอรี กล่องจดหมายที่ถูกตัดการเชื่อมต่อใน Exchange 2010

อาจใช้เวลาถึง 30 วันขึ้นอยู่กับนโยบายการเก็บรักษาที่มีอยู่ นั่นทำให้เรามีช่วงเวลาผ่อนผันที่จะรับรู้ถึงความผิดพลาดของเราและกู้คืนจากมัน

กู้คืนกล่องจดหมายที่ถูกลบใน Exchange Online

เชื่อมต่อกับ Exchange Online ผ่าน PowerShell

ในเซสชันโลคัลของคุณให้เปิดคอนโซล Powershell และใช้คำสั่งต่อไปนี้เพื่อตั้งค่าข้อมูลรับรองการเข้าสู่ระบบของคุณเป็นตัวแปร

In_content_1 ทั้งหมด: [300x250] / dfp: [640x360]->
$userCredential

ซึ่งจะทำให้ทำงานกับสคริปต์อื่น ๆ ได้ง่ายขึ้นในภายหลัง

$userCredential = get-Credential

หน้าต่างจะเปิดขึ้นมาซึ่งคุณสามารถป้อน ชื่อผู้ใช้และรหัสผ่านของคุณสำหรับการจัดการ Exchange Online

<รูป class = "lazy aligncenter">

ถัดไปตั้งค่าระดับนโยบายการดำเนินการเพื่อให้เราสามารถทำสิ่งต่าง ๆ ในเซสชันของเราได้จริง สิ่งนี้ทำให้เราสามารถเรียกใช้คำสั่งที่ไม่ได้ลงชื่อของเรา แต่คุณอาจต้องการเรียนรู้ แนวทางปฏิบัติที่ดีที่สุดสำหรับการลงนามสคริปต์ PowerShell ด้วยเช่นกัน

set-ExecutionPolicy Unrestricted

เมื่อได้รับแจ้งให้กด Yสำหรับใช่

ตอนนี้เราจะสร้างตัวแปร $ เซสชันเพื่อใช้ในการเปิดการเชื่อมต่อระหว่างเครื่องคอมพิวเตอร์กับ Exchange Online

$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $userCredential -Authentication Basic -AllowRedirection

strong>Powershell-liveidเป็นรหัสของไซต์ Office ของคุณ โดยปกตินี่จะเป็นชื่อ บริษัท ของคุณ

ใช้คำสั่งต่อไปนี้เพื่อเปิดเซสชัน PoSh ใน Exchange Online:

import-PSSession $Session -DisableNameChecking

ตอนนี้เรากำลังทำงานกับ PowerShell โดยตรงใน Exchange Online แม้ว่าเราจะ กำลังนั่งอยู่ที่คอมพิวเตอร์ของเราเอง

กู้คืนกล่องจดหมายด้วย PowerShell

ส่วนถัดไปนั้นง่ายมาก การเชื่อมต่อจะนำเราไปอีกไกล

สิ่งที่เราต้องทำคือเรียกใช้ cmdlet ที่แสดงด้านล่าง:

undo-SoftDeletedMailbox [email protected] -WindowsLiveID [email protected] -Password (ConvertTo-SecureString -String 'newpassword' -AsPlainText -Force)

เปลี่ยนทั้งสองอินสแตนซ์ของ [email protected]เป็นชื่อกล่องจดหมายที่เหมาะสมและ Windows LiveID ของกล่องจดหมายที่เราต้องการกู้คืน โปรดทราบว่าอาจไม่เหมือนกัน

เราต้องตั้งรหัสผ่านใหม่สำหรับกล่องจดหมายด้วย เปลี่ยน รหัสผ่านใหม่ในสคริปต์เป็นรหัสผ่านที่คุณเลือก คุณจะต้องส่งต่อให้กับผู้ใช้และขอให้พวกเขาเปลี่ยนรหัสผ่านในครั้งต่อไปที่พวกเขาลงชื่อเข้าใช้

ในที่สุดใช้ cmdlet ถัดไปเพื่อตรวจสอบว่าสิ่งนี้ใช้ได้

get-Mailbox [email protected]

หากได้รับการกู้คืนแล้ว cmdlet จะส่งคืนข้อมูลเกี่ยวกับกล่องจดหมายที่คืนค่า หากพบข้อผิดพลาดให้ทำตามคำสั่งอีกครั้งและตรวจสอบให้แน่ใจว่ามีการใช้กล่องจดหมายที่ถูกต้องและ Windows LiveID

หากยังไม่สามารถใช้งานได้เราจะต้องกู้คืนกล่องจดหมายจากการสำรองข้อมูลระบบ มีการสำรองข้อมูลระบบหลายประเภทดังนั้นเกินขอบเขตของสิ่งที่เราทำในวันนี้

เมื่อเราทำเสร็จแล้วเราจะต้องปิดเซสชัน PoSh จำนวนเซสชัน PoSh ที่เราเรียกใช้นั้นมี จำกัด การเปิดทิ้งไว้จะใช้หนึ่งในเซสชันเหล่านั้น หากเราไม่ปิดเราจะต้องรอให้เซสชันหมดเวลาก่อนที่จะเริ่มอีกครั้ง

remove-PSSession $Session

คุณอาจต้องการสคริปต์นี้ลงในโมดูล PowerShell เพื่อความสะดวกในการใช้งานหากมันเกิดขึ้นอีกครั้ง

กู้คืนกล่องจดหมายที่ถูกลบใน Exchange 2010

สิ่งนี้ไม่ได้เกิดขึ้น ' ไม่ทำงานสำหรับสภาพแวดล้อม Office 365 หรือไฮบริด ใช้งานได้กับ Exchange 2010 ในสถานที่เท่านั้น

บนเซิร์ฟเวอร์อีเมลเปิด คอนโซลการจัดการการแลกเปลี่ยน(EMC)

นำทางไปยัง การกำหนดค่าผู้รับ>กล่องจดหมายที่ตัดการเชื่อมต่อเราควรเห็นกล่องจดหมายของผู้ใช้ที่นั่น

หากเรายังไม่กระบวนการทำความสะอาดฐานข้อมูลกล่องจดหมายยังไม่เกิดขึ้น ไม่เป็นไรเราสามารถบังคับได้

  • เปิด เชลล์การจัดการการแลกเปลี่ยน(EMS) ในฐานะผู้ดูแลระบบ นี่คือที่ที่เราสามารถทำ PowerShell เฉพาะของการแลกเปลี่ยน
  • ตอนนี้เราเข้าสู่ cmdlet:
  • Get-MailboxDatabase | Clean-MailboxDatabase
    <รูป class = "lazy wp-block -image ">
    • เมื่อเสร็จแล้วเราจะกลับไปที่ EMC แล้วคลิกขวาที่ กล่องจดหมายที่ถูกตัดการเชื่อมต่อจากนั้นคลิก ใน รีเฟรช
    • เราควรเห็นกล่องจดหมายที่นั่นตอนนี้และเป็นกล่องจดหมายที่ถูกลบไปเมื่อเร็ว ๆ นี้
    • <รูป class = "สันหลังยาว wp-block-image">
      • กลับไปที่ EMS แล้วป้อน cmdlet:
      • Connect-Mailbox -Identity "username" -Database "Mailbox Database" -User "username"
        • ชื่อผู้ใช้เป็นชื่อบัญชี Windows ของบุคคลนั้น (เช่น ผู้ใช้ทดสอบ) ,และ ฐานข้อมูลกล่องจดหมายเป็นชื่อของฐานข้อมูลที่แสดงอยู่ด้านข้าง ชื่อของพวกเขาในหน้าต่าง ตัดการเชื่อมต่อกล่องจดหมายใน EMC
        • รีเฟรช กล่องจดหมายที่ตัดการเชื่อมต่อและคุณจะเห็นว่ากล่องจดหมายของพวกเขาไม่ปรากฏที่นั่นอีกต่อไป ไปที่ การกำหนดค่าผู้รับ>กล่องจดหมายและตรวจสอบให้แน่ใจว่ามีกล่องจดหมายของผู้ใช้อยู่
        • <รูป class = "lazy wp-block-image">

          ตรวจสอบเพื่อให้แน่ใจว่าการตั้งค่าทั้งหมดถูกต้องเช่นที่อยู่อีเมลและชื่อแทน . หากดูดีในครั้งถัดไปที่ผู้ใช้เปิด Outlook ทุกอย่างจะอยู่ที่นั่นเหมือนเดิม

          กู้คืนกล่องจดหมาย

          นั่นคือวิธีการใช้ PowerShell เพื่อกู้คืนกล่องจดหมายใน Exchange Online และ Exchange 2010 หากคุณมีสภาพแวดล้อมแบบไฮบริดมันซับซ้อนกว่าเล็กน้อย แต่ก็สามารถทำได้

          เพียงแค่รู้ว่า cmdlet ที่แตกต่างกันเหล่านี้มีอยู่ทำให้คุณอยู่ในตำแหน่งที่ดีในการทำงานกับ Exchange ไม่ว่าจะเป็นรุ่นหรือการกำหนดค่าใดก็ตาม

          กระทู้ที่เกี่ยวข้อง:


          1.10.2019