Public mode

No access to your tenant or devices. Every item links to its source. What this means

Sources need attention Customize Public modeDiscuss ChangeIntel on Discord

Windows 11 Group Policy settings

3,686 settings · 26H2 · 1.0 · 29 Sep 2026

13 settingsCSV
Back to the list

Windows Components › Windows Update › Manage end user experience

Configure the maximum number of days that updates can be paused

ComputerIntune-readyNew in 26H2 · 1.0MaxPauseDays

Supported on At least Windows 11 Version 24H2

What it does

This policy controls the maximum number of days that end users can pause updates. Supported values are 1-35. The default value is 35 (days). When the policy is configured, users can only pause updates up until the end of the time period specified by the policy. Once the configured limit is reached, users can no longer extend the pause. If the policy is disabled or not configured, the default pause behavior applies - enabling users to continuously pause updates for up to 35 days at a time. This policy does not disable the Pause updates entirely. To remove access to Pause updates, use the "Remove access to 'Pause updates' feature" policy.

What it writes

Hive
HKEY_LOCAL_MACHINE
Registry key
Software\Policies\Microsoft\Windows\WindowsUpdate
Value name
MaxPauseDaysEnabled
When enabled
DWORD 1
When disabled
DWORD 0

In Intune

No native CSP; import the ADMX (Intune-ready).

From Microsoft's Policy CSP DDF files (DDF v2 Files, February 2026), read 9 Nov 2026.

Options

OptionTypeRegistry valueAllowed values
Max pause daysRequiredDefault: 35 Number (decimal) SetMaxPauseDays 1 to 35

Configure and deploy

Choose a state and the option values; the output below is generated from the template for exactly that.

State
Options used when Enabled

Enabled · Computer · template defaults

Registry file (.reg)

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate]
"MaxPauseDaysEnabled"=dword:00000001
"SetMaxPauseDays"=dword:00000023


PowerShell

$ErrorActionPreference = 'Stop'

function Set-RegistryValue {
    param(
        [Parameter(Mandatory = $true)][string] $Path,
        [Parameter(Mandatory = $true)][string] $Name,
        [Parameter(Mandatory = $true)][string] $PropertyType,
        [Parameter(Mandatory = $true)][object] $Value
    )

    if (-not (Test-Path -LiteralPath $Path)) {
        New-Item -Path $Path -Force | Out-Null
    }

    New-ItemProperty -LiteralPath $Path -Name $Name -PropertyType $PropertyType -Value $Value -Force | Out-Null
}

function Remove-RegistryValue {
    param(
        [Parameter(Mandatory = $true)][string] $Path,
        [Parameter(Mandatory = $true)][string] $Name
    )

    if (Test-Path -LiteralPath $Path) {
        Remove-ItemProperty -LiteralPath $Path -Name $Name -Force -ErrorAction SilentlyContinue
    }
}

function Clear-RegistryKeyValues {
    param(
        [Parameter(Mandatory = $true)][string] $Path
    )

    if (-not (Test-Path -LiteralPath $Path)) {
        return
    }

    foreach ($propertyName in (Get-Item -LiteralPath $Path).Property) {
        Remove-ItemProperty -LiteralPath $Path -Name $propertyName -Force -ErrorAction SilentlyContinue
    }
}

# Policy: Configure the maximum number of days that updates can be paused
# Name: MaxPauseDays
# Scope: Machine
# State: Enabled
# Source: WindowsUpdate.admx

Set-RegistryValue -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate' -Name 'MaxPauseDaysEnabled' -PropertyType 'DWord' -Value 1

Set-RegistryValue -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate' -Name 'SetMaxPauseDays' -PropertyType 'DWord' -Value 35
  • The OMA-URI is an inferred ADMX-backed Policy CSP candidate derived from the source ADMX file name and policy name.
  • Some Microsoft policies use built-in Policy CSP pages whose area names don't match the ADMX file name, so verify the candidate against Microsoft Learn before deployment.

ADMX profile candidate (OMA-URI)

./Device/Vendor/MSFT/Policy/Config/ADMX_WindowsUpdate/MaxPauseDays

ADMX SyncML candidate

<SyncML xmlns="SYNCML:SYNCML1.2">
  <SyncBody>
    <Replace>
      <CmdID>1</CmdID>
      <Item>
        <Meta>
          <Format>chr</Format>
          <Type>text/plain</Type>
        </Meta>
        <Target>
          <LocURI>./Device/Vendor/MSFT/Policy/Config/ADMX_WindowsUpdate/MaxPauseDays</LocURI>
        </Target>
        <Data>&lt;enabled/&gt;
&lt;data id="SetMaxPauseDays" value="35"/&gt;</Data>
      </Item>
    </Replace>
    <Final/>
  </SyncBody>
</SyncML>
Intune remediation scripts

Detection

$ErrorActionPreference = 'Stop'
$reasons = [System.Collections.Generic.List[string]]::new()

