Désactiver le moteur de compatibilité des applications
Vérifié avec Windows 11 25H2 — mis à jour le 30 juillet 2026
Pris en charge sur : Au minimum Windows Server 2003
Chemin dans la console GPO
Configuration ordinateur\Modèles d'administration\Composants Windows\Compatibilité des applications Description
Cette stratégie contrôle l’état du moteur de compatibilité des applications dans le système. Le moteur fait partie du chargeur et analyse une base de données de compatibilité chaque fois qu’une application démarre dans le système. Si une correspondance est trouvée pour l’application, il fournit des solutions à l’exécution ou des correctifs de compatibilité, ou affiche un message de l’aide de l’application si celle-ci présente un problème connu. En désactivant le moteur de compatibilité des applications, vous améliorez les performances du système. Toutefois, la compatibilité de nombreuses applications héritées répandues sera compromise et les applications incompatibles connues seront installées. (Il peut en résulter, par exemple, un écran bleu si une ancienne application antivirus est installée.) Les fonctionnalités Protection des ressources Windows et Contrôle de compte d’utilisateur utilisent le moteur de compatibilité des applications pour atténuer les problèmes liés aux applications. Si le moteur est désactivé, ces actions préventives ne sont pas appliquées aux applications et aux programmes d’installation correspondants et il se peut que ces applications ne soient pas installées ou ne s’exécutent pas correctement. Cette option est utile pour les administrateurs de serveur qui doivent améliorer les performances et qui connaissent la compatibilité des applications qu’ils utilisent. Elle est également particulièrement utile sur les serveurs Web sur lesquels des applications peuvent être lancées plusieurs centaines de fois par seconde, auquel cas les performances du chargeur sont essentielles. REMARQUE : nombre de processus système mettent en cache la valeur de ce paramètre pour des raisons de performances. Si vous modifiez ce paramètre, redémarrez le système pour vous assurer que ces modifications ont été prises en compte.
Registre
Software\Policies\Microsoft\Windows\AppCompat Nom de valeur : DisableEngine
MDM / Intune (CSP)
./Device/Vendor/MSFT/Policy/Config/ADMX_AppCompat/AppCompatTurnOffEngine Documentation Microsoft Learn Données de correspondance : Microsoft Learn (CC BY 4.0)
Générateur d'exports
BETAConfigurez l'état, la portée et les options, puis générez les sorties .reg, PowerShell, Intune et SCCM — ou ajoutez le paramètre à une collection multi-paramètres.
Ces exports écrivent le registre — ce n'est pas une GPO managée. ⓘ
Fichier .reg
Windows Registry Editor Version 5.00
; Exported from gporais.com
; Policy: Désactiver le moteur de compatibilité des applications
; State: Enabled
; Supported on: Au minimum Windows Server 2003
[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\AppCompat]
"DisableEngine"=dword:00000001 Autres formats (PowerShell, Intune, SCCM)
PowerShell
# Exported from gporais.com
# Policy: Désactiver le moteur de compatibilité des applications
# State: Enabled
# Supported on: Au minimum Windows Server 2003
$path = 'HKLM:\Software\Policies\Microsoft\Windows\AppCompat'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'DisableEngine' -Value 1 -Type DWord Intune XML
OMA-URI: ./Device/Vendor/MSFT/Policy/Config/ADMX_AppCompat/AppCompatTurnOffEngine
Data type: String
Value:
<enabled/> Intune Remediation
# === Detection script ===
# Exported from gporais.com
# Policy: Désactiver le moteur de compatibilité des applications
# State: Enabled
# Supported on: Au minimum Windows Server 2003
function Test-RegistryValue {
param(
[Parameter(Mandatory = $true)][string]$Path,
[Parameter(Mandatory = $true)][string]$Name,
[object]$Expected,
[ValidateSet('String', 'DWord', 'MultiString')][string]$Kind = 'String',
[switch]$Absent
)
try {
$item = Get-ItemProperty -LiteralPath $Path -Name $Name -ErrorAction Stop
} catch {
return $Absent.IsPresent
}
if ($Absent.IsPresent) { return $false }
$actual = $item.$Name
if ($Kind -eq 'DWord') { return ([int64]$actual) -eq ([int64]$Expected) }
if ($Kind -eq 'MultiString') {
$actualValues = @($actual)
$expectedValues = @($Expected)
if ($actualValues.Count -ne $expectedValues.Count) { return $false }
for ($i = 0; $i -lt $expectedValues.Count; $i++) {
if ([string]$actualValues[$i] -ne [string]$expectedValues[$i]) { return $false }
}
return $true
}
return [string]$actual -eq [string]$Expected
}
$checks = @(
(Test-RegistryValue -Path 'HKLM:\Software\Policies\Microsoft\Windows\AppCompat' -Name 'DisableEngine' -Expected 1 -Kind DWord)
)
if ($checks -notcontains $false) {
Write-Output 'Compliant'
exit 0
}
Write-Output 'Non-compliant'
exit 1
# === Remediation script ===
# Exported from gporais.com
# Policy: Désactiver le moteur de compatibilité des applications
# State: Enabled
# Supported on: Au minimum Windows Server 2003
$path = 'HKLM:\Software\Policies\Microsoft\Windows\AppCompat'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'DisableEngine' -Value 1 -Type DWord Scripts SCCM
# Exported from gporais.com
# Policy: Désactiver le moteur de compatibilité des applications
# State: Enabled
# Supported on: Au minimum Windows Server 2003
# SCCM Configuration Item guidance:
# Create a Configuration Item of type "Setting: Script".
# Discovery script: use the Detection script below.
# Remediation script: use the Remediation script below.
# Compliance rule: the Discovery script output equals 'Compliant'.
# === Detection script ===
# Exported from gporais.com
# Policy: Désactiver le moteur de compatibilité des applications
# State: Enabled
# Supported on: Au minimum Windows Server 2003
function Test-RegistryValue {
param(
[Parameter(Mandatory = $true)][string]$Path,
[Parameter(Mandatory = $true)][string]$Name,
[object]$Expected,
[ValidateSet('String', 'DWord', 'MultiString')][string]$Kind = 'String',
[switch]$Absent
)
try {
$item = Get-ItemProperty -LiteralPath $Path -Name $Name -ErrorAction Stop
} catch {
return $Absent.IsPresent
}
if ($Absent.IsPresent) { return $false }
$actual = $item.$Name
if ($Kind -eq 'DWord') { return ([int64]$actual) -eq ([int64]$Expected) }
if ($Kind -eq 'MultiString') {
$actualValues = @($actual)
$expectedValues = @($Expected)
if ($actualValues.Count -ne $expectedValues.Count) { return $false }
for ($i = 0; $i -lt $expectedValues.Count; $i++) {
if ([string]$actualValues[$i] -ne [string]$expectedValues[$i]) { return $false }
}
return $true
}
return [string]$actual -eq [string]$Expected
}
$checks = @(
(Test-RegistryValue -Path 'HKLM:\Software\Policies\Microsoft\Windows\AppCompat' -Name 'DisableEngine' -Expected 1 -Kind DWord)
)
if ($checks -notcontains $false) {
Write-Output 'Compliant'
exit 0
}
Write-Output 'Non-compliant'
exit 1
# === Remediation script ===
# Exported from gporais.com
# Policy: Désactiver le moteur de compatibilité des applications
# State: Enabled
# Supported on: Au minimum Windows Server 2003
$path = 'HKLM:\Software\Policies\Microsoft\Windows\AppCompat'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'DisableEngine' -Value 1 -Type DWord Vous construisez une collection multi-paramètres ? Ajoutez ce paramètre et générez des exports combinés (.reg, PowerShell, GPO).