Why Exchange 2013 doesn’t need the Microsoft Office Filter Pack

For space reasons, this text is another bit that was cut out of my Exchange 2013 Inside Out: Mailbox and High Availability book. FWIW, here it is…

If you’ve ever installed Exchange 2010, you’re probably aware of the need to install the Microsoft Office Filter Pack 2.0 (the latest version is SP2). The iFilters in the filter pack are important to Exchange as they are used by the MSSearch component to create the content indexes for mailbox databases. The indexes are used for searching by online clients (Outlook configured in cached Exchange mode uses Windows Desktop Search) and eDiscovery. They’re also used by the transport system if access is necessary to message content, such as when a transport rule needs to identify content as messages pass through the pipeline.

Exchange 2013 swaps MSSearch for the Search Foundation, a component shared with SharePoint 2013. The Search Foundation has no need of the Office Filter Pack because it includes its own filters. Unfortunately, until SP1 came along, the Exchange 2013 Setup program overlooked this fact and stated that the Office Filter Pack was a prerequisite. Setup would install if the Office Filter Pack was missing, but who’s going to ignore a warning issued by Setup. In any case, that warning seems to have finally been suppressed.

Search Foundation includes an impressive array of filters. As you’d expect, all of the common Microsoft Office formats are supported, and then you find pretty well all of the other formats that are usually encountered as attachments to messages, including Adobe PDF and ZIP files.

Even graphic formats such as JPEG, GIF, and TIF are included. However, Search Foundation doesn’t index the graphic contents (which would be a good trick) and opts to settle for the metadata instead.

Exchange marks items that cannot be processed by Search Foundation as “unsearchable items.” You can view the items in a mailbox, database, or server that are deemed unsearchable by running the Get-FailedContentIndexDocuments cmdlet. The metadata for unsearchable items is stored in content indexes, which allows those items to be found during eDiscovery searches.

A set of cmdlets are provided to allow administrators exert some control over the formats supported by Search Foundation. The Get-SearchDocumentFormat cmdlet lists all of the formats known to the Search Foundation. You’ll see output like that shown below if you run the cmdlet.

[PS] C:> Get-SearchDocumentFormat

Identity     Name                                Enabled
--------     ----                                -------
zip          ZIP Archive                         True
gif          Graphics Interchange Format         True
jpeg         JPEG                                True
html         Web Page                            True
mhtml        Web Archive                         True
eml          Email Message                       True
msg          Outlook Item                        True
obd          Microsoft Office Binder             True


The Set-SearchDocumentFormat cmdlet is used to enable or disable a format. By default, all known formats are enabled when a mailbox server is installed. For example, to disable any attempt to index information for JPEG images, you’d run the command:

[PS] C:> Set-SearchDocumentFormat –Identity JPEG –Enabled $False

The other cmdlets are New-SearchDocumentFormat and Remove-SearchDocumentFormat and were added in Exchange 2013 SP1. I doubt that many administrators will add new formats or remove existing formats. This might be done by a third party software vendor who provides a filter to support a specific format used by their product.

The bottom line is that the day of the Office Filter Pack is past. Search Foundation is now king of the hill and you can drop this particular task from Exchange deployments.

Follow Tony @12Knocksinna

Posted in Exchange, Exchange 2013 | Tagged , , , , , , , | 2 Comments

A year with a Fitbit Flex

I have been using a Fitbit Flex for a year. Well, I should say that I have used two Fitbit Flex in the last year, mostly because I lost one while collecting a hire car soon after starting to use this handy little device to track my activity levels.

I lost my Flex because the strap fastener is truly horrible. It is all too easy for it to come undone and allow the Flex to fall off, especially when you take a coat or sweater off. I’m sure that it’s not beyond the wit of men (or women) to come up with a better fastener. I don’t think much of the way that the Flex measures sleep (time awake, time asleep, and so on) as the need to tap to tell the device that you plan to go asleep and tap again to tell it that you’ve woken up seems superfluous. I am not at my best just after waking up and often forget to tell the Flex that I am in fact awake. It happily then registers blissful sleep when I am working at my PC. Which might just be true.

