Windows 11 : corriger la fuite mémoire de « Service Host: Inventory and Compatibility Appraisal Service » (Microsoft Compatibility Appraiser)

Votre PC sous Windows 11 devient inutilisable car « Service Host: Inventory and Compatibility Appraisal Service » (Microsoft Compatibility Appraiser) avale toute la RAM ? Voici un guide concret pour diagnostiquer, corriger et prévenir cette fuite mémoire—sans nuire à vos mises à jour.

Sommaire

Vue d’ensemble du problème

Depuis une récente mise à jour de Windows 11, certains utilisateurs voient le processus Service Host: Inventory and Compatibility Appraisal Service augmenter progressivement son empreinte mémoire jusqu’à atteindre 90–99 % d’utilisation. À ce stade, les applications gèlent (navigateur, messagerie, IDE), et même l’arrêt manuel du processus via le Gestionnaire des tâches n’offre qu’un répit de courte durée. L’ajout de RAM ne résout pas le fond du problème : il s’agit d’un comportement de type fuite mémoire du service d’évaluation de compatibilité.

Symptômes et confirmation rapide

  • Utilisation de la mémoire qui grimpe en continu, même au repos.
  • Le processus fautif apparaît comme Service Host (svchost.exe) hébergeant « Inventory and Compatibility Appraisal Service » ou « Microsoft Compatibility Appraiser ».
  • La fermeture du processus via le Gestionnaire des tâches n’empêche pas sa relance lors du prochain déclenchement planifié.
  • Les pics coïncident souvent avec l’exécution d’une tâche planifiée située dans \Microsoft\Windows\Application Experience.

Ce que fait réellement l’Appraiser

Le Microsoft Compatibility Appraiser (appraiser/CompatTel) réalise un inventaire matériel et logiciel, puis évalue la compatibilité de votre machine avec les builds et drivers à venir. Ces données permettent à Windows Update de déterminer l’éligibilité aux mises à niveau de fonctionnalité et d’anticiper les conflits connus. En d’autres termes, c’est utile pour la qualité et le rythme des mises à jour, mais non essentiel au fonctionnement quotidien de vos applications.

Solutions proposées et étapes détaillées

Commencez par la désactivation de la tâche planifiée. Si la fuite persiste (ou si le service reste suspendu en mémoire avec une consommation élevée), désactivez également le service. Terminez par un contrôle d’intégrité système (DISM/SFC).

ÉtapeActionRésultat attenduRemarques
1Désactiver la tâche planifiée
1. Ouvrir « Planificateur de tâches » (taper Task Scheduler dans le menu Démarrer).
2. Naviguer vers Bibliothèque du Planificateur de tâches ▸ Microsoft ▸ Windows ▸ Application Experience.
3. Clic droit sur Microsoft Compatibility AppraiserDésactiver.
4. Redémarrer le PC.
Le processus ne devrait plus se relancer automatiquement.Solution rapide et réversible.
2Désactiver le service (si la tâche suspendue consomme toujours de la RAM)
1. ⊞ Win + R → services.msc → Entrée.
2. Chercher Inventaire et évaluation de compatibilité (ou nom équivalent).
3. Double‑cliquer → Type de démarrage : DésactivéArrêterAppliquer.
4. Redémarrer à nouveau.
Empêche définitivement le lancement du service jusqu’à ré‑activation manuelle.Peut retarder l’éligibilité à certaines mises à jour majeures ou à la détection de nouveaux périphériques.
3Appliquer les correctifs système (facultatif mais recommandé)
Invite de commandes (admin) :
DISM /Online /Cleanup-Image /RestoreHealth
SFC /scannow
Répare les fichiers système corrompus susceptibles d’aggraver la fuite mémoire.Utile après une mise à jour défectueuse.

Équivalents en ligne de commande (rapide et scriptable)

Si vous préférez automatiser—ou intervenir sur plusieurs PC—utilisez les commandes ci‑dessous (exécutez dans une console PowerShell/Invite de commandes en tant qu’administrateur).

