Register Filter Pack IFilters with Exchange 2010

 

Applies to: Exchange Server 2010 SP3, Exchange Server 2010 SP2

Exchange Search uses IFilters to index text content in different file formats. Microsoft Office 2010 Filter Packs includes filters for Microsoft Office 2010 and Office 2007 file formats. Installation of the Filter Pack is a pre-requisite for Exchange 2010 Mailbox and Hub Transport servers. For details, see Exchange 2010 Prerequisites. The following file name extensions are supported by the filter pack: .docm, .docx, .one, .pptm, .pptx, .vdx, .vsd, .vss, .vst, .vsx, .vtx, .xlsb, .xlsm, .xlsx, .zip. For more information and to download the Filter Pack, see Microsoft Office 2010 Filter Packs.

After you install the Filter Pack, the included IFilters are registered with Windows Search. To allow Exchange 2010 to index Office 2010 file formats, the IFilters must also be registered with Exchange Search. This is done by modifying the registry.

In Exchange 2010 SP1, Exchange Setup registers the IFilters from Office 2010 Filter Packs with Exchange Search.

In the release to manufacturing (RTM) version of Exchange 2010, you must register the IFilters with Exchange 2010 by modifying the registry. You must perform this step after you have installed Exchange 2010 RTM on the server.

Note

In Exchange 2010 RTM, you can meet the prerequisite by installing 2007 Office System Converter: Microsoft Filter Pack. We recommend that you upgrade to the Office 2010 version of the Filter Pack.

What Do You Want to Do?

  • Register Microsoft Filter Pack IFilters manually

  • Register Microsoft Filter Pack IFilters automatically

Register Microsoft Filter Pack IFilters manually

Warning

Incorrectly editing the registry can cause serious problems that may require you to reinstall your operating system. Problems resulting from editing the registry incorrectly may not be able to be resolved. Before editing the registry, back up any valuable data.

  1. Start Registry Editor (regedit).

  2. Locate the following registry subkey: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ExchangeServer\v14\MSSearch\CLSID

    Add the subkeys and values that are listed in the following table to this subkey.

    Subkey Value

    {5A98B233-3C59-4B31-944C-0E560D85E6C3}

    drive:\Program Files\Common Files\Microsoft Shared\Filters\offfiltx.dll

    {DDFE337F-4987-4EC8-BDE3-133FA63D5D85}

    drive:\Program Files\Common Files\Microsoft Shared\Filters\offfiltx.dll

    {F90DFE0C-CBDF-41FF-8598-EDD8F222A2C8}

    drive:\Program Files\Common Files\Microsoft Shared\Filters\offfiltx.dll

    {20E823C2-62F3-4638-96BD-90F4F6784EBC}

    drive:\Program Files\Common Files\Microsoft Shared\Filters\offfiltx.dll

    {312AB530-ECC9-496E-AE0E-C9E6C5392499}

    drive:\Program Files\Common Files\Microsoft Shared\Filters\offfiltx.dll

    {B8D12492-CE0F-40AD-83EA-099A03D493F1}

    drive:\Program Files\Common Files\Microsoft Shared\Filters\ONIFilter.dll

    {FAEA5B46-761B-400E-B53E-E805A97A543E}

    drive:\Program Files\Common Files\Microsoft Shared\Filters\VISFilt.DLL

  3. In each of the subkeys you created in Step 2, create the following string value.

    Value Name Type Value Data

    ThreadingModel

    String (REG_SZ)

    Both

  4. Locate the following registry subkey:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ExchangeServer\v14\MSSearch\Filters

    Add the subkeys and values that are listed in the following table to this subkey.

    Subkey Value

    .docm

    {5A98B233-3C59-4B31-944C-0E560D85E6C3}

    .docx

    {5A98B233-3C59-4B31-944C-0E560D85E6C3}

    .pptm

    {DDFE337F-4987-4EC8-BDE3-133FA63D5D85}

    .pptx

    {DDFE337F-4987-4EC8-BDE3-133FA63D5D85}

    .xlsm

    {F90DFE0C-CBDF-41FF-8598-EDD8F222A2C8}

    .xlsx

    {F90DFE0C-CBDF-41FF-8598-EDD8F222A2C8}

    .xlsb

    {312AB530-ECC9-496E-AE0E-C9E6C5392499}

    .zip

    {20E823C2-62F3-4638-96BD-90F4F6784EBC}

    .one

    {B8D12492-CE0F-40AD-83EA-099A03D493F1}

    .vsd

    {FAEA5B46-761B-400E-B53E-E805A97A543E}

    .vss

    {FAEA5B46-761B-400E-B53E-E805A97A543E}

    .vst

    {FAEA5B46-761B-400E-B53E-E805A97A543E}

    .vdx

    {FAEA5B46-761B-400E-B53E-E805A97A543E}

    .vsx

    {FAEA5B46-761B-400E-B53E-E805A97A543E}

    .vtx

    {FAEA5B46-761B-400E-B53E-E805A97A543E}

  5. Restart the Microsoft Search (Exchange) service using the Services console or by typing the following command in the Exchange Management Shell.

    Stop-Service msftesql-Exchange -Force; Start-Service MSExchangeSearch
    

