You may need to switch from one mailbox to another by copying all emails from the old mailbox to the new one. If only certain emails are relevant or important to you, you can selectively choose the emails you want to copy to the new mailbox.
Another scenario could involve consolidating multiple mailboxes into one and subsequently deleting the old mailboxes. Whatever the reason may be, copying emails from one mailbox to another in Office 365 is a common task that can be accomplished in a few simple steps.
The source mailbox can be either a user mailbox or a shared mailbox, and the destination mailbox can also be either a user mailbox or a shared mailbox. While we will primarily use PowerShell, I will also demonstrate a method to copy emails using Outlook.
Table of Contents
Option 1 – Copy emails using Search-Mailbox
The PowerShell cmdlet Search-Mailbox is a powerful tool in Office 365, enabling you to search for and manage mailbox content. This versatile cmdlet can be employed to find and delete specific emails, as well as to copy or move emails between mailboxes.
It is especially valuable for compliance and legal purposes, empowering administrators to search for and preserve emails relevant to legal or regulatory investigations. However, it is crucial to exercise caution when using ‘Search-Mailbox’, as improper usage may result in the unintentional deletion of important emails.
Required permissions to run Search-mailbox cmdlet
To run the Search-Mailbox cmdlet, you must have either the Mailbox Search or Mailbox Import-Export role. Without these permissions, you may encounter the following error message.
Error |
---|
Search-mailbox: The term ‘Search-mailbox’ is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. At line:1 char:1 Search-mailbox ~~~~~~ CategoryInfo : ObjectNotFound: (Search-mailbox:String) [], CommandNotFoundException FullyQualifiedErrorId: CommandNotFoundException |
1. Add admin user to Discovery Management Role Group
You can add the administrator account to the Discovery Management role group using either the Exchange admin center or PowerShell. Let’s explore both methods.
1.1 Using Exchange admin center
- Log in to the Microsoft Exchange admin center.
- Navigate to Roles > Admin roles.
- Locate the Discovery Management Role group and click on it.
- Go to the Assigned tab.
- Click on the + Add button.
- Add the administrator account here.
1.2 Using Powershell
To add an administrator account to the Discovery Management role group using PowerShell, you first need to install the Exchange Online Management PowerShell module and then connect to Exchange Online. Let’s go through the steps.
Install Exchange Online Powershell Module
Install-module -Name ExchangeOnlineManagement
Connect to Exchange Online
Connect-ExchangeOnline
For Example: To add [email protected] to the Discovery Management Role group, you can use the following PowerShell command:
Example:
Add-RoleGroupMember -Identity "Discovery Management" -Member [email protected]
2. Add an Admin user to the Mailbox Import-Export role group
To add an admin user to the Mailbox Import-Export role group, you can use the following PowerShell cmdlets. First, create a new role group called ‘Mailbox Import-Export Mgmt,’ and then add the admin user to this role group.
Create a new role group for Mailbox Import Export Permission
New-RoleGroup "Mailbox Import-Export Mgmt" -Roles "Mailbox Import Export"
Example: Add admin user [email protected] into the Mailbox Import-Export Mgmt role group
Add-RoleGroupMember "Mailbox Import-Export Mgmt" -Member [email protected]
Finally, Use the Search-Mailbox cmdlet to Copy emails
Now with administrator permissions assigned, we can use the Search-Mailbox cmdlet to copy emails from one mailbox to another user’s mailbox.
- Source Mailbox – GradyA@techpress
- Destination Mailbox – NestorW@techpress
- Emails to copy – All
If you have already installed the Exchange Online PowerShell module and connected to Exchange Online, you can skip the commands for the same. However, if you have not connected to Exchange Online yet, please run the following commands.
Install Exchange Online Powershell Module
Install-module -Name ExchangeOnlineManagement
Connect to Exchange Online
Connect-ExchangeOnline
Copy All emails of GradyA to the NestorW mailbox in a new folder GradyA-Emails
Search-Mailbox -Identity "[email protected]" -TargetMailbox "[email protected]" -TargetFolder "GradyA-Emails"
As we can see, all emails from Grady A’s user mailbox have been copied to Nestor W’s mailbox in a separate folder called ‘GradyA-Emails.’ The folder structure is as follows: TargetFolder\User Name-Date and time of the search\Primary Mailbox\Inbox.
Option 2 – Copy emails using New-ComplianceSearchAction
You cannot directly copy the emails across to the target mailbox using the New-ComplianceSearchAction cmdlet. However, you can export the search results to a PST file and then import the PST.
Before using the New-ComplianceSearchAction cmdlet to export emails, we need to search for the emails using the New-ComplianceSearch cmdlet. To run the New-ComplianceSearch cmdlet, you must connect to the Security & Compliance Center using the PowerShell cmdlet Connect-IPPSSession.
To export emails using PowerShell, the Administrator account must be added to the eDiscovery Manager role group. Please follow the steps below to assign the eDiscovery Manager role to the admin account who will perform the export.
- Login on the Microsoft 365 Defender portal.
- Go to Permissions > Email & collaboration roles > Roles
- Find eDiscovery Manager in the list and click on it then click on Edit role group.
- Click on the “Choose eDiscovery Manager” option and then select the “Choose eDiscovery Manager” link.
- Click on +Add to add your admin account here. Search for the administrator account and add it to the eDiscovery Manager role group then Save and exit.
Now that we have assigned the administrator to the eDiscovery Manager role group, we will proceed with running the following PowerShell commands to carry out this task.
Connect to the Security & Compliance Center
Connect-IPPSSession
Create a New Compliance Search
New-ComplianceSearch -Name <Search Name> -ExchangeLocation <Source Mailbox> -ContentMatchQuery <Search Query>
Example of New-ComplianceSearch
New-ComplianceSearch -Name GradyAMails -ExchangeLocation [email protected]
Start the Search
Start-ComplianceSearch -Identity <Search Name>
Example of Start-ComplianceSearch
Start-ComplianceSearch -Identity GradyAMails
Check the Status of Compliance Search
Get-ComplianceSearch -Identity <Search Name>
Example of Get-ComplianceSearch
Get-ComplianceSearch -Identity GradyAMails
Export the search results using New-ComplianceSearchAction
New-ComplianceSearchAction -SearchName GradyAMails -Export -ExchangeArchiveFormat PerUserPST
Download the Results from Microsoft Purview portal
Now, you need to download the results from the Microsoft Purview Portal. According to my research, there is no command available to download the results directly from PowerShell. Therefore, we must download the results using the GUI.
- Log in to the Microsoft Purview Portal using Microsoft Edge.
- Navigate to the left-hand side and locate “Content Search” then click on it. Next, select the “Export” tab.
- Choose the export named “GradyAMails_Export” and click on it. Subsequently, click on “Download results“.
- Once the PST file is downloaded, you can proceed to import it using Outlook into any desired mailbox based on your requirements.
Option 3 – Copy Emails from one mailbox to another using Outlook
You can also utilize Outlook to copy emails from one mailbox to another by granting full mailbox access (Read and Manage) to the user. For instance, if you wish to copy emails from Grady A to Nestor W, provide Nestor W with full mailbox access to the Grady A mailbox.
You can use PowerShell or the Exchange Admin Center to grant full mailbox permissions to NestorW on GradyA’s mailbox. Let’s explore both methods:
Using Exchange Admin Center
- Log in to the Exchange Admin Center.
- Navigate to Recipients > Mailboxes.
- Locate the user “Grady Archie” and click on it.
- Go to the Delegation tab.
- Click on “Edit” next to “Read and manage (Full Access).”
- Click on “+ Add members” to add Nestor W and provide him with Full Mailbox access to Grady A’s mailbox.
Using Powershell
You can also use PowerShell to grant full mailbox access to Nestor W. Let’s go through the steps and commands for this:
Launch the PowerShell console as Administrator and execute the following commands:
Install Exchange Online Powershell Module
Install-module -Name ExchangeOnlineManagement
Connect to Exchange Online
Connect-ExchangeOnline
Provide Full mailbox access to NestorW on GradyA’s mailbox
Add-MailboxPermission -Identity [email protected] -User [email protected] -AccessRights FullAccess -InheritanceType All -AutoMapping $true
Finally, Use the Below Steps to Copy Emails Using Outlook
As we specified -AutoMapping $true when granting full mailbox permission to NestorW on GradyA’s mailbox, upon restarting Outlook, Grady Archie’s mailbox will automatically appear in Nestor W’s Outlook.
- Navigate to Grady Archie’s Inbox or any other folder with the desired emails.
- Select all the emails you wish to copy.
- Press Ctrl + C on the keyboard to copy the emails.
- Go to Nestor W’s mailbox and choose the folder where you want to paste the emails.
- Press Ctrl + V on the keyboard to paste the emails.
You can also drag emails from Grady Archie’s mailbox to NestorW’s mailbox. While dragging to the destination folder, keep holding the Ctrl key on the keyboard to copy the emails; otherwise, the emails will be moved instead of getting copied. |
Option 4 – Copy Emails from One Mailbox to another using Bittitan MigrationWiz
The final option for copying emails from a source mailbox to a target/destination mailbox is Bittitan MigrationWiz. As a third-party solution, it comes with associated costs. You’ll need to purchase a license for each user mailbox move from Bittitan and use it to copy the emails across.
The advantage of Bittitan MigrationWiz is that it allows you to copy emails from the same source folder to the same destination folder. For example, it will copy emails from the source Inbox folder to the Inbox folder in the destination, the source Sent Items folder to the Sent Items folder in the destination, and any other user-created folders will also be replicated with emails copied accordingly.
MigrationWiz aims to preserve the same folder structure as in the source and simply copies the emails to the destination. You can monitor the progress and obtain statistics on the dashboard. I’ve frequently used this tool, and it proves highly effective for large-scale migrations.
Conclusion
In this blog post, we explored various methods for copying emails from one mailbox to another. While the Search-Mailbox cmdlet proves very useful, it does not support copying emails directly into the same folders as the source (e.g., Inbox to Inbox or Sent Items to Sent Items). Instead, the Search-Mailbox cmdlet copies the emails to a separate folder in the target mailbox.
In such scenarios, Bittitan MigrationWiz can be employed. Additionally, we explored how to move or copy emails to another mailbox using Outlook. Utilizing Outlook for copying emails provides the advantage of being able to select a specific folder for copying, which is not possible with the Search-Mailbox cmdlet.
Discover more from TechPress
Subscribe to get the latest posts sent to your email.
Search-mailbox was an easy way however it is no longer supported by Exo Microsoft removed this cmdlet