Cách khôi phục hộp thư đã xóa bằng PowerShell

Bất kể bạn vô tình xóa hộp thư của một người trong Exchange bằng cách nào, bạn có thể khôi phục nó bằng PowerShell ( PoSh ). Chìa khóa là làm điều đó ngay khi bạn nhận ra hộp thư đã bị xóa. 

Đó là khoảnh khắc thót tim khi chúng tôi nhận ra mình đã vô tình làm điều này. Nếu bạn chỉ xóa một vài email, chúng tôi cũng có thể hướng dẫn bạn cách khôi phục email đã xóa trong Office 365(how to recover deleted emails in Office 365) .

Trước khi chúng ta bắt đầu, hãy lưu ý rằng điều này có nghĩa là để khôi phục hộp thư đã xóa trong Exchange Online cho môi trường Office 365 và Exchange 2010 . Chúng tôi cũng giả định rằng bạn có quyền quản trị để sử dụng các phương pháp được mô tả và đã thực hiện một số tập lệnh PowerShell cơ bản(basic PowerShell scripting)

Điều gì sẽ xảy ra khi một hộp thư bị xóa?(What Happens When a Mailbox Is Deleted?)

Hộp thư được chuyển đến thùng rác Azure Active Directory (AD) trong (Azure Active Directory )Exchange Online hoặc thư mục Hộp thư bị ngắt kết nối(Disconnected Mailboxes ) trong Exchange 2010.

Nó có thể ở đó trong tối đa 30 ngày tùy thuộc vào các chính sách lưu giữ được áp dụng. Điều đó cho chúng ta một khoảng thời gian ân hạn để nhận ra lỗi lầm của mình và khắc phục lỗi lầm.

Khôi phục một hộp thư đã xóa trong Exchange Online(Restore a Deleted Mailbox In Exchange Online)

Kết nối với Exchange trực tuyến qua PowerShell(Connect To Exchange Online Via PowerShell)

Trong phiên cục bộ của bạn, hãy mở bảng điều khiển Powershell và sử dụng lệnh sau để đặt thông tin xác thực đăng nhập của bạn vào biến.

$userCredential

Điều này giúp làm việc với các tập lệnh khác sau này dễ dàng hơn.

$userCredential = get-Credential

Một cửa sổ sẽ mở ra, nơi bạn có thể nhập tên người dùng và mật khẩu của mình để quản lý Exchange Online .

Tiếp theo, đặt mức chính sách thực thi để chúng tôi thực sự có thể thực hiện mọi việc trong phiên của mình. Điều này cho phép chúng tôi chạy các lệnh chưa được ký của chúng tôi. Nhưng bạn cũng có thể muốn tìm hiểu các phương pháp hay nhất để ký các tập lệnh PowerShell(best practices for signing PowerShell scripts) .

set-ExecutionPolicy Unrestricted

Khi được nhắc, hãy nhấn Y cho Có.

Bây giờ chúng ta sẽ tạo biến $session được sử dụng để mở kết nối giữa máy tính cục bộ và Exchange Online .

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

Powershell-liveid là id của trang Office của bạn . Thông thường đây là một số biến thể của tên công ty của bạn. 

Sử dụng lệnh sau để mở phiên PoSh trên Exchange Online :

import-PSSession $Session -DisableNameChecking

Giờ đây, chúng tôi đang làm việc với PowerShell trực tiếp trong Exchange Online , ngay cả khi chúng tôi đang ngồi trên máy tính của chính mình.

Khôi phục hộp thư đã xóa bằng PowerShell(Restore a Deleted Mailbox With PowerShell)

Phần tiếp theo là siêu dễ dàng. Việc tạo kết nối sẽ khiến chúng ta mất nhiều thời gian hơn. 

Tất cả những gì chúng ta phải làm là chạy lệnh ghép ngắn được hiển thị bên dưới:

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

Thay đổi cả hai trường hợp của [email protected] thành tên hộp thư thích hợp và Windows LiveID của hộp thư mà chúng tôi muốn khôi phục. Lưu ý rằng chúng có thể không giống nhau. 

Chúng tôi cũng phải đặt mật khẩu mới cho hộp thư. Thay đổi mật(newpassword) khẩu mới trong tập lệnh thành mật khẩu bạn chọn. Bạn sẽ cần chuyển điều đó cho người dùng và yêu cầu họ thay đổi mật khẩu vào lần đăng nhập tiếp theo.

Cuối cùng, sử dụng lệnh ghép ngắn tiếp theo để kiểm tra để đảm bảo rằng lệnh này hoạt động. 

get-Mailbox [email protected]

Nếu nó đã được khôi phục, lệnh ghép ngắn sẽ trả về thông tin về hộp thư được khôi phục. Nếu nó trả về lỗi, hãy xem lại các lệnh và đảm bảo rằng hộp thư chính xác và Windows LiveID đang được sử dụng. 