Register Microsoft Filter Pack IFilters automatically

  1. Paste the following text into a Notepad file.

    # Copyright (c) 2009 Microsoft Corporation. All rights reserved.
    # THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE RISK OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE USER.
    # This is a filter registration script to configure Exchange Server 2010 to index Office 2007 file formats. 
    $DLLPath = $env:CommonProgramFiles + "\Microsoft Shared\Filters"
    $CLSIDKey = "HKLM:\SOFTWARE\Microsoft\ExchangeServer\V14\MSSearch\CLSID"
    $FiltersKey = "HKLM:\SOFTWARE\Microsoft\ExchangeServer\v14\MSSearch\Filters"
    
    # Filter DLL Locations
    $officeFilterLocation = $DLLPath + "\offfiltx.dll"
    $onenoteFilterLocation = $DLLPath + "\ONIFilter.dll"
    $visioFilterLocation = $DLLPath + "\VISFilt.DLL"
    
    # Filter GUIDs
    $docxGuid    ="{5A98B233-3C59-4B31-944C-0E560D85E6C3}"
    $pptxGuid    ="{DDFE337F-4987-4EC8-BDE3-133FA63D5D85}"
    $xlsxGuid    ="{F90DFE0C-CBDF-41FF-8598-EDD8F222A2C8}"
    $zipGuid     ="{20E823C2-62F3-4638-96BD-90F4F6784EBC}"
    $xlsbGuid    ="{312AB530-ECC9-496E-AE0E-C9E6C5392499}"
    $onenoteGuid ="{B8D12492-CE0F-40AD-83EA-099A03D493F1}"
    $vsdGuid     ="{FAEA5B46-761B-400E-B53E-E805A97A543E}"
    
    # Create CLSIDs
    Write-Host "Creating CLSIDs..."
    
    New-Item -Path $CLSIDKey -Name $docxGuid -Value $officeFilterLocation -Type String
    New-Item -Path $CLSIDKey -Name $pptxGuid  -Value $officeFilterLocation -Type String
    New-Item -Path $CLSIDKey -Name $xlsxGuid  -Value $officeFilterLocation -Type String
    New-Item -Path $CLSIDKey -Name $zipGuid  -Value $officeFilterLocation -Type String
    New-Item -Path $CLSIDKey -Name $xlsbGuid -Value $officeFilterLocation -Type String
    New-Item -Path $CLSIDKey -Name $onenoteGuid -Value $onenoteFilterLocation -Type String
    New-Item -Path $CLSIDKey -Name $vsdGuid  -Value $visioFilterLocation -Type String
    
    # Set Threading model
    Write-Host "Setting threading model..."
    
    New-ItemProperty -Path "$CLSIDKey\$docxGuid" -Name "ThreadingModel" -Value "Both" -Type String
    New-ItemProperty -Path "$CLSIDKey\$pptxGuid" -Name "ThreadingModel" -Value "Both" -Type String
    New-ItemProperty -Path "$CLSIDKey\$xlsxGuid" -Name "ThreadingModel" -Value "Both" -Type String
    New-ItemProperty -Path "$CLSIDKey\$zipGuid" -Name "ThreadingModel" -Value "Both" -Type String
    New-ItemProperty -Path "$CLSIDKey\$xlsbGuid" -Name "ThreadingModel" -Value "Both" -Type String
    New-ItemProperty -Path "$CLSIDKey\$onenoteGuid" -Name "ThreadingModel" -Value "Both" -Type String
    New-ItemProperty -Path "$CLSIDKey\$vsdGuid" -Name "ThreadingModel" -Value "Both" -Type String
    
    # Create Filter Entries
    Write-Host "Creating Filter Entries..."
    
    # Uncomment these if you wish to index these uncommonly exchanged formats
    #New-Item -Path $FiltersKey -Name ".docm" -Value $docxGuid -Type String
    #New-Item -Path $FiltersKey -Name ".pptm" -Value $pptxGuid -Type String
    #New-Item -Path $FiltersKey -Name ".xlsm" -Value $xlsxGuid -Type String
    #New-Item -Path $FiltersKey -Name ".vss" -Value $vsdGuid   -Type String
    #New-Item -Path $FiltersKey -Name ".vst" -Value $vsdGuid   -Type String
    #New-Item -Path $FiltersKey -Name ".vsx" -Value $vsdGuid   -Type String
    #New-Item -Path $FiltersKey -Name ".vtx" -Value $vsdGuid   -Type String
    
    # These are the entries for commonly exchange formats
    New-Item -Path $FiltersKey -Name ".docx" -Value $docxGuid -Type String
    New-Item -Path $FiltersKey -Name ".pptx" -Value $pptxGuid -Type String
    New-Item -Path $FiltersKey -Name ".xlsx" -Value $xlsxGuid -Type String
    New-Item -Path $FiltersKey -Name ".xlsb" -Value $xlsbGuid -Type String
    New-Item -Path $FiltersKey -Name ".zip" -Value $zipGuid  -Type String
    New-Item -Path $FiltersKey -Name ".one" -Value $onenoteGuid -Type String
    New-Item -Path $FiltersKey -Name ".vsd" -Value $vsdGuid   -Type String
    
    Write-Host "Registry subkeys created."
    Write-Host "Please restart Microsoft Search  (Exchange) service from the Services console, or by running stop-service msftesql-Exchange -Force ; start-service MSExchangeSearch "
    
  2. Name the file RegisterMicrosoftFilterPack.ps1, and then save it.

  3. Start Windows PowerShell or the Exchange Management Shell.

  4. Run the script RegisterMicrosoftFilterPack.ps1.

    Important

    Whether Windows PowerShell or Exchange Management Shell allow you to run scripts is determined by the execution policy. For more details, see Script Security.

  5. Restart the Microsoft Search (Exchange) service using the Services console or by typing the following command in the Exchange Management Shell.

    Stop-Service msftesql-Exchange -Force; Start-Service MSExchangeSearch
    

 © 2010 Microsoft Corporation. All rights reserved.