Search This Blog

Monday 23 August 2010

Enable Adobe iFilter for Exchange 2010

Microsoft has tested and supports all of the default IFilters installed with Exchange Server 2010. Third-party IFilters can be added, which could extend the capability for inspecting additional file types. However, Microsoft has not tested third-party IFilters with Transport Rules, so it is highly advised that you fully test any third-party IFilters before deploying into your production environment. Additional files can be parsed by installing and registering the file type's IFilter on each Hub Transport server. For example, you can add support for inspecting PDF file attachments by downloading and installing the Adobe PDF IFilter. After that, simply register the IFilter DLL to the Exchange server registry location: 

  1. Identify the CLSID of the installed IFilter (search under HKeyClassesRoot\CLSID\ in the registry, or get it from installation docs)
    For example, the CLSID for PDF files is:
    {E8978DA6-047F-4E3D-9C78-CDBE46041603}
  2. Create a new registry key under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ExchangeServer\v14\MSSearch\CLSID with the same name as the CLSID, and a default value which points to the full path of the IFilter DLL file.
    For example, for PDF files, the default path of the PDF IFilter is:
    C:\Program Files\Adobe\Adobe PDF IFilter 9 for 64-bit platforms\bin\PDFFilter.dll
  3. Create a new key under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ExchangeServer\v14\MSSearch\Filters with the name of the file extension that the filter will handle. Enter the default value for this key to be the CLSID of the IFilter
    For example, for PDF files, the key you should create:
    Name:
    .pdf
    Value: {E8978DA6-047F-4E3D-9C78-CDBE46041603}
  4. The Network Service needs to have read access to both of these keys. To check the permissions, and allow Read permissions for Network Service, right click on the CLSID and Filter keys, select "Permissions.." Network Service should be added with Read permissions allowed..
Now the Transport Rules engine will be able to inspect these file attachments for the key words and text patterns configured in the Transport Rule condition. The registry cache automatically refreshes every 30 minutes, but if you want the changes to be immediately applied, then restart the Exchange Transport Service on the Hub Transport Server where you made the change. At the Exchange Shell prompt:
Restart-Service msexchangetransport
Restart-Service MSExchangeSearch

Force Re-Build and crawl of index`s on each mailbox server
.\ResetSearchIndex.ps1 –Force –All

2 comments:

  1. Not sure if this is different now in SP1

    Restart-Service MSExchangeSearch is not accurate on a Exchange 2010 SP1 server

    msftesql-Exchange is the service name

    Also ./ResetSearchIndex.ps1 –Force –All does not work on a Exchange 2010 server. It does not recognize -force

    ReplyDelete
  2. Hi, These commands are fully valid on Exchange 2010 RTM and SP1, Just check you haven`t copied some invalid format/code into powershell, also these are mainly relevant to the Mailbox Server / DAG Member role.

    [PS] C:\Program Files\Microsoft\Exchange Server\V14\Scripts>.\ResetSearchIndex.ps1 -force -all
    WARNING: Waiting for service 'Microsoft Exchange Search Indexer (MSExchangeSearch)' to finish stopping...

    [PS] C:\Program Files\Microsoft\Exchange Server\V14\Scripts>Restart-Service "MSExchangeSearch"
    WARNING: Waiting for service 'Microsoft Exchange Search Indexer (MSExchangeSearch)' to finish stopping...

    ReplyDelete