Nếu điều đó vẫn không hoạt động, thì chúng tôi sẽ cần khôi phục hộp thư từ bản sao lưu hệ thống. Có nhiều loại sao lưu hệ thống, vì vậy điều đó nằm ngoài phạm vi của những gì chúng ta đang làm ngày nay.

Khi chúng tôi hoàn tất, chúng tôi phải đóng phiên PoSh . Số lượng phiên PoSh mà chúng tôi đang chạy có giới hạn. Để nó mở sẽ sử dụng một trong những phiên đó. Trừ khi chúng tôi đóng nó, chúng tôi sẽ phải đợi phiên hết thời gian trước khi chúng tôi có thể bắt đầu một phiên khác.

remove-PSSession $Session

Đó là nó. Bạn thậm chí có thể muốn tập lệnh này vào một Mô-đun PowerShell(PowerShell Module) để dễ sử dụng nếu nó xảy ra lần nữa.

Khôi phục hộp thư đã xóa trong Exchange 2010(Restore a Deleted Mailbox In Exchange 2010)

Điều này không hoạt động đối với Office 365 hoặc các môi trường kết hợp. Nó chỉ hoạt động cho Exchange 2010 tại chỗ. 

Trên máy chủ thư, mở Bảng điều khiển quản lý Exchange(Exchange Management Console ) (EMC). 

Điều hướng đến Cấu hình người nhận(Recipient Configuration ) > Hộp thư đã ngắt kết nối(Disconnected Mailbox) . Chúng ta sẽ thấy hộp thư của người dùng ở đó. 

Nếu không, thì quá trình dọn dẹp cơ sở dữ liệu hộp thư vẫn chưa xảy ra. Được rồi, chúng ta có thể ép buộc.

  • Mở Exchange Management Shell ( EMS ) với tư cách quản trị viên. Đây là nơi chúng ta có thể thực hiện công việc PowerShell dành riêng cho Exchange(Exchange-specific PowerShell) .
  • Bây giờ chúng ta nhập lệnh ghép ngắn: 
Get-MailboxDatabase | Clean-MailboxDatabase

  • Sau khi hoàn tất, hãy quay lại EMC và nhấp chuột phải vào Hộp thư đã ngắt kết nối(Disconnected Mailbox) , sau đó nhấp vào Làm mới(Refresh)
  • Bây giờ chúng ta sẽ thấy hộp thư ở đó, cùng với một hộp thư khác đã bị xóa gần đây.

  • Quay lại EMS và nhập lệnh ghép ngắn: 
Connect-Mailbox -Identity "username" -Database "Mailbox Database" -User "username"
  • Tên người dùng(Username) là tên tài khoản Windows của người đó (như Người dùng thử nghiệm(Test User) ) (,) Cơ sở dữ liệu hộp thư(Mailbox Database) là tên của cơ sở dữ liệu được liệt kê bên cạnh tên của họ trong cửa sổ Hộp thư được ngắt kết nối(Disconnected Mailbox) trong EMC. 
  • Làm mới Hộp thư đã ngắt kết nối(Disconnected Mailbox) và bạn sẽ thấy rằng hộp thư của họ không còn hiển thị ở đó nữa. Điều hướng đến Cấu hình người nhận(Recipient Configuration ) > Hộp thư(Mailbox ) và đảm bảo hộp thư của người dùng ở đó.

Kiểm tra nó để đảm bảo rằng tất cả các cài đặt đều chính xác, chẳng hạn như địa chỉ e-mail và bí danh. Nếu nó có vẻ tốt, vào lần tiếp theo người dùng mở Outlook của họ , mọi thứ sẽ ở đó như ban đầu.

Hộp thư được khôi phục(Mailbox Restored)

Đó là cách sử dụng PowerShell để khôi phục hộp thư trong Exchange OnlineExchange 2010 . Nếu bạn có một môi trường hybrid, nó phức tạp hơn một chút nhưng nó có thể được thực hiện. 

Chỉ cần biết rằng các lệnh ghép ngắn khác nhau này tồn tại sẽ giúp bạn có một vị trí thuận lợi để làm việc với Exchange , bất kể phiên bản hoặc cấu hình nào.



About the author

Tôi là kỹ sư phần mềm và có kinh nghiệm với cả Microsoft Office và trình duyệt Chrome. Tôi am hiểu nhiều khía cạnh của phát triển web, bao gồm nhưng không giới hạn ở: HTML, CSS, JavaScript, jQuery và React. Sở thích làm việc với công nghệ của tôi cũng có nghĩa là tôi đã quen thuộc với các nền tảng khác nhau (Windows, Mac, iOS) và hiểu cách chúng hoạt động.



Related posts