Topic Last Modified: 2010-02-24

This topic describes how to register version 2 of the Microsoft Filter Pack IFilters with Microsoft Exchange Server 2007 and Exchange Server 2010. When you register the IFilters, you enable additional file types to be indexed by a server that is running Exchange. To register the IFilters, you must modify the registry.

This topic describes how to modify the registry manually. It also describes how to use the Exchange_reg.vbs script to modify the registry automatically.

Caution:
Serious problems might occur if you modify the registry incorrectly by using Registry Editor or by using another method. These problems might require that you reinstall the operating system. Microsoft cannot guarantee that these problems can be solved. Modify the registry at your own risk.

How to Register IFilters 2.0 with Exchange 2007 by Manually Modifying the Registry

  1. Install the Microsoft Filter Pack. The architecture of the filter pack should match the architecture of the operating system (x64 or x86). For more information about how to install the Microsoft Filter Pack, see 2007 Office System Converter: Microsoft Filter Pack.

  2. Locate the following registry subkey:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Exchange\MSSearch\CLSID\

  3. Under this subkey, add the following subkeys and values, where drive represents the appropriate drive letter.

    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

    {56BD18AD-CF9C-4110-AAAA-B2F96887D123}

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

    {4039B326-9F27-4B4A-B460-47A0C6A39D5C}

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

  4. Locate the following registry subkey:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Exchange\MSSearch\Filters

    Under this subkey, add the following subkeys and values.

    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}

    .html

    {56BD18AD-CF9C-4110-AAAA-B2F96887D123}

    .msg

    {4039B326-9F27-4B4A-B460-47A0C6A39D5C}

  5. Stop and then restart the Exchange Search service. To do this, follow these steps:

    1. Click Start, click Run, type cmd, and then click OK.

    2. At the command prompt, type net stop msftesql-exchange, and then press ENTER.

    3. At the command prompt, type net start msexchangesearch, and then press ENTER.

    4. Type exit, and then press ENTER to exit the command prompt.