function Test-RegistryValueExists {
    param(
        [Parameter(Mandatory = $true)][string] $Path,
        [Parameter(Mandatory = $true)][string] $Name
    )

    if (-not (Test-Path -LiteralPath $Path)) {
        return $false
    }

    return $null -ne (Get-ItemProperty -LiteralPath $Path -Name $Name -ErrorAction SilentlyContinue)
}

function Test-RegistryValueEquals {
    param(
        [Parameter(Mandatory = $true)][string] $Path,
        [Parameter(Mandatory = $true)][string] $Name,
        [Parameter(Mandatory = $true)][string] $Kind,
        [Parameter(Mandatory = $true)][object] $Expected
    )

    if (-not (Test-Path -LiteralPath $Path)) {
        return $false
    }

    $valueObject = Get-ItemProperty -LiteralPath $Path -Name $Name -ErrorAction SilentlyContinue
    if ($null -eq $valueObject) {
        return $false
    }

    $actual = $valueObject.$Name
    switch ($Kind) {
        'String' { return [string]$actual -ceq [string]$Expected }
        'ExpandString' { return [string]$actual -ceq [string]$Expected }
        'DWord' { return [uint32]$actual -eq [uint32]$Expected }
        'QWord' {
            $actualBits = if ($actual -is [uint64]) { $actual } else { [BitConverter]::ToUInt64([BitConverter]::GetBytes([int64]$actual), 0) }
            $expectedBits = if ($Expected -is [uint64]) { $Expected } else { [BitConverter]::ToUInt64([BitConverter]::GetBytes([int64]$Expected), 0) }
            return $actualBits -eq $expectedBits
        }
        'MultiString' {
            $actualArray = @($actual)
            $expectedArray = @($Expected)
            if ($actualArray.Count -ne $expectedArray.Count) { return $false }
            for ($index = 0; $index -lt $actualArray.Count; $index++) {
                if ([string]$actualArray[$index] -cne [string]$expectedArray[$index]) { return $false }
            }
            return $true
        }
        'Binary' {
            $actualArray = [byte[]]$actual
            $expectedArray = [byte[]]$Expected
            if ($actualArray.Length -ne $expectedArray.Length) { return $false }
            for ($index = 0; $index -lt $actualArray.Length; $index++) {
                if ($actualArray[$index] -ne $expectedArray[$index]) { return $false }
            }
            return $true
        }
        default { return [string]$actual -ceq [string]$Expected }
    }
}

# Policy: Configure the maximum number of days that updates can be paused
# Name: MaxPauseDays
# Scope: Machine
# State: Enabled
# Source: WindowsUpdate.admx

$isMatch = Test-RegistryValueEquals -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate' -Name 'MaxPauseDaysEnabled' -Kind 'DWord' -Expected 1
if (-not $isMatch) {
    $reasons.Add('Value mismatch: HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate\MaxPauseDaysEnabled') | Out-Null
}

$isMatch = Test-RegistryValueEquals -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate' -Name 'SetMaxPauseDays' -Kind 'DWord' -Expected 35
if (-not $isMatch) {
    $reasons.Add('Value mismatch: HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate\SetMaxPauseDays') | Out-Null
}

if ($reasons.Count -eq 0) {
    Write-Output 'Compliant'
    exit 0
}

$reasons | ForEach-Object { Write-Output $_ }
exit 1

Remediation

$ErrorActionPreference = 'Stop'

function Set-RegistryValue {
    param(
        [Parameter(Mandatory = $true)][string] $Path,
        [Parameter(Mandatory = $true)][string] $Name,
        [Parameter(Mandatory = $true)][string] $PropertyType,
        [Parameter(Mandatory = $true)][object] $Value
    )

    if (-not (Test-Path -LiteralPath $Path)) {
        New-Item -Path $Path -Force | Out-Null
    }

    New-ItemProperty -LiteralPath $Path -Name $Name -PropertyType $PropertyType -Value $Value -Force | Out-Null
}

function Remove-RegistryValue {
    param(
        [Parameter(Mandatory = $true)][string] $Path,
        [Parameter(Mandatory = $true)][string] $Name
    )

    if (Test-Path -LiteralPath $Path) {
        Remove-ItemProperty -LiteralPath $Path -Name $Name -Force -ErrorAction SilentlyContinue
    }
}

function Clear-RegistryKeyValues {
    param(
        [Parameter(Mandatory = $true)][string] $Path
    )

    if (-not (Test-Path -LiteralPath $Path)) {
        return
    }

    foreach ($propertyName in (Get-Item -LiteralPath $Path).Property) {
        Remove-ItemProperty -LiteralPath $Path -Name $propertyName -Force -ErrorAction SilentlyContinue
    }
}

# Policy: Configure the maximum number of days that updates can be paused
# Name: MaxPauseDays
# Scope: Machine
# State: Enabled
# Source: WindowsUpdate.admx

Set-RegistryValue -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate' -Name 'MaxPauseDaysEnabled' -PropertyType 'DWord' -Value 1

Set-RegistryValue -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate' -Name 'SetMaxPauseDays' -PropertyType 'DWord' -Value 35

