Skip to main content

Posts

Showing posts with the label Config

Showing the Calendar Configuration of a Mailbox or Meeting Room using EWS

When you configure Calendar processing settings in Exchange either using the Exchange Administrator Centre via the Exchange Management Shell (Set-CalendarProcessing) many of these setting get held in a FAI (Folder Associated Item) in the Calendar Folder of the Mailbox in question. In EWS you can access these configuration objects using the UserConfiguration operation and classes. The Calendar settings are stored in the Roaming Dictionary format to store each of the different Key and Value pairs. For some of the settings like the bookin policy (In-policy meeting requests) and (Out-of-policy meeting requests) these are stored as an array of ExchangeDn's. I've put together a script cmdlet called Show-CalendarSettings that can dump out the Roaming dictionary setting for a Calendar Configuration object using EWS. And also for the BookIn and RequestIn policy it will loop through each of the ExchangeDn's in the array and try to resolve each of the entries vi...

Finding the TimeZone being used in a Mailbox using EWS

If you ever have the need to create a number of events in user mailbox's from a central application or Script where the target Mailboxes span across different time zones then finding each target Mailbox's timezone is a critical thing. In this post I'm going to outline a few different methods of getting the TimeZone using EWS. If you have access to the Exchange Management Shell cmdlet's to find the users configured timezone you can use either the Get-MailboxCalendarConfiguration or Get-MailboxRegionalConfiguration cmdlets which show you the timezone settings of a Mailbox from the WorkHours configuration of that mailbox. The object in the Mailbox that the information is read from/stored in is the IPM.Configuration.WorkHours FAI (Folder Assoicated Items) object in the Calendar Folder of the Mailbox. So if you want to access the TimeZone setting in Mailbox just using EWS you need to Bind to this UserConfiguration object (FAI object) and th...

Configure the default calendar view in OWA in Exchange 2013 and Exchange Online using EWS and Powershell

If you are after a higher level of control over the default setting in OWA, EWS offers you the ability to configure many of the default setting by modifying the FAI (folder associated Item) configuration item that controls that setting. One example of a setting that you can modify is the default view of the calendar in OWA  eg  the following setting When are user makes a change to this setting in OWA, the setting is stored in an FAI item with an Item Class of OWA.ViewStateConfiguration in a roaming dictionary property called CalendarViewTypeDesktop. The values for each of the setting are 1 = Day 2 = Week 3 = Work week 4 = Month The following script first checks to see if the OWA.ViewStateConfiguration config item exists (on a new mailbox if the user has never logged into OWA it probably wont exist). To use this script you run it with the name of the Mailbox you want to run it against and the value for the enum you want to use eg to...

eDiscovery script for reporting on large items in a Mailbox

When it comes to searching a Mailbox with EWS with a Script, eDiscovery on Exchange 2013 makes things a lot easier and faster by basically allowing a Mailbox (and Archive) wide search rather then a folder by folder crawl which you had to do with AQS on Exchange 2010. I posted a paging sample a few months back to show how you can page through the results of a eDiscovery using the EWS Managed API. The following script is an application of this to produce a report of Items that are larger then a certain size in the Mailbox and Archive. To give the Folder path of the folder where the items are located the script grabs the FolderPaths and produces a report like To run a discovery just feed it the Mailbox you want to run it against, and to set the size of the Items you want to find you can modify the following variable that holds the KQL query (the following finds items larger then 10 MB) $KQL = "size>10485760"  I've put a download of this script here t...

Adding an additional/Shared Mailbox to OWA with EWS and Powershell in Exchange 2013

The ability to add a shared Mailbox Folders was a feature that was introduced in Exchange 2010 and carried over into 2013. When an additional Mailbox folder is added this updates an XML configuration documented in the OWA.OtherMailbox FAI Item for this Mailbox. In Exchange 2010 this includes an Id to the Folder but in Exchange2013/OWA it just includes the PrimarySMTP of the Mailbox your adding while the folderId is left blank. Due to this reason this script won't work on a Exchange 2010 server. Note : Its important to point out even on 2013/Office365 this type of script that modifies the configuration item would also not be supported as it may inadvertently corrupt the config document so it's provided as is for testing only.  The script to do this looks like ## Get the Mailbox to Access from the 1st commandline argument       $MailboxName  =  $args [0]   $maMailboxToAdd ...
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.