How to Register IFilters 2.0 with Exchange 2007 by Modifying the Registry Automatically

  1. Install the Microsoft Filter Pack. The architecture of the filter pack should match the architecture of the operating system (x64 or x86). For more information about how to install the Microsoft Filter Pack, see 2007 Office System Converter: Microsoft Filter Pack.

  2. Copy the following text, and then paste it into a Notepad file:

    Copy Code
    Copyright (c) 2007 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 2007 to index 2007 Office attachments.
    ' The script generates a .reg file that adds the required registry keys.
    
    Const ForWriting = 2
    
    Set FSO   = CreateObject("Scripting.FileSystemObject")
    Set Shell = CreateObject ("WSCript.shell")
    Set Env   = Shell.Environment("Process")
    
    
    wscript.echo "Creating ExchangeFilterRegistration.reg in the current directory"
    Set file = FSO.OpenTextFile("ExchangeFilterRegistration.reg", ForWriting, True)
    
    commonFiles = Env("CommonProgramFiles")
    commonFiles = Replace(commonFiles,"\","\")
    
    officeFilterLocation  = commonFiles & "\Microsoft Shared\Filters\offfiltx.dll"
    onenoteFilterLocation = commonFiles & "\Microsoft Shared\Filters\ONIFilter.dll"
    visioFilterLocation   = commonFiles & "\Microsoft Shared\Filters\VISFilt.DLL"
    
    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}"
    msgGuid   ="{4039B326-9F27-4B4A-B460-47A0C6A39D5C}"
    htmlGuid	="{56BD18AD-CF9C-4110-AAAA-B2F96887D123}"
    
    exchangeClsidKey   = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Exchange\MSSearch\CLSID"
    exchangeFilterKey  = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Exchange\MSSearch\Filters"
    
    
    file.WriteLine "Windows Registry Editor Version 5.00"   
    file.WriteLine   
    file.WriteLine "[" & exchangeClsidKey & "]"  
    file.WriteLine 
    OutputCLSIDKey exchangeClsidKey, docxGuid, officeFilterLocation 
    OutputCLSIDKey exchangeClsidKey, pptxGuid, officeFilterLocation 
    OutputCLSIDKey exchangeClsidKey, xlsxGuid, officeFilterLocation 
    OutputCLSIDKey exchangeClsidKey, zipGuid,  officeFilterLocation 
    OutputCLSIDKey exchangeClsidKey, xlsbGuid, officeFilterLocation
    OutputCLSIDKey exchangeClsidKey, msgGuid, officeFilterLocation
    OutputCLSIDKey exchangeClsidKey, htmlGuid, officeFilterLocation 
    OutputCLSIDKey exchangeClsidKey, onenoteGuid, onenoteFilterLocation 
    OutputCLSIDKey exchangeClsidKey, vsdGuid, visioFilterLocation 
    
    
    file.WriteLine "[" & exchangeFilterKey & "]"
    file.WriteLine 
    OutputFilterKey exchangeFilterKey, "docm", docxGuid
    OutputFilterKey exchangeFilterKey, "docx", docxGuid
    OutputFilterKey exchangeFilterKey, "pptm", pptxGuid
    OutputFilterKey exchangeFilterKey, "pptx", pptxGuid
    OutputFilterKey exchangeFilterKey, "xlsm", xlsxGuid
    OutputFilterKey exchangeFilterKey, "xlsx", xlsxGuid
    OutputFilterKey exchangeFilterKey, "xlsb", xlsbGuid
    OutputFilterKey exchangeFilterKey, "zip",  zipGuid
    OutputFilterKey exchangeFilterKey, "one",  onenoteGuid
    
    OutputFilterKey exchangeFilterKey, "vsd",  vsdGuid
    OutputFilterKey exchangeFilterKey, "vss",  vsdGuid
    OutputFilterKey exchangeFilterKey, "vst",  vsdGuid
    OutputFilterKey exchangeFilterKey, "vdx",  vsdGuid
    OutputFilterKey exchangeFilterKey, "vsx",  vsdGuid
    OutputFilterKey exchangeFilterKey, "vtx",  vsdGuid
    OutputFilterKey exchangeFilterKey, "msg",  msgGuid
    OutputFilterKey exchangeFilterKey, "html", htmlGuid
    
    wscript.echo "Created ExchangeFilterRegistration.reg for this server."
    wscript.echo "Run ExchangeFilterRegistration.reg to enable Exchange Search indexing of 2007 Office attachments."
    wscript.echo "then run ""net stop msftesql-exchange"" followed by ""net start msexchangesearch """
    
    Public Function OutputCLSIDKey(base,guid,location)
    file.WriteLine "[" & base & "\" & guid & "]"
    file.WriteLine "@=""" & location & """" 
    file.WriteLine
    End Function
    
    Public Function OutputFilterKey(base,extension,guid)
    file.WriteLine "[" & base & "\." & extension & "]"
    file.WriteLine "@=""" & guid & """" 
    file.WriteLine
    End Function
    
  3. Save the file that is named Exchange_reg.vbs, and then double-click the file. This procedure creates an ExchangeFilterRegistration.reg file.

  4. Double-click the ExchangeFilterRegistration.reg file, and then follow the prompts to set the correct registry values.

    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

    .msg

    .html

How to Register IFilters 2.0 with Exchange 2010 by Manually Modifying the Registry

  1. Install the Microsoft Filter Pack.

    For more information about how to install the Microsoft Filter Pack, see 2007 Office System Converter: Microsoft Filter Pack.

  2. Locate the following registry subkey:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ExchangeServer\v14\MSSearch\CLSID

    Under this subkey, add the following subkeys and values, where drive represents the appropriate drive letter.

    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

    {56BD18AD-CF9C-4110-AAAA-B2F96887D123}

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

    {4039B326-9F27-4B4A-B460-47A0C6A39D5C}

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

  3. Locate the following registry subkey:

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

    Under this subkey, add the following subkeys and values.

    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}

    .html

    {56BD18AD-CF9C-4110-AAAA-B2F96887D123}

    .msg

    {4039B326-9F27-4B4A-B460-47A0C6A39D5C}

  4. Stop and then restart the Exchange Search service. To do this, follow these steps:

    1. Click Start, click Run, type cmd, and then click OK.

    2. At the command prompt, type net stop msftesql-exchange, and then press ENTER.

    3. At the command prompt, type net start msexchangesearch, and then press ENTER.

    4. Type exit, and then press ENTER to exit the command prompt.

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

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

How to Register the IFilters 2.0 with Exchange 2010 by Modifying the Registry Automatically

  1. Install the Microsoft Filter Pack. For more information about how to install the Microsoft Filter Pack, see 2007 Office System Converter: Microsoft Filter Pack.

  2. Copy the following text, and then paste it into a Notepad file:

    Copy Code
    # 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}"
    $msgGuid	="{4039B326-9F27-4B4A-B460-47A0C6A39D5C}"
    $htmlGuid	="{56BD18AD-CF9C-4110-AAAA-B2F96887D123}"
    
    # 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
    
  3. Name the file RegisterMicrosoftFilterPack.ps1, and then save it.

  4. Start Windows PowerShell or the Exchange Management Shell.

  5. Run the RegisterMicrosoftFilterPack.ps1 script.

    Important:
    Whether Windows PowerShell or the Exchange Management Shell lets you run scripts is determined by the execution policy. For more details, see Script Security.
  6. Restart the Microsoft Search (Exchange) service by using the Services console or by typing the following command in the Exchange Management Shell:

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