One of our clients recently migrated their email from Microsoft Exchange to Microsoft Office 365 and after the fact realized they hadn't migrated their employee retention policy settings. We were unsure of which users had a one year retention policy or two year retention policy.
The good news is, this information isn't totally lost.
Retention limits can still be retrieved in Office 365 (and Exchange 2013) by using the command Get-MailboxFolderStatistics and its parameter IncludeOldestAndNewestItems to determine the age of items in a mailbox. From here you can figure out which users have old items in their mailboxes that correlate to a longer retention policy (in this case we are looking for people with a policy longer than one year).
To start, let's take a user and pull the oldest items in their folders:
Get-MailboxFolderStatistics -Identity user1 -IncludeOldestAndNewestItems | ft identity,OldestItemReceivedDate -AutoSize
Identity OldestItemReceivedDate
-------- ----------------------
user1\Top of Information Store
user1\Calendar
user1\Contacts 7/5/2013 6:15:13 PM
user1\Deleted Items
user1\Drafts 8/17/2014 7:21:25 AM
user1\Inbox 8/17/2014 3:21:21 AM
and many more folders ...
This command pulls too much data so we'll filter it to the two most common folders (Inbox and Sent Items). Also, we know that retention policies were applied to the Inbox and Sent Items so our statistics will correlate.
Now that we have figured out how to get the oldest item in the Inbox and Sent Items for a user, let's expand the query to all mailboxes. We will get all mailboxes that have a UserPrincipalName that contains "@company.com" and pipe that into each folder query:
Get-Mailbox -Filter {UserPrincipalName -like "*@company.com"} -ResultSize unlimited | Get-MailboxFolderStatistics -IncludeOldestAndNewestItems -FolderScope "Inbox" | Where {$_.FolderPath -eq "/Inbox"} | ft identity,OldestItemReceivedDate -AutoSize
and:
Get-Mailbox -Filter {UserPrincipalName -like "*@company.com"} -ResultSize unlimited | Get-MailboxFolderStatistics -Identity user1 -IncludeOldestAndNewestItems -FolderScope "Inbox" | Where {$_.FolderPath -eq "/Inbox"} | ft folderpath,OldestItemReceivedDate -AutoSize
These queries respectively produce this output (which I pasted into Excel and sorted by date for ease of reading):
Identity OldestItemReceivedDate
-------- ----------------------
James Smith\Inbox 5/18/2013 0:09
Billie Jean\Inbox 6/4/2013 12:58
Kip Dog\Inbox 9/9/2013 22:32
Bam Forrest\Inbox 9/16/2013 17:14
Timmy Smith\Inbox 10/15/2013 21:31
Rocky Road\Inbox 12/11/2013 17:17
Timothy Rails\Inbox 12/17/2013 16:13
MJ Farradson\Inbox 12/17/2013 21:51
Joe Bob\Inbox 3/21/2014 18:04
Erica Meadows\Inbox 4/9/2014 0:22
Identity OldestItemReceivedDate
-------- ----------------------
James Smith\Sent Items 5/18/2013 17:17
Joe Bob\Sent Items 6/11/2013 20:35
Doug Dogerson\Sent Items 8/3/2013 23:39
Billie Jean\Sent Items 10/9/2013 14:33
MJ Farradson\Sent Items 12/3/2013 18:42
Erica Meadows\Sent Items 4/9/2014 0:50
Using this data and knowing the migration was on 4/9/2015 we are able to find users who had a retention policy older than a year (everyone who's box contains items older than 4/9/2014, a year from the date of the migration).
Also, I highlighted Doug Dogerson as it appears this user moves items from his Inbox (our Inbox query did not find him) but he does not clear out his Sent Items and thus we were find him in the Sent Items query.
This isn't a foolproof method (it would not catch users who cleared out both their Inbox and Sent Items) but it does give you a general idea of who fell into which Retention Policy prior to the migration.
Or you can always for assistance with your migration. Our Managed IT Services can fully support, monitor and manage your Microsoft 365 environment. Lewan is a Silver Certified Microsoft Solutions Partner.