History 6 retained releases

  1. 26H2 · 1.029 Sep 2026
    Registry key: Software\Policies\Microsoft\Windows\WindowsUpdate · Value name: MaxPauseDaysEnabled
    • Added in this release.

Template

Internal name
MaxPauseDays
Namespace
Microsoft.Policies.WindowsUpdate
Template file
WindowsUpdate.admx
Release
Windows 11 26H2 · 1.0 · file set d777fedd6ae12a6d…
Definition, editor controls and support

Definition

<policy class="Machine" displayName="$(string.MaxPauseDays_Title)" explainText="$(string.MaxPauseDays_Help)" key="Software\Policies\Microsoft\Windows\WindowsUpdate" name="MaxPauseDays" presentation="$(presentation.MaxPauseDays_Title)" valueName="MaxPauseDaysEnabled" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
      <parentCategory ref="Microsoft.Policies.WindowsUpdate:WindowsUpdateExperience" />
      <supportedOn ref="Microsoft.Policies.WindowsUpdate:WU_SUPPORTED_Win11_24H2" />
      <enabledValue>
        <decimal value="1" />
      </enabledValue>
      <disabledValue>
        <decimal value="0" />
      </disabledValue>
      <elements>
        <decimal id="SetMaxPauseDays" maxValue="35" minValue="1" required="true" valueName="SetMaxPauseDays" />
      </elements>
    </policy>

Editor controls

<presentation id="MaxPauseDays_Title" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
        <text>Specify how many days users can pause updates for:</text>
        <decimalTextBox defaultValue="35" noSort="true" refId="SetMaxPauseDays">Max pause days: </decimalTextBox>
      </presentation>

Supported platforms and category

Microsoft.Policies.Windows:category:WindowsComponents
<category displayName="$(string.WindowsComponents)" explainText="$(string.WindowsComponents_Help)" name="WindowsComponents" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
Microsoft.Policies.WindowsUpdate:category:WindowsUpdateCat
<category displayName="$(string.WindowsUpdateCat)" name="WindowsUpdateCat" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
      <parentCategory ref="Microsoft.Policies.Windows:WindowsComponents" />
    </category>
Microsoft.Policies.WindowsUpdate:category:WindowsUpdateExperience
<category displayName="$(string.WindowsUpdateExperience)" name="WindowsUpdateExperience" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
      <parentCategory ref="Microsoft.Policies.WindowsUpdate:WindowsUpdateCat" />
    </category>
Microsoft.Policies.WindowsUpdate:definition:WU_SUPPORTED_Win11_24H2
<definition displayName="$(string.WU_SUPPORTED_Win11_24H2)" name="WU_SUPPORTED_Win11_24H2" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
        <or>
          <range minVersionIndex="13" ref="unresolved(products):MicrosoftWindows" />
        </or>
      </definition>
Microsoft.Policies.WindowsUpdate:unresolved:unresolved(products):MicrosoftWindows
<unresolved reference="unresolved(products):MicrosoftWindows" />
Microsoft.Policies.Windows:category:WindowsComponents
<category displayName="$(string.WindowsComponents)" explainText="$(string.WindowsComponents_Help)" name="WindowsComponents" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
<strings><string id="Microsoft.Policies.Windows:WindowsComponents">Windows Components</string><string id="Microsoft.Policies.Windows:WindowsComponents_Help">Contains settings for operating system components.</string></strings>
Microsoft.Policies.WindowsUpdate:category:WindowsUpdateCat
<category displayName="$(string.WindowsUpdateCat)" name="WindowsUpdateCat" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
      <parentCategory ref="Microsoft.Policies.Windows:WindowsComponents" />
    </category>
<strings><string id="Microsoft.Policies.WindowsUpdate:WindowsUpdateCat">Windows Update</string></strings>
Microsoft.Policies.WindowsUpdate:category:WindowsUpdateExperience
<category displayName="$(string.WindowsUpdateExperience)" name="WindowsUpdateExperience" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
      <parentCategory ref="Microsoft.Policies.WindowsUpdate:WindowsUpdateCat" />
    </category>
<strings><string id="Microsoft.Policies.WindowsUpdate:WindowsUpdateExperience">Manage end user experience</string></strings>
Microsoft.Policies.WindowsUpdate:definition:WU_SUPPORTED_Win11_24H2
<definition displayName="$(string.WU_SUPPORTED_Win11_24H2)" name="WU_SUPPORTED_Win11_24H2" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
        <or>
          <range minVersionIndex="13" ref="unresolved(products):MicrosoftWindows" />
        </or>
      </definition>
<strings><string id="Microsoft.Policies.WindowsUpdate:WU_SUPPORTED_Win11_24H2">At least Windows 11 Version 24H2</string></strings>
ChangeIntel

An IT change radar: releases, security, known issues, retirements, documentation changes, and service status from public sources. Every item links to supporting evidence; dates and statuses can change after they are read.

Sources read 13 Nov 03:01 UTC · 274 of 275 readable · 272 fully read · documentation 461/469 current