Commands › Exchange Online

Set-ComplianceSearch

Exchange Online ExchangeOnlineManagement Set-*

Modify non-running compliance searches in Exchange Server 2016 or later and in the Microsoft Purview compliance portal. > [!NOTE] > In the cloud, this cmdlet has the following requirements: > - Version 3.9.0 or later of the Exchange Online PowerShell module (August 2025). > - Use the *EnableSearchOnlySession* parameter when you run the **Connect-IPPSSession** command to connect to Security & Compliance PowerShell.

Quick start script

# Set-ComplianceSearch — quick start (serv365.ai)
# 1. Connect (app-only shown; interactive: omit the certificate parameters)
Connect-ExchangeOnline -CertificateThumbprint $thumb -AppId $appId -Organization $org

# 2. Capture the current state first — you cannot roll back what you never recorded
$before = Get-ComplianceSearch
$before | Format-List

# 3. Make the change (dry run first)
Set-ComplianceSearch -Identity <ComplianceSearchIdParameter> -WhatIf
Set-ComplianceSearch -Identity <ComplianceSearchIdParameter>

# 4. Verify and diff
$after = Get-ComplianceSearch
Compare-Object ($before | Out-String) ($after | Out-String)

Syntax

Set-ComplianceSearch [-Identity] <ComplianceSearchIdParameter>
 [-AddExchangeLocation <String[]>]
 [-AddExchangeLocationExclusion <String[]>]
 [-AddSharePointLocation <String[]>]
 [-AddSharePointLocationExclusion <String[]>]
 [-AllowNotFoundExchangeLocationsEnabled <Boolean>]
 [-Confirm]
 [-ContentMatchQuery <String>]
 [-Description <String>]
 [-ExchangeLocation <String[]>]
 [-ExchangeLocationExclusion <String[]>]
 [-Force]
 [-HoldNames <String[]>]
 [-IncludeOrgContent <Boolean>]
 [-IncludeUserAppContent <Boolean>]
 [-Language <CultureInfo>]
 [-Name <String>]
 [-PublicFolderLocation <String[]>]
 [-RefinerNames <String[]>]
 [-RemoveExchangeLocation <String[]>]
 [-RemoveExchangeLocationExclusion <String[]>]
 [-RemovePublicFolderLocation <String[]>]
 [-RemoveSharePointLocation <String[]>]
 [-RemoveSharePointLocationExclusion <String[]>]
 [-SharePointLocation <String[]>]
 [-SharePointLocationExclusion <String[]>]
 [-WhatIf]
 [<CommonParameters>]

Parameters (27)

ParameterTypeRequiredWhat it controls
-Identity ComplianceSearchIdParameter yes The Identity parameter specifies the compliance search that you want to modify.
-AddExchangeLocation String[] The AddExchangeLocation parameter specifies the mailboxes to add to the list of included mailboxes when you aren't using the value All for the ExchangeLocation parameter. Valid values are:
-AddExchangeLocationExclusion String[] This parameter is functional only in on-premises Exchange.
-AddSharePointLocation String[] This parameter is available only in the cloud-based service.
-AddSharePointLocationExclusion String[] This parameter is available only in the cloud-based service.
-AllowNotFoundExchangeLocationsEnabled Boolean The AllowNotFoundExchangeLocationsEnabled parameter specifies whether to include mailboxes other than regular user mailboxes in the compliance search. Valid values are:
-Confirm SwitchParameter The Confirm switch specifies whether to show or hide the confirmation prompt. How this switch affects the cmdlet depends on whether the cmdlet requires confirmation before proceeding.
-ContentMatchQuery String The ContentMatchQuery parameter specifies a content search filter.
-Description String The Description parameter specifies a description for the compliance search. If the value contains spaces, enclose the value in quotation marks.
-ExchangeLocation String[] The ExchangeLocation parameter specifies the mailboxes to include. Valid values are:
-ExchangeLocationExclusion String[] This parameter is functional only in on-premises Exchange.
-Force SwitchParameter The Force switch hides warning or confirmation messages. You don't need to specify a value with this switch.
-HoldNames String[] This parameter is available only in the cloud-based service.
-IncludeOrgContent Boolean {{ Fill IncludeOrgContent Description }}
-IncludeUserAppContent Boolean This parameter is available only in the cloud-based service.
-Language CultureInfo The Language parameter specifies the language for the compliance search.
-Name String This parameter is reserved for internal Microsoft use.
-PublicFolderLocation String[] This parameter is available only in the cloud-based service.
-RefinerNames String[] This parameter is available only in the cloud-based service.
-RemoveExchangeLocation String[] The RemoveExchangeLocation parameter specifies the mailboxes to remove from the list of included mailboxes when you aren't using the value All for the ExchangeLocation parameter. Valid values are:
-RemoveExchangeLocationExclusion String[] This parameter is functional only in on-premises Exchange.
-RemovePublicFolderLocation String[] This parameter is available only in the cloud-based service.
-RemoveSharePointLocation String[] This parameter is available only in the cloud-based service.
-RemoveSharePointLocationExclusion String[] This parameter is available only in the cloud-based service.
-SharePointLocation String[] This parameter is available only in the cloud-based service.
-SharePointLocationExclusion String[] This parameter is available only in the cloud-based service.
-WhatIf SwitchParameter The WhatIf switch doesn't work in Security & Compliance PowerShell.

Reference facts derived from Microsoft documentation, © Microsoft, licensed CC BY 4.0; restructured with original guidance by serv365.ai.