Qu’est-ce que COM Surrogate et pourquoi tourne-t-il sous Windows
COM Surrogate est un processus Windows normal, dllhost.exe dans C:\Windows\System32, qui exécute un composant dans un processus séparé pour qu’une défaillance n’entraîne pas le programme qui l’a demandé. La raison la plus courante de le voir est la génération de miniatures par l’Explorateur de fichiers. Plusieurs copies sont normales, et une copie qui apparaît et disparaît pendant que vous parcourez des dossiers fait son travail. Une copie qui reste occupée, ou un fichier « ouvert dans COM Surrogate », désigne normalement un gestionnaire de miniatures ou un fichier défectueux.
Pourquoi il existe
Les programmes Windows chargent souvent du code supplémentaire sous forme de composant COM dans une DLL. Si cette DLL plante dans le programme, tout le programme tombe avec elle. Raymond Chen explique sur l’Old New Thing de Microsoft que l’Explorateur utilise COM Surrogate pour extraire les miniatures, de sorte qu’un plantage dans un extracteur de miniatures détruit le processus de substitution plutôt que l’Explorateur. Cela explique aussi l’ancien message « COM Surrogate a cessé de fonctionner » : il signifie en général qu’un composant a planté là-dedans, et que l’Explorateur a survécu grâce à cette conception.
Windows le démarre en demandant un composant précis :
C:\Windows\System32\dllhost.exe /Processid:{AB8902B4-09CA-4BB6-B78D-A8F59079A8D5}
C’est cet identifiant qu’il faut rechercher, et celui-ci correspond au cache de miniatures de Windows. D’autres programmes utilisent le même processus pour leurs propres composants, c’est pourquoi le nom seul dit peu de choses sur ce qui se cache derrière une copie occupée.
Trouver de quel composant il s’agit
- Appuyez sur
Ctrl + Shift + Escet ouvrez l’onglet Détails. - Faites un clic droit sur un en-tête de colonne, choisissez Sélectionner des colonnes et cochez Ligne de commande.
- Repérez
dllhost.exeet lisez l’identifiant après/Processid:.
Ou listez toutes les copies depuis PowerShell :
Get-CimInstance Win32_Process | Where-Object Name -eq 'dllhost.exe' | Select-Object ProcessId, CommandLine
Recherchez ensuite l’identifiant, en remplaçant celui-ci par le vôtre :
(Get-ItemProperty 'Registry::HKEY_CLASSES_ROOT\CLSID\{AB8902B4-09CA-4BB6-B78D-A8F59079A8D5}').'(default)'
Sous Windows 11, celui-ci renvoie Thumbnail Cache Class Factory for Out of Proc Server. Si le vôtre désigne un produit tiers, la solution est la mise à jour ou la désinstallation de ce produit.
Que faire selon le symptôme
| Vous voyez | Cause probable | Essayez |
|---|---|---|
| Processeur ou disque très sollicité quand un dossier est ouvert | Génération de miniatures pour de nombreux gros fichiers | Patientez, ou passez l’affichage de ce dossier en Détails |
| Processeur très sollicité dans le même dossier à chaque fois | Un fichier multimédia endommagé, ou un codec qui échoue dessus | Sortez les fichiers par lots pour le trouver, puis mettez à jour ou retirez le pack de codecs |
| « L’action ne peut pas être terminée car le fichier est ouvert dans COM Surrogate » | Un gestionnaire de miniatures retient encore ce fichier | Fermez le volet d’aperçu et le dossier, attendez quelques secondes, réessayez |
| Il plante sans cesse ou « a cessé de fonctionner » | Un composant tiers défectueux | Lisez l’identifiant comme ci-dessus, puis mettez à jour ou retirez ce logiciel |
| Miniatures fausses ou périmées | Un cache de miniatures endommagé | Effacez Miniatures dans le Nettoyage de disque, voir Nettoyage de disque ou Assistant Stockage |
Pour ne plus générer de miniatures du tout, ouvrez Explorateur de fichiers › Afficher plus (…) › Options › Affichage et cochez Toujours afficher les icônes, jamais les miniatures. Cela soulage la machine au prix des aperçus d’images dans les dossiers. C’est aussi un bon test : si le problème disparaît, les miniatures en étaient la cause.
Est-ce un virus
Le vrai est un fichier signé par Microsoft dans C:\Windows\System32, avec une copie 32 bits dans C:\Windows\SysWOW64. Un logiciel malveillant peut emprunter le nom, et peut aussi exécuter son propre code dans un dllhost.exe authentique, donc un chemin correct est un bon indice mais pas une preuve. Vérifiez d’abord le fichier :
Get-AuthenticodeSignature C:\Windows\System32\dllhost.exe
Le signataire doit être Microsoft Windows. Méfiez-vous d’un dllhost.exe lancé depuis un autre endroit, d’une copie à forte activité réseau, ou d’un identifiant de composant qui pointe vers un fichier dans AppData ou Temp. Si l’un de ces cas correspond, lancez une analyse complète avec Microsoft Defender.
Ce qu’il ne faut pas faire
- Ne supprimez pas
dllhost.exeet ne le bloquez pas. Windows et de nombreux programmes en dépendent, et le Vérificateur des fichiers système considérera une copie manquante comme un dommage. - Ne comptez pas sur sa fermeture comme solution. Terminer une copie bloquée est sans danger, car une miniature ou une boîte de dialogue peut échouer et Windows en démarre une nouvelle quand il le faut, mais la cause reste là.
- Ne l’ajoutez pas aux exceptions de la Prévention de l’exécution des données, comme le suggèrent de vieux guides. Cela abaisse une protection sans trouver le composant défectueux.
- N’installez pas de nettoyeur de registre ni de « réparateur de DLL » pour cela. Aucun ne dit quel composant échoue.
La place de Mole
La page État de Mole for Windows regroupe COM Surrogate en une ligne par session, avec le processeur et la mémoire additionnés sur toutes ses copies. Pourquoi tourne-t-il ? dans le menu de la ligne liste les copies les plus gourmandes avec leur PID, leur processeur et leur mémoire, et affiche l’Exécutable, ce qui l’a démarré et, pour une copie exécutée sans élévation sous votre propre compte, la Commande avec son /Processid, ce qui vous évite les colonnes du Gestionnaire des tâches. Cliquez sur une copie pour voir ses détails. Comme COM Surrogate s’exécute depuis le dossier Windows, Mole le marque comme Système et ne propose ni Terminer ni Forcer à quitter : utilisez le Gestionnaire des tâches si vous devez arrêter une copie bloquée. Mole ne répare pas les gestionnaires de miniatures, et sa page Nettoyer n’a aucune ligne pour le cache de miniatures, utilisez donc le Nettoyage de disque pour cela. Pour un contexte plus large, voir ce que font les processus Windows courants.
FAQ
Qu’est-ce que COM Surrogate ?
C’est dllhost.exe, un processus Windows qui héberge un composant en dehors du programme qui l’utilise. Un plantage y reste confiné. L’Explorateur de fichiers l’utilise pour les miniatures, et d’autres programmes aussi.
Pourquoi y a-t-il autant de processus COM Surrogate ?
Chaque copie héberge un composant, donc plusieurs à la fois est normal. Beaucoup se terminent d’elles-mêmes après une période d’inactivité.
Puis-je terminer COM Surrogate ?
Oui, terminer une copie bloquée est sans danger, et Windows en démarre une nouvelle quand il en a besoin. Si la même copie redevient sans cesse occupée, cherchez l’identifiant de son composant plutôt que de la terminer à répétition.
Pourquoi est-il indiqué qu’un fichier est ouvert dans COM Surrogate ?
Un gestionnaire de miniatures lit ce fichier. Fermez le dossier et tout volet d’aperçu, attendez quelques secondes et réessayez. Si cela se reproduit avec le même type de fichier, activez Toujours afficher les icônes, jamais les miniatures pour confirmer la cause.
COM Surrogate est-il un virus ?
Le vrai fichier n’en est pas un. Vérifiez qu’il s’exécute depuis C:\Windows\System32 ou C:\Windows\SysWOW64 et qu’il est signé par Microsoft Windows, puis regardez quel composant il héberge.