But that ends the complaints, which is not normal when I discuss an electronic gadget (apart from the Bose QC20 in-ear noise cancelling earphones, which I think are just great, especially when travelling). Generally speaking I like the Flex very much and it has proven successful in getting me to exercise more in the past year.

IT people have a horrible habit of being sedentary. It goes with the territory of sitting down to work with computers and when you’re sitting down, it’s all too easy to stay nice and comfortable, sipping your favorite beverage, and the hours trickle by. The best thing about devices like the Flex is the prompts they provide to get up and do something.

And the data too. Data is very important to IT people and even though the Flex is very much an entry-level activity monitor, it collects enough data to create and measure activity against targets and to accumulate statistics over time. Seeing the miles and kilometers mount up over the weeks provides the necessary motivation to get up and do something energetic daily.

Or maybe it’s the five lights that the Flex lights up as progress is recorded towards the daily target. Doing enough to make the five lights flash as the target is attained becomes a goal and the encouragement to take some more exercise.

All of the data gathered by the Flex is synchronized up to your Fitbit.com account and can be reviewed through a web dashboard. Here I find that I have walked a total of 2,805.63 km in the last year, or some 3,705,520 steps, which seems a lot. And that proves the benefit of being motivated by a little flashing wristband. I reckon that I probably walk 2.5 km/day just doing bits and pieces, so the additional distance walked because I have been motivated to meet the daily target is some 1,892 km.

When I walk, I typically use a pedometer running on my Nokia Lumia 1020. Because it’s GPS-based, its data is more accurate in terms of distance walked. The Flex operates on the basis of steps, which is an imprecise science when it comes to measuring distance. You can input data from external sources into the Fitbit.com portal to update your statistics.

Overall, I can’t complain. I’ve enjoyed the walks and dropped 4kg in weight. Now I am ready to use a more sophisticated activity monitor. Perhaps the Microsoft Band or even the new Fitbit Surge? Time to consider my options.

Follow Tony @12Knocksinna

Posted in Technology | Tagged | Leave a comment

Using the Exchange 2013 cmdlet extension agent to populate mailbox settings

For space reasons, this text was cut out of my Exchange 2013 Inside Out: Mailbox and High Availability book. I only found it again recently, so here it is…

Many properties can be set to control exactly how a mailbox functions, but some are more important than others. All mailbox properties can be manipulated with EMS and the most critical are exposed through EAC. However, it’s easy to forget to update or set a property. Automation comes to the rescue in the form of Exchange’s cmdlet extension agents, a feature that first appeared in Exchange 2010. One of the standard agents is called the scripting agent and its purpose is to support the automation of common tasks such as mailbox creation. The most common use of the scripting agent is to update the properties of new mailboxes after they are created.

For example, if we create a new mailbox using EMS or EAC, its language and regional settings are not updated and the user will be prompted to provide these settings the first time that they access the mailbox with Outlook Web App. The scripting agent gives us an easy way to ensure that default language and regional settings are applied to new mailboxes and so avoid the need for the user to become involved in the process. If the default settings are not correct, the user can select new values through Outlook Web App options.

The scripting agent is disabled by default. The agent uses an XML configuration file stored in the <install directory>\V15\Bin\CmdletExtensionAgents folder to understand what processing it must perform and when it is invoked. Exchange provides a sample configuration file called ScriptingAgentConfig.xml.sample that you can edit to add your instructions. The sample file contains a number of interesting examples with which you can experiment, but our purposes require only a very simple file that can be created with any text editor and named ScriptingAgentConfig.xml.

The example ScriptingAgentConfig.xml shown below tells the scripting agent:

  • It should be invoked whenever the New-Mailbox or Enable-Mailbox cmdlets are run by any process. These cmdlets are used to create a new mailbox or enable a mailbox for an existing Active Directory account.
  • The specified code is invoked when the cmdlets have completed processing (the “OnComplete” event)
  • The “Name” parameter is to be retrieved from the provisioning handler (the framework that surrounds the scripting agent). The name is the identifier for the object being processed, in this case, a mailbox.
  • Three cmdlets are to be run. Set-Mailbox is used to set a default language value of “en-US”; Set-MailboxRegionalConfiguration sets the appropriate date and time formats; and Set-MailboxCalendarConfiguration sets the start of the working day.

