Skip to main content

Posts

Showing posts with the label Report

Enumerating Public Folders using EWS and reporting on Rules and Folder Stats

When people mention Public Folders in Exchange a quote from Mark Twain often comes to mind "the reports of my death are greatly exaggerated", one often thinks the same when people write such things about email.  While Groups in Office 365 offer a compelling alternative, Public Folders are still things Admins need to deal with and Migrate occasionally. While the Exchange Management Shell cmdlets for reporting on Public Folders have improved a lot in Exchange 2013 you may still have the need from time to time to want to do some more in-depth analysis of what's happening in your Public Folders which is where EWS can come in very useful. The one big difference to reporting on folders in a Public Folder Tree vs doing the same thing in a Mailbox is that in a Public Folder tree you can't do a Deep Traversal. This means to report on Public Folders you need to enumerate the child folders of each parent folder with a separate EWS call. For very large Public Folder trees this ...

Enumerating and Reporting on all Search Folders in a Mailbox or Archive with EWS and Powershell

Search Folders are a feature of Exchange that allows you to have a static search based on a particular criteria  across one or more folders in a Mailbox. They can serve a number of different functions within a Mailbox and are often used to provide some of the backend functionality of new features. None of the Exchange Management Shell cmdlets gives you  a good view of the SearchFolders in a Mailbox so EWS can be particular useful for this. Eg I've put a cmdlet together that will enumerate all the Search Folders in a Mailbox (or Archive is you interested in that) and produce a report of the folder number of Items and Size of those items that match the Search Folder criteria. It will produce a report such as I've put a copy of this script up on GitHub here https://github.com/gscales/Powershell-Scripts/blob/master/SearchFoldersEnums.ps1 To Run the script use Get-SearchFolders -MailboxName Mailbox@domain.com to Get Searchfolder from an Archive ...

Mapping what Folders are in use in ActiveSync with EWS and Powershell

[***Ingo Gegenwarth has published an better version of this script that handles the changes made recently to ActiveSync on Exchange Online see  https://ingogegenwarth.wordpress.com/2018/01/03/eas-folder-mapping/ ] I came across an interesting Blog post this week from Jim Martin http://blogs.technet.com/b/tips_from_the_inside/archive/2013/06/17/activesync-mapping-a-collection-id-to-a-mailbox-folder.aspx which explains how the ActiveSync Folders located under the device folder in ExchangeSyncData folder tree map back to the real Mailbox folder that is being synchronized or accessed via ActiveSync. This information is pretty useful for a number of things so I thought it would be useful to put a script together to automate and create a report of these folder mapping using EWS and Powershell. How it works is the ExchangeSyncData is located in the NON_IPM_Subtree of a mailbox so a few FindFolder calls are needed to find this folder and then get all the Folders associated wi...

Reporting on the Item Age (Count and Size) in a Mailbox using EWS and Powershell (MEC Sample)

This is sample 2 from the Item Age section of my MEC talk in this sample we'll look at reporting on the Folder ItemCounts and Size of Item's in a Mailbox based on the age of those items. To work out the Size and Item Count of all the Items in a Mailbox and be able to report on the age of those Items requires that you enumerate through every item in every folder in a Mailbox. Doing this on a mailbox with a large number of folder Items will take some time (it's pretty elementary Watson). So to reduce the amount of work that the server has to do to return information about all the Items in the Mailbox it's important to use the IdOnly BasePropertySet and then add the properties that are required. For this report the following properties are used. Size, DateTimeReceived, DateTimeCreated This script first uses a FindFolder operation to enumerate all folders in a Mailbox and then on each folder a findItems is used to enumerate ever item. Using just these three properti...
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.