Désactiver le moteur de compatibilité Switchback
Vérifié avec Windows 11 25H2 — mis à jour le 30 juillet 2026
Pris en charge sur : Au minimum Windows Server 2008 R2 ou Windows 7
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é Switchback dans le système. Switchback est un mécanisme qui assure la prévention de compatibilité générique à d’anciennes applications en proposant d’anciens comportements aux anciennes applications et les nouveaux comportements aux nouvelles applications. Ce mécanisme est activé par défaut. Si vous activez ce paramètre de stratégie, Switchback est désactivé. La désactivation de Switchback peut diminuer la compatibilité des anciennes applications. Cette option est utile pour les administrateurs de serveur ayant besoin de performances et connaissant la compatibilité des applications qu’ils utilisent. Si vous désactivez ou ne configurez pas ce paramètre de stratégie, le mécanisme Switchback est activé. Redémarrez le système après avoir modifié le paramètre afin de vous assurer que ces modifications ont été prises en compte.
Registre
Software\Policies\Microsoft\Windows\AppCompat Nom de valeur : SbEnable
Activé : SbEnable = 0
Désactivé : SbEnable = 1
MDM / Intune (CSP)
./Device/Vendor/MSFT/Policy/Config/ADMX_AppCompat/AppCompatTurnOffSwitchBack 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é Switchback
; State: Enabled
; Supported on: Au minimum Windows Server 2008 R2 ou Windows 7
[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\AppCompat]
"SbEnable"=dword:00000000 Autres formats (PowerShell, Intune, SCCM)
PowerShell
# Exported from gporais.com
# Policy: Désactiver le moteur de compatibilité Switchback
# State: Enabled
# Supported on: Au minimum Windows Server 2008 R2 ou Windows 7
$path = 'HKLM:\Software\Policies\Microsoft\Windows\AppCompat'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'SbEnable' -Value 0 -Type DWord Intune XML
OMA-URI: ./Device/Vendor/MSFT/Policy/Config/ADMX_AppCompat/AppCompatTurnOffSwitchBack
Data type: String
Value:
<enabled/> Intune Remediation
# === Detection script ===
# Exported from gporais.com
# Policy: Désactiver le moteur de compatibilité Switchback
# State: Enabled
# Supported on: Au minimum Windows Server 2008 R2 ou Windows 7
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 'SbEnable' -Expected 0 -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é Switchback
# State: Enabled
# Supported on: Au minimum Windows Server 2008 R2 ou Windows 7
$path = 'HKLM:\Software\Policies\Microsoft\Windows\AppCompat'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'SbEnable' -Value 0 -Type DWord Scripts SCCM
# Exported from gporais.com
# Policy: Désactiver le moteur de compatibilité Switchback
# State: Enabled
# Supported on: Au minimum Windows Server 2008 R2 ou Windows 7
# 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é Switchback
# State: Enabled
# Supported on: Au minimum Windows Server 2008 R2 ou Windows 7
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 'SbEnable' -Expected 0 -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é Switchback
# State: Enabled
# Supported on: Au minimum Windows Server 2008 R2 ou Windows 7
$path = 'HKLM:\Software\Policies\Microsoft\Windows\AppCompat'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'SbEnable' -Value 0 -Type DWord Vous construisez une collection multi-paramètres ? Ajoutez ce paramètre et générez des exports combinés (.reg, PowerShell, GPO).