O’ Properties, Where Art Thou?

In software development, laziness is a virtue.

The lineage of software is sometimes surprising. The fact that seemingly unrelated systems and software can exhibit the same behavior can imply relationships that - in reality - may or may not exist. That they may feel very real is an altogether different matter. What is not in doubt is that, when a Microsoft Office SharePoint Server 2007 indexer is deployed on a Windows Server 2008 host, that indexer will no longer crawl custom properties of documents.

The problem lies in the way properties are accessed on Vista and Windows Server 2008. Prior to Vista and Windows Server 2008, you'd use IPropertySetStorage for the manipulation of custom properties on documents. In Windows Server 2008/Vista, this interface is deprecated - what's more, due to underlying changes, the interface will no longer allow access to custom properties, only "standard" file properties. The new interface, IPropertyStore is what you should be using.

Unfortunately, the Office document IFilter uses the IPropertySetStorage interface for enumerating custom document properties. On Server 2008, then, the IFilter no longer finds those custom document properties, which means that they won't show up in your crawled properties, and their contents won't be indexed.

This behavior does not occur on Windows Server 2008 R2. Additionally, a fix is available for Windows Server 2008 - it's a bit hidden, but it's available. You just have to know what your problem is.



Skip to main content