Désactiver la tâche planifiée (PowerShell)

# PowerShell (administrateur)
$taskPath = "\Microsoft\Windows\Application Experience"
$taskName = "Microsoft Compatibility Appraiser"
Disable-ScheduledTask -TaskPath $taskPath -TaskName $taskName -ErrorAction SilentlyContinue
# Vérifier l'état
Get-ScheduledTask -TaskPath $taskPath -TaskName $taskName | Format-List State, TaskName, TaskPath

Désactiver la tâche planifiée (Invite de commandes)

schtasks /Change /TN "\Microsoft\Windows\Application Experience\Microsoft Compatibility Appraiser" /Disable
schtasks /Query /TN "\Microsoft\Windows\Application Experience\Microsoft Compatibility Appraiser"

Désactiver le service (PowerShell)

# Localiser le service par son intitulé (affichage FR/EN selon build)
$svc = Get-CimInstance Win32_Service | Where-Object {
  $_.DisplayName -match "Inventaire.*compatibilit|Compatibility.*Appraisal"
}
if ($svc) {
  Stop-Service -Name $svc.Name -Force -ErrorAction SilentlyContinue
  Set-Service -Name $svc.Name -StartupType Disabled
  Get-Service -Name $svc.Name | Format-List Name, DisplayName, Status, StartType
} else {
  Write-Host "Service d'évaluation de compatibilité introuvable. Vérifiez l'intitulé exact."
}

Désactiver le service (Invite de commandes)

:: Remplacer <NomService> par le nom système si connu (ex. PcaSvc/DiagTrack/Appraiser selon build)
sc stop <NomService>
sc config <NomService> start= disabled
sc query <NomService>

Contrôles d’intégrité (DISM / SFC)

Après des mises à jour, des incohérences peuvent amplifier une fuite mémoire. Exécutez ces commandes, redémarrez, puis re‑testez :

DISM /Online /Cleanup-Image /RestoreHealth
SFC /scannow

Mesures avancées pour environnements professionnels

Neutraliser proprement à l’échelle d’un parc

  • GPP (Group Policy Preferences) ▸ Scheduled Tasks : ciblez la tâche Microsoft Compatibility Appraiser et définissez Enabled = false.
  • Script de démarrage (GPO) : exécutez les commandes schtasks / PowerShell ci‑dessus sur chaque poste.
  • Plan de réactivation : prévoyez un GPO inverse pour ré‑activer la tâche lors de la publication d’un correctif Microsoft.

Télémetry : minimiser sans bloquer les mises à jour

Réduire le niveau de télémétrie peut limiter l’activité de l’Appraiser, mais évitez de couper brutalement sur des éditions où cela dégrade Windows Update. Sur Enterprise/Education, le niveau Security (0) est possible ; sur Pro/Home, restez au niveau minimal autorisé et privilégiez la désactivation ciblée de la tâche.

Collecte d’éléments de preuve (post‑mortem)

  • Journaux Planificateur : Observateur d’événements ▸ Journaux des applications et des services ▸ Microsoft ▸ Windows ▸ TaskScheduler ▸ Operational.
  • Journaux Windows Update : Microsoft ▸ Windows ▸ WindowsUpdateClient.
  • Capture Perf : compteurs Process, Memory et un WPR court (30–120 s) pendant la montée de mémoire.

Surveiller et contenir la fuite (script de repli)

Si vous devez garder la télémétrie active, créez une surveillance qui redémarre le service quand sa mémoire dépasse un seuil. Le script ci‑dessous journalise la consommation et relance le service si nécessaire.

# PowerShell - Exécuter en tâche planifiée (toutes les 10-15 min)
$log = "$env:ProgramData\AppraiserMonitor.log"
$thresholdMB = 1500  # Seuil de 1,5 Go, à ajuster selon votre RAM

