Tuesday, April 04, 2017

Callable PowerShell script to report on double booked resources in Exchange 2016 / Office 365

Sumatra is recognized as the expert in Exchange Calendaring.  Even so, we were surprised at the sudden influx of requests for info on the problem of double booked conference rooms.

This subject is really trending on our blog.

We're taking a two-pronged approach that helps both Exchange end-users and Exchange Admins:

First, for the DIY crowd, we released a FREE PowerShell script to report on double bookings – open source, under the MIT license.  This blog post covers the script.

Second, for the enterprise, we will release a cmdlet that does everything the free version does, and a whole lot more:
  • Reports double booked meetings.
  • Sends email notification to each meeting organizer about those upcoming conflicts and ask them to resolve the conflict. 
  • Removes conflicts by cancelling conflicting meeting occurrences that Exchange allowed (even though there was already an existing meeting booked for that room/date/time.)
  • Preferentially keep conflicting bookings for company VIPs, and,
  • Designed to receive piped input from Exchange PowerShell cmdlets.

This cmdlet will be a paid, licensed version.

So first, the script.

It's available for download here.  We call it the Sumatra Double Booked Resources Reporting Script.  It's a text file, you'll need to rename it as a .PS1.  We do this or else your anti-virus software will get huffy. 

Successfully generating your report will give you results like this:

which will tell you the room with conflicts (not surprising since you have specified it, see below), the organizers, start and end date of the conflict and the number of other parties involved?

Number of parties?  Yes.  Note that one of the meetings above is triple-booked.

The text file is meant to be self-documenting, but in case you need some examples, here you go.

To get a report for a single resource (with some specific examples):

To generate a report for ALL resources, piped in from Get-Mailbox:
To generate reports for multiple rooms from a file:
This generates reports to the Exchange Administrator.

These examples in more general form are in a text file here.

Those of you who know PowerShell know you only need to import the function once per PowerShell session and then can invoke just the command suDoubleBookedMeetings.  If you did not know this before, you do now.

Looking to pull your Exchange Admin out of the loop on what to do with the information next?  

So glad you asked.

Watch this space for news of our cmdlet that automatically informs meeting organizers.

1 comment:

zyg said...

Based on a comment we got last week, a word of warning. If you are light on PowerShell experience, please educate yourself first. A good starting point: http://www.itprotoday.com/management-mobility/running-powershell-scripts-easy-1-2-3