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 rằng 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 các email đã xóa trong Office 365.
Trước khi chúng tôi bắt đầu, hãy lưu ý rằng điều này có nghĩa là để khôi phục cá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.
Điều gì sẽ xảy ra khi hộp thư bị xóa?
Hộp thư được chuyển đến Azure Active Directory Thùng rác (AD) trong Exchange Online hoặc Hộp thư đã ngắt kết nối thư mục 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 sai lầm của mình và khắc phục lỗi lầm.
Khôi phục hộp thư đã xóa trong Exchange Online
Kết nối với Exchange trực tuyến qua 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.
set-ExecutionPolicy Unrestricted
Khi được nhắc, 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
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] đến 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 khẩu mới trong script vào 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 vẫn không được thì chúng tôi 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 tôi đang làm hiện nay.
Khi hoàn tất, chúng ta 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 để 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
Đ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 (EMC).
Điều hướng đến Cấu hình người nhận > Hộp thư bị ngắt kết nối . Chúng ta sẽ thấy hộp thư của người dùng ở đó.
Nếu chúng tôi không làm như vậy, thì quy trình làm sạch cơ sở dữ liệu hộp thư vẫn chưa diễn ra. Được rồi, chúng ta có thể ép buộc.
- Mở Exchange Management Shell (EMS) với tư cách là quản trị viên. Đây là nơi chúng tôi có thể thực hiện công việc PowerShell dành riêng cho Exchange.
- 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 , sau đó nhấp vào Làm mới .
- 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 là tên tài khoản Windows của người đó (như Người dùng thử nghiệm ) , và Cơ sở dữ liệu hộp thư là tên của cơ sở dữ liệu được liệt kê bên cạnh tên của họ trong Hộp thư đã ngắt kết nối cửa sổ trong EMC.
- Làm mới Hộp thư đã ngắt kết nối 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 > Hộp thư và đảm bảo hộp thư của người dùng ở đó.
Kiểm tra nó để đảm bảo 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
Đó là cách sử dụng PowerShell để khôi phục hộp thư trong Exchange Online và Exchange 2010. Nếu bạn có môi trường kết hợp thì phức tạp hơn một chút nhưng có thể thực hiện được.
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.