$svc = Get-CimInstance Win32_Service | Where-Object {
$_.DisplayName -match "Inventaire.*compatibilit|Compatibility.*Appraisal"
}
if ($svc -and $svc.ProcessId -gt 0) {
try {
$p = Get-Process -Id $svc.ProcessId -ErrorAction Stop
$ws = [math]::Round($p.WorkingSet64 / 1MB, 0)
$ts = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
Add-Content -Path $log -Value "$ts | PID=$($p.Id) | WS=${ws}MB"
if ($ws -gt $thresholdMB) {
Add-Content -Path $log -Value "$ts | Seuil dépassé: redémarrage du service $($svc.Name)"
Restart-Service -Name $svc.Name -Force -ErrorAction SilentlyContinue
}
} catch {
# Processus disparu entre-temps
}
} else {

# Rien à surveiller ou service désactivé

} 

Conseils de diagnostic approfondi

Compteurs PerfMon utiles

Objet\CompteurCibleÀ surveiller
Process\Working Set / Private Bytessvchost (PID hébergeant l’Appraiser)Courbe ascendante continue pendant > 5–10 min, sans retomber.
Memory\Committed BytesSystèmeAugmentation parallèle aux fuites du processus.
Memory\Available MBytesSystèmeChute nette à l’approche de 0 → risque d’arrêt d’applis.
Paging File\% Usagepagefile.sysMontée inhabituelle = pression mémoire réelle.

Emplacements de journaux

JournalChemin (Observateur d’événements)Indications
Task SchedulerMicrosoft » Windows » TaskScheduler » OperationalHeure de déclenchement, durée, codes de retour.
Application ExperienceMicrosoft » Windows » Application-ExperienceErreurs de collecte/inventaire.
Windows Update ClientMicrosoft » Windows » WindowsUpdateClientÉtapes de l’éligibilité, téléchargements corrélés.

Bonnes pratiques pour éviter la récidive

  • Attente active après mise à jour : laissez 10–15 minutes au système pour terminer ses tâches d’indexation et d’évaluation après un Patch Tuesday, puis évaluez la stabilité.
  • Mémoire virtuelle : évitez de désactiver le fichier d’échange. Laissez Windows le gérer automatiquement.
  • Exclusions antivirus ciblées (test) : pour diagnostic, excluez temporairement les dossiers d’inventaire (p. ex. répertoires de diagnostics) puis réactivez—n’en faites pas une solution permanente.
  • Pilotes à jour : un driver instable peut faire gonfler l’inventaire. Mettez à jour les pilotes critiques (chipset, stockage, GPU).
  • Surveillance : mettez en place un suivi PerfMon ou le script de repli ci‑dessus, surtout sur des postes critiques.

Comment revenir en arrière / réactiver

Réactivez la collecte lorsque Microsoft publie un correctif officiel ou avant une mise à niveau de version.

Réactiver la tâche planifiée

# PowerShell
Enable-ScheduledTask -TaskPath "\Microsoft\Windows\Application Experience" -TaskName "Microsoft Compatibility Appraiser"
# Invite de commandes
schtasks /Change /TN "\Microsoft\Windows\Application Experience\Microsoft Compatibility Appraiser" /Enable

Réactiver le service

# PowerShell
$svc = Get-CimInstance Win32_Service | Where-Object {
  $_.DisplayName -match "Inventaire.*compatibilit|Compatibility.*Appraisal"
}
if ($svc) {
  Set-Service -Name $svc.Name -StartupType Manual
  Start-Service -Name $svc.Name
  Get-Service -Name $svc.Name | Format-List Name, DisplayName, Status, StartType
}
# Invite de commandes
sc config <NomService> start= demand
sc start <NomService>

Alternative radicale (à utiliser prudemment)

Si l’incident coïncide exactement avec une mise à jour et qu’aucune des mesures ci‑dessus ne stabilise la machine, vous pouvez désinstaller la mise à jour incriminée ou revenir à un point de restauration récent.

