exchange-mailbox-restore

Guides operators through Exchange Online mailbox restore, recovery, and hold removal runbook paths.

2|Updated Jul 28, 2026
One-click install
npx skills add https://github.com/mbadali25/useful-claude-add-ons --skill exchange-mailbox-restore-mbadali25
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: exchange-mailbox-restore
Source: https://github.com/mbadali25/useful-claude-add-ons/tree/main/skills/exchange-mailbox-restore
Command: npx skills add https://github.com/mbadali25/useful-claude-add-ons --skill exchange-mailbox-restore-mbadali25

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) components.

What problem does it solve? Restoring, recovering, or undeleting an Exchange Online mailbox is error-prone: a wrong choice between restore and recover can destroy a preserved mailbox, and non-technical operators cannot safely run the required PowerShell cmdlets alone. This Skill walks an operator one step at a time through the Mailbox Restore and Hold Removal runbook, printing exact commands to paste and verifying each result. ## Core Features & Use Cases - State-based triage: Runs Test-MailboxPreservation.ps1 to classify a mailbox as Active, Inactive, SoftDeleted, or NotFound, then maps the request to exactly one of five runbook paths. - Five guided paths: Remove a Litigation Hold from an active mailbox, copy an inactive mailbox into a shared mailbox with New-MailboxRestoreRequest, recover an inactive mailbox for a returning employee, undelete an account inside the 30-day window with Restore-MgDirectoryDeletedItem, or permanently destroy a mailbox after retention expiry. - Safety gates: Destructive paths require typed confirmations (RECOVER 1, DESTROY 1), ExchangeGuid-based targeting, and written authorisation checks before any irreversible command is printed. - Use Case: A manager needs to read a departed employee's email. The Skill triages the mailbox as Inactive, prints commands to create a shared mailbox, starts a mailbox restore request, grants the manager access without automapping, and confirms the preserved copy remains on hold. ## Quick Start Ask the assistant to restore or recover a user's mailbox, for example by saying the manager needs to read an ex-employee's email, and it will begin the triage step.

Frequently Asked Questions about exchange-mailbox-restore

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I restore an inactive Exchange Online mailbox so a manager can read it?

Use New-MailboxRestoreRequest to copy the inactive mailbox's content into a shared mailbox, which is Path 2 of this runbook. The preserved mailbox stays untouched and on hold, and the manager is granted access with -AutoMapping:$false so a large archive does not slow their Outlook.

What is the difference between restoring and recovering an inactive mailbox?

Restore copies mail from the inactive mailbox into another mailbox while the preserved copy stays on hold. Recover reactivates the inactive mailbox itself with New-Mailbox -InactiveMailbox, which destroys the preserved copy and its hold, and only works for cloud-only accounts deleted more than 30 days ago.

How do I undelete an Exchange mailbox deleted by mistake?

A deleted account sits in the Entra recycle bin for 30 days and is restored with Restore-MgDirectoryDeletedItem, after which the mailbox is re-licensed and reattaches. The Skill prints the days remaining first, because after 30 days the mailbox is purged with no way back.

Does this skill require PowerShell 7 or specific module versions?

It requires Windows PowerShell 5.1 (PSEdition Desktop), ExchangeOnlineManagement 3.9.0 or later, and four Microsoft Graph sub-modules pinned to exactly 2.39.0. The bundled exo_preflight.ps1 script checks and installs these under the user profile without elevation.

Why must an inactive mailbox be identified by ExchangeGuid instead of email address?

An inactive mailbox and a live mailbox can share the same SMTP address, so commands targeting the address can silently act on the wrong mailbox. The runbook resolves and records the ExchangeGuid at triage and uses it for every restore, recovery, and destruction command.

When should I not use this mailbox restore skill?

Do not use it to put a leaver on hold, delete an account, or run offboarding cleanup; that work belongs to the exchange-mailbox-cleanup skill. It also cannot help when a mailbox has an auto-expanding archive, whose content is only reachable through a Purview eDiscovery export.