Commands › Exchange Online

Set-HoldComplianceRule

Exchange Online ExchangeOnlineManagement Set-*

For more information, see Security & Compliance PowerShell. Use the Set-HoldComplianceRule cmdlet to modify existing preservation rules in the Microsoft Purview compliance portal. **Note**: The Set-HoldComplianceRule cmdlet is replaced by the Set-RetentionComplianceRule cmdlet. If you have scripts that use Set-HoldComplianceRule, update them to use Set-RetentionComplianceRule.

Quick start script

# Set-HoldComplianceRule — 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-HoldComplianceRule
$before | Format-List

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

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

Syntax

Set-HoldComplianceRule [-Identity] <ComplianceRuleIdParameter>
 [-Comment <String>]
 [-Confirm]
 [-ContentDateFrom <DateTime>]
 [-ContentDateTo <DateTime>]
 [-ContentMatchQuery <String>]
 [-Disabled <Boolean>]
 [-HoldContent <Unlimited>]
 [-HoldDurationDisplayHint <HoldDurationHint>]
 [-WhatIf]
 [<CommonParameters>]

Parameters (10)

ParameterTypeRequiredWhat it controls
-Identity ComplianceRuleIdParameter yes The Identity parameter specifies the preservation rule that you want to modify. You can use any value that uniquely identifies the rule. For example:
-Comment String The Comment parameter specifies an optional comment. If you specify a value that contains spaces, enclose the value in quotation marks ("), for example: "This is an admin note".
-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.
-ContentDateFrom DateTime The ContentDateFrom parameter specifies the start date of the date range for content to include.
-ContentDateTo DateTime The ContentDateTo parameter specifies the end date of the date range for content to include.
-ContentMatchQuery String The ContentMatchQuery parameter specifies a content search filter.
-Disabled Boolean The Disabled parameter specifies whether the preservation rule is enabled or disabled. Valid input for this parameter is $true or $false. The default value is $false.
-HoldContent Unlimited The HoldContent parameter specifies the hold duration for the preservation rule. Valid values are:
-HoldDurationDisplayHint HoldDurationHint The HoldDurationDisplayHint parameter specifies the units that are used to display the preservation duration in the Microsoft Purview compliance portal. Valid values are Days, Months or Years.
-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.