<?xml version="1.0" encoding="utf-8" ?>
<Configuration version="1.0">
<Feature Name="Mailboxes" Cmdlets="New-Mailbox, Enable-Mailbox">
<ApiCall Name="OnComplete">
if($succeeded) {
$Name= $ProvisioningHandler.UserSpecifiedParameters["Name"]
Set-Mailbox $Name -Languages "en-US"
Set-MailboxRegionalConfiguration $Name -DateFormat "dd-MMM-yy" -TimeZone "Pacific                        Standard Time"
Set-MailboxCalendarConfiguration $Name -WorkingHoursStartTime "08:30:00"

To enable the scripting agent so that it will process the code in its configuration file, we run the Enable-CmdletExtensionAgent cmdlet:

Enable-CmdletExtensionAgent “Scripting Agent”

This is an organization-wide setting, so it is obviously important to have the same configuration file in place on every mailbox server so that the same behavior happens throughout the organization. You do not have to put the file on CAS servers because Exchange 2013 only runs EMS cmdlets to execute operations such as mailbox creation on mailbox servers. After the configuration files are deployed and the scripting agent is enabled, Exchange will faithfully execute the specified commands to automate the finalization of mailbox settings. It’s also important that you test that everything continues to work as you deploy new cumulative updates for Exchange 2013.

Because the scripting agent executes code without administrator intervention (and probably without any knowledge on the part of some administrators), it’s obviously important to make sure that the code works as intended before deployment. After all, it would be embarrassing to see the error illustrated below each time one of your co-workers attempted to create a new mailbox. Errors in the scripting agent configuration file might prevent EAC or EMS from being able to complete an operation. Code should be developed and thoroughly debugged on a test system before being deployed into production and then become part of the “must check list” when a new version or update for Exchange appears as there’s no guarantee that the syntax of a cmdlet will not change in the future.

When you’re developing the configuration file, you’ll probably make some mistakes or want to test different versions of code. To force Exchange to pick up a new version of the configuration file, disable and then enable the scripting agent.

Disable-CmdletExtensionAgent “Scripting Agent” | Enable-CmdletExtensionAgent “Scripting Agent”

All of this goes to prove that there is a mass of interesting things to be discovered if you poke around under the surface of Exchange. And in this case, the interesting thing might just save you some time…

The cmdlet extension agent is not available in Exchange Online. This is logical because the last thing you probably want in a massive multi-tenant environment is to have administrators playing around (in the most professional sense) with code attached to standard cmdlets. Perhaps Microsoft will provide an alternate method in the future to accomplish the same functionality for Office 365, but it’s not there now.

Follow Tony @12Knocksinna

Posted in Email, Exchange, Exchange 2013 | Tagged , , | 1 Comment

Latest Office 365 SLA results prove robust performance

A recent question raised the issue of how well Microsoft has done against their vaunted 99.9% availability goal for Office 365. It’s a good question to ask because clearly all cloud services need to keep on proving that they can truly deliver a highly reliable and robust service if they are to have any chance of convincing on-premises customers to move platform.

As it happens, Microsoft began to publish quarterly SLA results in 2013 as part of the information available through the Office 365 Trust Center, so I headed over there to have a look-see only to discover that the data was stale. I knew that various bits of Office 365 had experienced outages during 2014, such as the June 24 Azure Active Directory failure that caused a seven-hour outage for a subset of North American tenants, but a couple of well-publicized outages didn’t seem to be a reason for Microsoft to stop publishing SLA results.

A call to Microsoft established that they had redone the Office 365 Trust Center and I was looking at an obsolete page, which is a nice way of saying that Microsoft published the data but on a different page. I guess it’s the nature of web site maintenance that it is easy to leave stagnant artefacts in place. Companies don’t like this because the bad data reflects poorly on them, but it’s easy to see how this might happen given the complex nature of large web sites.

In any case, the real situation is that Microsoft reports quarterly performance for Office 365 on a worldwide basis against the 99.9% SLA on the Office 365 Trust Center. The most recent numbers are outlined in the table below:

Quarter SLA Outcome
Q1 2013 99.94%
Q2 2013 99.97%
Q3 2013 99.96%
Q4 2013 99.98%
Q1 2014 99.99%
Q2 2014 99.95%
Q3 2014 99.98%
Q4 2014 TBD

The results for Q4 2014 are still being tabulated and should be available around February 1, 2015.

The drop in the Q2 2014 performance shows how an outage impacts a quarterly result. However, Office 365 is a global infrastructure and while the June 24 outage lasted seven hours, it was restricted to part of a single region, so the impact is less than you might imagine because these results are calculated on a worldwide basis.

Even with the caveat that all cloud SLAs need to be treated with caution because they exclude problems caused by poor Internet connectivity or any site-specific issues, the numbers reported by Microsoft are pretty impressive and prove that Office 365 has matured into a very capable platform.

Google guarantees the same SLA for Google Apps and makes a dashboard available for all to see the current status of their apps. However, I can’t find out whether Google makes quarterly SLA results available in the same way as Microsoft does so that an easy comparison is possible between the two platforms. I covered the lack of visibility for quarterly SLA data last May and Google does not appear to have done much to improve the situation since.

Follow Tony @12Knocksinna

Posted in Cloud, Email, Office 365 | Tagged , , , | 3 Comments

Selecting the right compliance framework to use with Exchange

Exchange 2010 upped Microsoft’s game when it came to the out-of-the-box compliance features available in the server. Exchange 2013 builds on that foundation to refine matters through features such as in-place holds and integration with SharePoint 2013; increased integration is available within Office 365 as Exchange and SharePoint Online share features like Data Loss Prevention. However, compelling and cost-effective as the Microsoft offering undoubtedly is, a market still exists for third-party compliance products.

I am frequently asked to recommend one product over another. Invariably, I decline to do so on the basis that a simple recommendation cannot take all of the factors that drive a very complex subject into account. Instead of giving the questioner a one-product answer, I prefer to propose a framework that a company can use to figure out what’s best for them.

The framework I use is composed of some simple but profound questions. Here’s how I look at the various products:

  1. Cost. In other words, how much will it cost to run one solution over another?  Exchange is the big winner here because of the way that its functionality is integrated directly into the server and clients, but loses a little because of the need to deploy the latest software in order to make full use of its compliance features (for example, don’t expect to use Data Loss Prevention or site mailboxes unless you deploy Outlook 2013).
  2. Support. Overall, this is another positive point for Exchange, if only because it is much easier to deploy and support the single integrated solution rather than different software from different vendors. However, it might be that a company already has significant in-house expertise with another compliance product that offsets the Exchange advantage – or that cost-effective and expert support is available locally. This last point is really important as no product can meet business requirements if expertise is not available to support its deployment.
  3. Coverage. In other words, what material can be captured and preserved. Exchange is great for email and anything else that can be stuffed inside a mailbox; it is less impressive when other sources of important content are considered such as SharePoint, Lotus Notes, other email servers, web sites, file shares, and other databases. Exchange 2013 is better because of its tie-in with SharePoint 2013, but the problem of needing the latest versions rears its ugly head again. The advantage currently lies with third party vendors because they have used their years of working in the field to steadily expand coverage of different repositories.
  4. Legal needs. These are dictated by the legal department and differ from company to company and geography to geography. The likely categories to be considered include immutability (no one can interfere with information that is held on systems), discovery (how information is retrieved performed and who can perform discovery), and preservation (how software can preserve information required to meet regulatory or legal requirements). New features have to be regarded with some caution until you’re sure how they fit into the compliance framework. Office 365 Groups provide a good example. These groups use special document libraries (in SharePoint Online) to hold files of interest to group members, but there’s no way to apply retention policies or other controls to the files nor have auditing or reporting facilities yet been made available.
  5. Expertise or industry focus. Some ISVs have been working in the compliance space for many years and have accumulated a huge amount of expertise in how information should be handled, specifically in particular industries. Their software is probably designed to handle common industry scenarios and expertise in how to exploit the software is likely to be more available than if you try to adapt general-purpose software to meet your needs. All in all, if you work in a regulated industry, your best option might be to use a company that specializes in that industry.
  6. Existing technology infrastructure. If a company uses a product to archive or capture information from other sources and that product supports Exchange, then the best option might be to leverage what’s already in place to incorporate Exchange. Given the current strength of Office 365, another factor to consider is how your choice functions in the cloud. Remember, buying add-on software is only the start of the journey. The software has to be managed and maintained over the long term too and that’s where the majority of expense might lie.

Looking from an Exchange-centric view, Microsoft is in a strong position. The current versions of Exchange support databases that are so large and so well protected that the idea of keeping everything online is viable. This doesn’t mean that stubbing, a technique that has served businesses well even if it makes Microsoft unhappy (see the “Ask Perry” video chat for their view on the matter), will go away anytime soon because the simple fact is that if a product solves a business problem then its technical implementation will be a secondary concern.  And anyway, ISVs like Symantec are advancing the state of their art too with developments such as the Enterprise Vault cloud service, similar in many respects to Microsoft’s Exchange Online Archiving service.

Whatever choice you make, keep an eye on the future and make sure that you don’t paint yourself into a corner. This means that the software you choose should be able to export and import data with maximum fidelity. The platform you select now might not be the one you want to use in five years.

The bottom line is that no simple answer exists for compliance. Put two lawyers in a room and ask them to define what compliance means for a company and you’ll wait a long time for an answer. The same is true of technologists… I guess.

Follow Tony @12Knocksinna

Posted in Email, Exchange, Office 365 | Tagged , , , , , , | 4 Comments

Gmail as Gaeilge

I was charmed to learn yesterday that Google has added Irish (Gaeilge) to the list of supported languages for Gmail (the local news report is here). Not that I speak much Irish, even after having it drummed into my skull for 14 years at primary and secondary school (teaching techniques were primitive in the 1960s and 70s). But a small bit of grá (love) for the language lingers like it does for many other Irish people, even if we are only ever moved to attempt to use the language when the need arises to confuse foreigners (and ourselves, if the truth be known), mostly in bars and similar settings abroad. So off I went to select Irish as the language of choice for Gmail…

Selecting Irish as the preferred language for Gmail

Selecting Irish as the preferred language for Gmail

After saving the selection, Gmail reinitialized and I was back in my school days, figuring out what all the translated terms meant. As you can see, it’s only the dates and text strings in the user interface that are translated – no attempt is made to translate the content of messages as they arrive, but perhaps that’s the next trick for Google. Some interesting things can be learned from the translation. For instance, what do you think this means?

Iontach, níl turscar ar bith anseo!

Well, we discover here that “turscar” is the Irish for “spam” because the equivalent in English is “Hurray. No spam found here!”

Gmail as Gaeilge

Gmail as Gaeilge

I’ve been down this path before. Microsoft launched an Irish language pack for Windows XP in 2005. I downloaded it and upgraded the computer that our kids used at the time (no one had individual laptops or iPads then) and said nothing. Cries of anguish erupted when they found that Windows had been given an Irish makeover!  It’s actually very interesting to see how long it takes to locate common user interface components when new labels are applied. After a few days the cries of pain were too much to endure and I removed the Windows language pack to revert to English.

A Windows 7 language pack is available for Irish and one is also listed in the set available for Windows 8.1. Somehow I don’t think I will repeat my previous experiment, but I will leave Gmail in Irish to see how I get on, at least for a little while.

Follow Tony @12Knocksinna

Posted in Cloud, Email | Tagged , , , , | Leave a comment