I've been tasked with moving all emails older than date x from each users mailbox into the root (inbox) of a single archive mailbox. Are there commands? 3rd party tools someone can suggest? Thanks!
1 Answers
This is kind of fiddly, since (last time I checked) you need a 32-bit machine with Office and the Exchange Management tools installed. It's best done on a VM you can keep tucked away for the purpose. XP works well since it's small, but 7 will work, too.
- Install a virtual machine with 32-bit Windows XP and Outlook or Office.
- Under Add/Remove Windows Components: install the IIS Common Files via -> IIS (Details) -> Common Files (On Windows 7, this component is: IIS6 Management Console and IIS Metabase and IIS 6 configuration compatibility.)
- Unpack the Exchange 2007 installer and run the setup. Select Custom and Install only the Management Tools.
- Install the latest update rollup. (Best to match your actual installation here.
- Edit the
HKLM\software\microsoft\exchange\exchange migration
key and make sure that the user that will run the commands has full control of this key. If the key doesn't exist, then create it. - Make sure that the same user has full access to the location to be used for the archive.
That sets up the environment. Then to run the archive:
- Run the Exchange Management Shell on the VM. You'll need to log in to this VM as something with the ability to change permissions on mailboxes, at least.
Grant yourself full permission to the mailbox that you want to archive with:
Add-MailboxPermission -Identity "<mailbox name>" -User "<archive user>" -AccessRights FullAccess
Then run:
Export-Mailbox –Identity "<mailbox name>" -PSTFolderPath <path>
The above exports a whole mailbox to a PST, but you can fiddle with the powershell command options -StartDate
and -EndDate
to filter by date ranges and TargetMailbox
to set destination mailboxes. For multiple mailboxes, you can pipe Get-Mailbox
to it.
Reference: http://technet.microsoft.com/en-us/library/bb266964(v=exchg.80).aspx

- 9,127
- 1
- 32
- 47