Applies to: Exchange Server 2016

This cmdlet is available only in on-premises Exchange Server 2016.

Use the New-SearchDocumentFormat cmdlet to add a format-specific filter to those used by Exchange search.

For information about the parameter sets in the Syntax section below, see Syntax.

New-SearchDocumentFormat -Extension <String> -Identity <SearchDocumentFormatId> -MimeType <String> -Name <String> [-Confirm [<SwitchParameter>]] [-Enabled <$true | $false>] [-Server <ServerIdParameter>] [-WhatIf [<SwitchParameter>]]

This example creates a new search document format with an extension of .sct and a MIME type of text/scriptlet.

New-SearchDocumentFormat -Name "Proprietary SCT Formats" -MimeType text/scriptlet -Extension .sct -Identity ProprietarySCT1

After running the New-SearchDocumentFormat cmdlet, your must run the following cmdlet to restart the search service. There will be a brief search outage.

Restart-Service HostControllerService

You need to be assigned permissions before you can run this cmdlet. Although all parameters for this cmdlet are listed in this topic, you may not have access to some parameters if they're not included in the permissions assigned to you. To see what permissions you need, see the "Exchange Search - diagnostics" entry in the Recipients Permissions topic.


Parameter Required Type Description




The Extension parameter specifies the file type to be processed by the filter, and is designated by the common file extension associated with the file type. Examples include .MP3, .JPG, and .PNG. Note the leading period.




The Identity parameter uniquely identifies the new search document format. For example, an identity of "PropSCT" might specify a proprietary document format which is supported by a custom IFilter. The Identity parameter must be unique within the search document formats.




The MimeType parameter specifies the MIME type of the format.




The Name specifies a friendly name for the format, but does not need to be unique. For example, you might have several different formats (supported by custom IFilters) that are used to index output from a proprietary system called "My Business Output". You could use the Name parameter to create a category of formats called "My Business Output Formats", and uniquely identify each format within that group using the Identity parameter.




The Confirm switch specifies whether to show or hide the confirmation prompt. How this switch affects the cmdlet depends on if the cmdlet requires confirmation before proceeding.

  • Destructive cmdlets (for example, Remove-* cmdlets) have a built-in pause that forces you to acknowledge the command before proceeding. For these cmdlets, you can skip the confirmation prompt by using this exact syntax: -Confirm:$false.

  • Most other cmdlets (for example, New-* and Set-* cmdlets) don't have a built-in pause. For these cmdlets, specifying the Confirm switch without a value introduces a pause that forces you acknowledge the command before proceeding.




The Enabled parameter specifies whether the new format is enabled at creation.

Valid input for this parameter is $true or $false. The default is $true.




The Server parameter specifies the Exchange server where you want to run this command. You can use any value that uniquely identifies the server. For example:

  • Name

  • FQDN

  • Distinguished name (DN)

  • Exchange Legacy DN

If you don't use this parameter, the command is run on the local server.




The WhatIf switch simulates the actions of the command. You can use this switch to view the changes that would occur without actually applying those changes. You don't need to specify a value with this switch.

To see the input types that this cmdlet accepts, see Cmdlet Input and Output Types. If the Input Type field for a cmdlet is blank, the cmdlet doesn’t accept input data.

To see the return types, which are also known as output types, that this cmdlet accepts, see Cmdlet Input and Output Types. If the Output Type field is blank, the cmdlet doesn’t return data.