Microsoft Copilot Update
Specify uninstall behavior for Copilot
Supported on Microsoft Edge Update 1.3.251.9 and later
Shown as of 151.0.4129.86, 14 Aug 2026. See it in the latest templates.
What it does
You can specify whether Copilot (stable channel) is uninstalled, or is blocked from being uninstalled, on domain-joined devices. If this policy is set to 'Enabled', Copilot is automatically uninstalled on all devices where this policy is deployed. User data is kept on the device. Copilot will be uninstalled the next time Microsoft Edge Update automatically checks for updates. If this policy is set to 'Enabled and delete user data' (Setting '2'), Copilot is automatically uninstalled on all devices where this policy is deployed, and user data are deleted from the device. If this policy is set to 'Disabled' (Setting '3'), all users are prevented from uninstalling Copilot where this policy is deployed. If the policy is 'Not configured' (default setting), all users are able to uninstall Copilot if they choose to do so. This policy is available only on Windows instances that are joined to a Microsoft® Active Directory® domain. If Copilot needs to be reinstalled: You can set the 'Install' Policy to Force Installs (Machine-Wide) to reinstall Copilot. If you set the Install policy to Force Installs (Machine-Wide), and also set the Uninstall policy to Enabled, the Force Installs (Machine-Wide) policy will override the Uninstall policy.
What it writes
- Hive
- HKEY_LOCAL_MACHINE
- Registry key
Software\Policies\Microsoft\EdgeUpdate- Value name
Uninstall{C50565E9-CCCF-44B4-BA15-5AC5C6569197}
Options
| Option | Type | Registry value | Allowed values |
|---|---|---|---|
| Part_UninstallCopilotPolicyRequiredDefault: Enabled | Drop-down list | Uninstall{C50565E9-CCCF-44B4-BA15-5AC5C6569197} |
|
Configure and deploy
Choose a state and the option values; the output below is generated from the template for exactly that.
Enabled · Computer · template defaults
Registry file (.reg)
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\EdgeUpdate]
"Uninstall{C50565E9-CCCF-44B4-BA15-5AC5C6569197}"=dword:00000001
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: Specify uninstall behavior for Copilot
# Name: Pol_UninstallMicrosoftCopilot
# Scope: Machine
# State: Enabled
# Source: copilotupdate.admx
Set-RegistryValue -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\EdgeUpdate' -Name 'Uninstall{C50565E9-CCCF-44B4-BA15-5AC5C6569197}' -PropertyType 'DWord' -Value 1
- 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_copilotupdate/Pol_UninstallMicrosoftCopilotADMX 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_copilotupdate/Pol_UninstallMicrosoftCopilot</LocURI>
</Target>
<Data><enabled/>
<data id="Part_UninstallCopilotPolicy" value="0"/></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' { return [uint64]$actual -eq [uint64]$Expected }
'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: Specify uninstall behavior for Copilot
# Name: Pol_UninstallMicrosoftCopilot
# Scope: Machine
# State: Enabled
# Source: copilotupdate.admx
$isMatch = Test-RegistryValueEquals -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\EdgeUpdate' -Name 'Uninstall{C50565E9-CCCF-44B4-BA15-5AC5C6569197}' -Kind 'DWord' -Expected 1
if (-not $isMatch) {
$reasons.Add('Value mismatch: HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\EdgeUpdate\Uninstall{C50565E9-CCCF-44B4-BA15-5AC5C6569197}') | 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: Specify uninstall behavior for Copilot
# Name: Pol_UninstallMicrosoftCopilot
# Scope: Machine
# State: Enabled
# Source: copilotupdate.admx
Set-RegistryValue -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\EdgeUpdate' -Name 'Uninstall{C50565E9-CCCF-44B4-BA15-5AC5C6569197}' -PropertyType 'DWord' -Value 1
History 37 retained releases
- 151.0.4129.10120 Aug 2026
- Removed from the templates.
- 151.0.4129.8614 Aug 2026
- Added in this release.
Template
- Internal name
Pol_UninstallMicrosoftCopilot- Namespace
Microsoft.Policies.CopilotUpdate- Template file
copilotupdate.admx- Release
- Microsoft Edge 151.0.4129.86 · file set
6cee10591f5eb8cd…
Definition, editor controls and support
Definition
<policy class="Machine" displayName="$(string.Pol_UninstallCopilot)" explainText="$(string.Explain_UninstallMicrosoftCopilot)" key="Software\Policies\Microsoft\EdgeUpdate" name="Pol_UninstallMicrosoftCopilot" presentation="$(presentation.Pol_UninstallCopilot)" valueName="Uninstall{C50565E9-CCCF-44B4-BA15-5AC5C6569197}" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<parentCategory ref="Microsoft.Policies.CopilotUpdate:Cat_MicrosoftCopilot" />
<supportedOn ref="Microsoft.Policies.CopilotUpdate:Sup_EdgeUpdate1_3_251_9" />
<elements>
<enum id="Part_UninstallCopilotPolicy" required="true" valueName="Uninstall{C50565E9-CCCF-44B4-BA15-5AC5C6569197}">
<item displayName="$(string.Name_UninstallEdgeEnabledAndKeepData)">
<value>
<decimal value="1" />
</value>
</item>
<item displayName="$(string.Name_UninstallEdgeEnabledAndDeleteData)">
<value>
<decimal value="2" />
</value>
</item>
<item displayName="$(string.Name_UninstallEdgeDisabled)">
<value>
<decimal value="3" />
</value>
</item>
<item displayName="$(string.Name_UninstallEdgeNotConfigured)">
<value>
<decimal value="0" />
</value>
</item>
</enum>
</elements>
</policy>Editor controls
<presentation id="Pol_UninstallCopilot" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<dropdownList defaultItem="0" refId="Part_UninstallCopilotPolicy" />
</presentation>Supported platforms and category
Microsoft.Policies.CopilotUpdate:category:Cat_MicrosoftCopilot
<category displayName="$(string.Cat_MicrosoftCopilot)" name="Cat_MicrosoftCopilot" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
Microsoft.Policies.CopilotUpdate:definition:Sup_EdgeUpdate1_3_251_9
<definition displayName="$(string.Sup_EdgeUpdate1_3_251_9)" name="Sup_EdgeUpdate1_3_251_9" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
Microsoft.Policies.CopilotUpdate:category:Cat_MicrosoftCopilot
<category displayName="$(string.Cat_MicrosoftCopilot)" name="Cat_MicrosoftCopilot" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
<strings><string id="Microsoft.Policies.CopilotUpdate:Cat_MicrosoftCopilot">Microsoft Copilot Update</string></strings>
Microsoft.Policies.CopilotUpdate:definition:Sup_EdgeUpdate1_3_251_9
<definition displayName="$(string.Sup_EdgeUpdate1_3_251_9)" name="Sup_EdgeUpdate1_3_251_9" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
<strings><string id="Microsoft.Policies.CopilotUpdate:Sup_EdgeUpdate1_3_251_9">Microsoft Edge Update 1.3.251.9 and later</string></strings>