Working with Archive Policies in Office 365 and SkyKick
Skykick automates the migration email from other platforms onto Office 365, though occasionally it needs a bit of help.
This is especially true when moving from Google Apps or Google for Work to Office 365. These mailboxes can bloat in size due to how both systems manage email folders.
Office 365 (Microsoft Exchange) stores email in folders, while Google gives email labels. The difference is, in Exchange an email can be in only one folder, while in Google an email can have multiple labels. When migrating from Google for Work to Office 365, SkyKick will create Exchange folders for every Google label, and migrate emails that are assigned multiple labels into multiple folders.
This results in a bunch of duplication on the destination system.
When you’re using Skykick to migrate large mailboxes from Google for Work, you may occasionally receive a message advising that the mailbox may exceed the storage limits on Office 365. While this message appears, synchronisation will be paused.
In order to resume the migration for this mailbox you’ll need to do the following:
- Confirm you’re using the right retention policy
- Enable archiving on the mailbox.
- Ensure the archive is running.
- Mark the alert as completed.
What are Exchange Retention Policies?
In Exchange, each mailbox is assigned a Retention Policy that contain the retention settings for mail within the mailbox. Retention policies are made up of Retention Policy Tags.
Retention Policy Tags outline how long Exchange is going to keep a user’s mail before performing a specific action on it. For Retention Policy Tags, this action can be PermanentlyDelete, DeleteAndAllowRecovery or MoveToArchive.
You can also create Retention Policy Tags that only affect a specific type of folder, for example DeletedItems or JunkEmail. For a full list of options, see this Technet Article: https://technet.microsoft.com/en-us/library/dd335226(v=exchg.160).aspx
Why create your own Retention Policy?
When archiving is enabled on a mailbox, the default policy is to archive anything older than two years. This may be enough to get the migration running again, but just in case it’s not, you can create a new Retention Policy Tag with a shorter archive time limit, apply it to a new Retention Policy, then apply the policy to the user you want to archive mail for.
Alternatively, you can edit the default policy (known as Default MRM Policy) or its tags, though this will affect all users that have archiving enabled.
You can create a new Retention Policy and Retention Policy Tags via PowerShell or via the Exchange Control Panel. In Exchange Control Panel, these actions are performed under Compliance Management. In this tutorial we’ll be working in PowerShell.
Setting up a Retention Policy in PowerShell
This new Retention Policy will move any mail older than 1 year into a users archive. It will have one tag.
- Connect to Exchange Online via PowerShell as an Exchange Online Administrator
- Run the following PowerShell cmdlet
New-RetentionPolicyTag "1 year move to archive" -Type All -RetentionEnabled $true -AgeLimitForRetention 365 -RetentionAction MoveToArchive
- Create the new Retention Policy and link the tags
New-RetentionPolicy "One Tag Policy" -RetentionPolicyTagLinks "1 year move to archive"
- Assign a retention policy to a user
Set-Mailbox -Identity UserAliasOrEmail -RetentionPolicy "One Tag Policy"
- Confirm the Retention Policy was applied correctly by running:
Get-Mailbox -Identity UserAliasOrEmail | ft Name,RetentionPolicy
Enable Archiving on a mailbox.
Once you’ve assigned the policy, you can enable archiving on the user’s mailbox. This can be done in the Exchange Control Panel under Recipients, Mailboxes on the right menu.
- In Powershell, you can run the following cmdlet while connected to Exchange Online.
Enable-Mailbox -Identity UserAliasOrEmail -Archive
Ensure the Archive is running.
- The Archive won’t run immediately, though you can force it along. You can check the size of the archive using the Get-MailboxStatistics cmdlet.
Get-MailboxStatistics -identity UserAliasOrEmail -Archive
- The default cmdlet return is to display the Name, ItemCount, StorageLimitStatus and LastLogonTime of the mailbox. To see more info, append ‘| fl *‘ (minus the quotations) to the cmdlet.
Get-MailboxStatistics -identity UserAliasOrEmail -Archive | fl *
- Your archive will probably be empty right now. To start the archive, run the following cmdlet.
- Now, if you run the Get-MailboxStatistics cmdlet a few times more, you’ll see the ItemCount increasing. Providing of course, that there’s email older than a year in the mailbox.
- You can also append ‘| fl *‘ to the end of the cmdlet to get the available statistics for the user’s mailbox too. Try it a few times and watch it reduce as items are archived.
Get-MailboxStatistics -Identity UserAliasOrEmail | fl *
Get-MailboxStatistics -Identity UserAliasOrEmail -archive | fl *
Mark the alert as complete
Once your archive has begun processing, you can return to SkyKick and mark the alert as complete. The migration for the mailbox will kick off again.