Exchange: Lingering/Orphaned In-Place Holds on mailboxes blocking cleanup/moves.

This blog post covers two different scenarios when an In-Place Hold is removed off an eDiscovery Mailbox Search, but that corresponding entry is not cleaned up properly on the mailboxes formerly targeted by that Mailbox Search. When this happens, you can’t remove the Mailbox Search and you also can’t migrate mailboxes back to older versions…


PowerShell code to wait for a background process to finish before continuing on with a script

While this code was originally developed for an Exchange script, you can use it for any PowerShell script where you want to make sure some background process/service is finished before proceeding on with the rest of your script. I recently ran into a problem where a PowerShell scripted install/upgrade of Exchange 2016 server where the…

8

Leveraging the PowerShell Script Version Control Process for Exchange Cumulative Update Distribution

This is the second in a two-part blog post covering the topic of how to maintain version control over PowerShell scripts and Exchange 2016 deployment files in a large environment. The first blog post should be reviewed before continuing here because the information below builds on the PowerShell Version Control Process (PSVCP) established in that…


Greetings & Generating an Exchange User Message Profile PowerShell Script.

Greetings world! My name is Dan Sheehan, and I work as a Premier Field Engineer for Microsoft, specializing in Microsoft Exchange. As an Exchange engineer I am an avid PowerShell scripter, and so I thought it was fitting that for my first official “Blog” post I would start of by sharing a PowerShell script I…

4