Scripting

## Display or Export All User Mailbox Holds

UPDATE: This tool has been updated to include implicit policies created in the Security and Compliance Center.

Last week, I was asked by a few people for information on displaying holds applied to mailboxes.

Holds come in several varieties:

• In-Place Holds created via the Exchange Admin Center or eDiscovery case
• Retention Policies (either as Retention or Label policies)
• Litigation Hold set as a mailbox property
• Legacy Exchange MRM policies

When viewed programmatically from PowerShell, you’ll notice that In-Place Holds and Retention Policies are somewhat inverse relationships like the legacy MRM policies–that is, the various policies in the Security & Compliance Center don’t have lists of objects applied to them. … [ Continue reading ]

Migrating

## Backup and Restore Office 365 Groups

While working with a partner this weekend on a tenant to tenant migration, we had the need to migrate Office 365 groups.  There’s not really a lot of information around on recreating groups and memberships, so I decided to put together a tool to help the effort.… [ Continue reading ]

Scripting

## Update to Wipe Exchange Online Mailbox script

Earlier today, I was asked to make an update to my script to wipe Exchange Online mailboxes to include Archive Mailboxes.  Fortunately, it ended up being much easier than I anticipated:

When I enumerated the mailbox originally, I used:

$Root = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($service,
Scripting

## Recovering from Crypto- or Ransomware attacks with the OneDrive for Business Admin Tool

Recently, I had a requirement come up to enable the bulk restore of content from a OneDrive for Business site in the event of a cryptoware or ransomware attack.  OneDrive has versioning turned on, so I figured this would be an “easy” add. … [ Continue reading ]

Configuration