:: Remplacez XXXXX par l'identifiant KB à désinstaller
wusa /uninstall /kb:XXXXX /quiet /norestart

Utilisez cette option comme pont vers un correctif durable (Microsoft publie fréquemment des correctifs cumulatifs).

FAQ rapide

Ajouter de la RAM suffit‑il ?
Non. La fuite consommera la nouvelle RAM jusqu’à saturer à nouveau. Il faut corriger la cause (tâche/service/OS corrompu).

Est‑ce dangereux de désactiver l’Appraiser ?
Non pour l’usage quotidien. Cependant, cela peut retarder la disponibilité de certaines mises à jour majeures ou bloquer un diagnostic de compatibilité jusqu’à réactivation.

Puis‑je supprimer l’exécutable ?
Non recommandé. Supprimer/renommer des fichiers système peut casser Windows Update. Préférez la désactivation contrôlée via tâche et service.

Pourquoi la désactivation de la tâche ne suffit-elle pas toujours ?
Parce que le service peut rester suspendu, ou être réveillé par d’autres mécanismes. D’où la désactivation conjointe de la tâche et du service.

Checklist minute (récapitulatif)

  1. Désactiver Microsoft Compatibility Appraiser dans le Planificateur.
  2. Désactiver/arrêter le service « Inventaire et évaluation de compatibilité ».
  3. Redémarrer et observer la mémoire sur 10–15 minutes.
  4. Lancer DISM puis SFC.
  5. Option : déployer la surveillance (script) jusqu’à la sortie d’un correctif.

Informations complémentaires utiles

  • Impact sur les mises à jour : l’Appraiser valide la compatibilité des builds. Le désactiver peut décaler des mises à jour de fonctionnalité ; surveillez les notes de version et réactivez‑le lors d’un correctif officiel.
  • Patchs cumulatifs : un correctif arrive souvent dans un lot « Patch Tuesday ». Pensez à vérifier Windows Update après quelques jours.
  • Solution de repli : si vous devez garder la télémétrie, automatisez le redémarrage du service et journalisez sa mémoire pour détecter le moment où la fuite disparaît.
  • Restauration : en dernier recours, désinstallez la mise à jour récente ou restaurez un point système antérieur.

Tableau de commandes essentielles

ObjectifPowerShellInvite de commandes
Désactiver la tâche AppraiserDisable-ScheduledTask -TaskPath "\Microsoft\Windows\Application Experience" -TaskName "Microsoft Compatibility Appraiser"schtasks /Change /TN "\Microsoft\Windows\Application Experience\Microsoft Compatibility Appraiser" /Disable
Réactiver la tâcheEnable-ScheduledTask -TaskPath "\Microsoft\Windows\Application Experience" -TaskName "Microsoft Compatibility Appraiser"schtasks /Change /TN "\Microsoft\Windows\Application Experience\Microsoft Compatibility Appraiser" /Enable
Désactiver le serviceSet-Service -Name <NomService> -StartupType Disabled ; Stop-Service -Name <NomService> -Forcesc stop <NomService> & sc config <NomService> start= disabled
Réactiver le serviceSet-Service -Name <NomService> -StartupType Manual ; Start-Service -Name <NomService>sc config <NomService> start= demand & sc start <NomService>
Réparer l’imageDISM /Online /Cleanup-Image /RestoreHealth
Vérifier l’intégritéSFC /scannow
Désinstaller un KBwusa /uninstall /kb:XXXXX /quiet /norestart

Conclusion

Le service Inventory and Compatibility Appraisal joue un rôle clé pour la qualité des mises à jour, mais une fuite mémoire peut rendre un PC inutilisable. La combinaison « désactivation de la tâche + désactivation du service + DISM/SFC » stabilise la plupart des machines, le tout en conservant la possibilité de réactiver proprement lorsque Microsoft publie un correctif. Grâce aux commandes et scripts fournis, vous pouvez à la fois rétablir la productivité immédiatement et préparer un retour en configuration standard en un clic.

Sommaire