Get-MailboxPermission to recreate permission in the Exchange Online

I am currently migrating a customer from Exchange On-premise 2010 to Office365 using BitTitan MigrationWiz and a cutover approach. One of the challenges that we see is that with this approach we have to re-create all the accounts in Office365 first before we can start using them. At this particular organization, as many other, the are several delegation and permission being utilized that we will need to re-create in Office365 Exchange online. To simplify the process I exported all the permission to a CSV and processed the data in Excel to convert the lists of users and permissions from a DisplayName to an SMTP or UPN format. With that I was able to recreate the permission in Office365 – Exchange Online.

Get-Mailbox | Get-MailboxPermission | where {$_.user.tostring() -ne "NT AUTHORITYSELF" -and $_.IsInherited -eq $false} | Select Identity,User,@{Name='Access Rights';Expression={[string]::join(', ', $_.AccessRights)}} | Export-Csv -NoTypeInformation "C:\FolderPath\MailboxFolderPermission.csv"

Top 10 reason why you should use a Hybrid Migration over a Staged migration (Exchange Online)

I published this lists few years ago. But I think is still very relevant, that is why I decided to review it and put it on the top again. This is by far my preferred migration method.

  1. Secure mail routing between on-premises and Exchange Online organizations. Require TLS authentication
  2. A unified global address list (GAL), also called a “shared address book.”
  3. Free/busy and calendar sharing will continue working between on-premises and Exchange Online.
  4. Centralized control of inbound and outbound mail flow. Costumer can configure all inbound and outbound Exchange Online messages to be routed through the on-premises Exchange organization.
  5. A single Microsoft Office Outlook Web App URL for both the on-premises and Exchange Online organizations. User will continue visiting OWA and they will get redirected from there to the cloud if needed.
  6. The ability to move existing on-premises mailboxes to the Exchange Online organization without interrupting the end-user.
  7. Exchange Online mailboxes can also be moved back to the on-premises organization if needed.
  8. Centralized mailbox management (Cloud and on-premises mailboxes) using the on-premises Exchange admin center (EAC).
  9. Message tracking, MailTips, and multi-mailbox search between on-premises and Exchange Online organizations will continue working
  10. No need to reconfigure the end-users’ profile. User will keep rules, signature and .n2k files in their outlook.

Exchange Online Backup, permanently deleted items policy

Our customer are always asking us about the best options to backup Exchange Online. Sometimes, there is even a confusing between litigation-hold, archive, journaling, and backup. Let keep in mind that these services are different and should be implemented based on the specific needs. In this post, we will only focus on back up. Basically, what happen after a user completely remove an item (mail, contact, calendar, and tasks) from their mailbox or Outlook and they need restore that item back to the mailbox. The good think is that with the new Exchange 2016 Exchange CU6 now you can restore items to the original folder as mentioned in one of my previous post (June 2017). Natively, Exchange is set for 14 day retention for deleted items. However, you can extend the retention and administrative recovery to 30 days. If you want to support recovering message beyond 30 days, you would need to use a 3rd party service for the backup.

Here are the examples on how to change how long permanently deleted items are kept. (Only available in PowerShell)

Example 1: Set Emily Maier’s mailbox to keep deleted items for 30 days. In Exchange Management Shell, run the following command.

Set-Mailbox -Identity "Emily Maier" -RetainDeletedItemsFor 30

Example 2: Set all user mailboxes in the organization to keep deleted items for 30 days. In Exchange Management Shell, run the following command.

Get-Mailbox -ResultSize unlimited -Filter {(RecipientTypeDetails -eq 'UserMailbox')} | Set-Mailbox -RetainDeletedItemsFor 30