Skip to main content


Showing posts from July, 2014

Reporting on expired recurring meetings with EWS and Powershell

Someone asked an interesting question about recurring Appointments in Exchange recently that I thought I'd expand on a bit with blog post. Recurrence in Appointments,Meeting and Tasks are one of the more useful features of Exchange, but they are also one the features that are harder for developers and anybody writing code or scripts to get a handle on. These days there is some really good technical documentation on this so I won't explain too much but firstly  but also the Exchange Protocol Document  are a must to read. To refine this down a bit with Calendar Appointments if you have a recurring Appointment you don't have separate objects for each occurrence of the recurring Appointment, the recurrence is just a pattern stored in a property on what is called the master instance of that particular Appointment, Meeting or Task. Excepti

Creating a Mailbox Folder Growth Map with Powershell, EWS and eDiscovery

I've posted before on Exchange 2010 about how you can use AQS to produce a mailbox Item Age and Size reports. This same method can be used and enhanced on 2013 using eDiscovery to produce a growth report. Eg something like this that shows the mailbox growth for each folder (that has grown) based on the size of the Items in the folder for that month and an ASCII graph to show the growth vs the FolderSize So to do this the follwing script uses eDiscovery on 2013 or Exchange Online to make a query of all the items in the primary mailbox over the period of 12 months using the following KQL query received:2013-01-01..2014-01-01 Which queries for items that where received between these two dates, in the script I have variables to calculate this to give the exact 12 month period eg $KQL = "received:" + $StartDate.ToString("yyyy-MM-dd") + ".." + $EndDate.ToString("yyyy-MM-dd"); The rest of the script is another variant of my eDiscovery t
All sample scripts and source code is provided by for illustrative purposes only. All examples are untested in different environments and therefore, I cannot guarantee or imply reliability, serviceability, or function of these programs.

All code contained herein is provided to you "AS IS" without any warranties of any kind. The implied warranties of non-infringement, merchantability and fitness for a particular purpose are expressly disclaimed.