Процесс COM Surrogate, почему грузит процессор и вызывает ошибки в системе

Обновлено 26.08.2023

COM Surrogate logoДобрый день! Уважаемые читатели и гости IT блога Pyatilistnik.org. В прошлый раз мы с вами успешно устранили ошибку 0xc0000098мешавшую загрузке системы. Идем далее и сегодня я хочу вам осветить вот такую интересную ситуацию, у меня есть хобби в виде коллекционирования книг комиксов про Дональда Дака и Скруджа Макдака. У меня идет процесс их оцифровки и последующей обработки, и вот на этапе обработки я столкнулся с тем, что не могу удалить или пере заменить файлы со сканами книг. При попытке их удалить я получал ошибку "Действие не может быть выполнено, так как этот файл открыт в COM Surrogate". Давайте разбираться, что за процесс dllhost.exe COM Surrogateм, почему он может нагружать процессор или даже быть вредоносом. Обо всем по порядку.

Что за процесс dllhost.exe COM Surrogate?

COM Surrogate (COM-заместитель) - это процесс, который выполняется в операционной системе Windows и используется для управления и обеспечения безопасности приложений, основанных на технологии Component Object Model (COM). COM Surrogate представляет собой своеобразный посредник между операционной системой и COM-объектами, обеспечивая их безопасную работу и изоляцию от других процессов.

Технология Component Object Model (COM) является стандартом для разработки и использования программных компонентов в Windows. COM-объекты представляют собой независимые модули, которые могут быть использованы различными приложениями для выполнения определенных задач. Они могут быть написаны на разных языках программирования и предоставлять различные функциональные возможности.

COM Surrogate выполняет несколько важных функций:

  1. ✅Во-первых, он обеспечивает безопасность приложений, использующих COM-объекты. COM Surrogate работает в режиме изоляции, что означает, что если одно приложение, использующее COM-объект, завершается аварийно или содержит ошибку, это не повлияет на работу других приложений. Таким образом, COM Surrogate предотвращает возможность распространения ошибок или вредоносного кода на другие процессы.
  2. ✅Во-вторых, COM Surrogate выполняет функции по управлению памятью и ресурсами. Он контролирует выделение и освобождение памяти, а также управляет доступом к ресурсам компьютера. Это позволяет оптимизировать использование системных ресурсов и обеспечить стабильную работу приложений.

COM Surrogate также обеспечивает поддержку многопоточности. Это означает, что приложения могут использовать несколько потоков для параллельного выполнения задач. COM Surrogate следит за корректным выполнением потоков и предотвращает возможность конфликтов или блокировок, которые могут возникнуть при одновременном доступе к общим ресурсам. COM Surrogate  запускается автоматически при необходимости. Обычно пользователь не видит этот процесс, так как он работает в фоновом режиме. Однако иногда пользователи могут заметить его в диспетчере задач или получить сообщение об ошибке, связанное с COM Surrogate.

Почему dllhost.exe COM Surrogate вызывает проблемы и какие они бывают

Давайте рассмотрим какие чаще всего встречающиеся проблемы вы можете поймать с COM Surrogate:

  • Не удаляется папка или файл, у вас выскакивает сообщение "Действие не может быть выполнено, так как этот файл открыт в COM Surrogate", сообщающее вам, что файл заблокирован другим процессом. Выглядит это вот так.

Действие не может быть выполнено, так как этот файл открыт в COM Surrogate

  • ⛔️Какая-то сторонняя программа в вашей системе стала некорректно работать
  • ⛔️При установке или запуске сторонняя программа неправильно зарегистрировала объекты COM, очень часто бывает, когда ПО старое и официально не поддерживает новую ОС
  • ⛔️Высокая нагрузка в системе, например у вас полностью забита вся оперативная память, в следствии чего вы можете получить внезапное прекращение работы процесса COM Surrogate
  • ⛔️Ошибку COM Surrogate может вызывать и проводник Windows в котором запущены определенные папки с видео файлами и фото
  • ⛔️Нельзя и забывать про вирусную активность, когда зловред маскируется под процесс COM Surrogate

Как проверить COM Surrogate не является ли он вирусом

Если у вас стали появляться ошибки COM Surrogate, вы заметили, что ваш компьютер стал сильно жужжать после установки какого-то ПО или расширения в браузер, то есть высокая доля вероятности, что в в вашу систему пробрался вирус  или майнер. Первое, что вы должны сделать, это запустить "Диспетчер задач". Для этого нажмите одновременно три клавиши:

Далее вам необходимо перейти на вкладку "Подробности". Тут вам необходимо найти процесс dllhost.exe в его описании вы увидите COM Surrogate. Как видите тут не видно, откуда запущен файл, давайте это исправим.

COM Surrogate в диспетчере задач

Включим дополнительный столбец в отображении. Щелкаем правым кликом по имени любого столбца, после чего из контекстного меню выбираем "Выбрать столбцы" и поставьте галочку "Путь к образу". Это в целом полезная вещь.

COM Surrogate определение места расположения

В результате теперь у вас есть удобный столбец, где легко видно исполняемый файл. В моем случае dllhost.exe располагался по пути C:\Windows\SysWOW64\dllhost.exe, что нормально.

Так же dllhost.exe может легко ссылаться на C:\Windows\System32\ это нормально

Если процесс "dllhost.exe COM Surrogate" ведет на другое место, например папку загрузки или папку в профиле, то вам нужно сразу его проверить антивирусным решением. Как правило сам процесс COM Surrogate не вызывает повышенную нагрузку на CPU и висит в количестве одного или двух экземпляров процесса. Если у вас в диспетчере задач много процессов dllhost.exe, да еще и с высоким потреблением CPU, бейте тревогу и проверяйте на вирусы

COM Surrogate месторасположение

Файл dllhost.exe ссылается на легитимное место, но всегда старайтесь проверить еще его свойства. Для этого откроем его из месторасположения. В контекстном меню выберите "Открыть расположение файла".

COM Surrogate открываем расположение файла

Откройте свойства файла dllhost.exe, перейдите на вкладку "Цифровые подписи" и убедитесь, что тут в имени подписавшего стоит "Microsoft Windows". Если сертификат другой на непонятно кого или его вообще нет, то это плохо и у вас скорее всего вирус.

 

dllhost.exe цифровая подпись

 

Так же можно с помощью PowerShell найти процессы dllhost.exe и вычислить их месторасположение. Для этого запустите PowerShell ISE и введите там:

# Получаем список всех процессов COM Surrogate
$comSurrogateProcesses = Get-Process | Where-Object { $_.ProcessName -eq "dllhost" }

# Выводим информацию о процессах
$comSurrogateProcesses | Format-Table -AutoSize ProcessName, Id, StartTime, Path, Description

# Перебираем каждый процесс COM Surrogate
foreach ($process in $comSurrogateProcesses) {
# Получаем путь к файлу процесса
$filePath = $process.Path

# Получаем информацию о сертификате файла
$certificate = Get-AuthenticodeSignature -FilePath $filePath

# Выводим информацию о сертификате
Write-Host "File: $filePath"
Write-Host "Certificate Subject: $($certificate.Status)"
Write-Host "Certificate Issuer: $($certificate.SignerCertificate)"
Write-Host "--------------------------------------------------"
}

Как видите я вижу пусть к файлу, и вижу каким сертификатом он подписан. На основании этого я вижу, что процесс COM Surrogate не является вирусом.

Проверка dllhost.exe через PowerShell

Высокая нагрузка на процессор процессом dllhost.exe

Если процесс dllhost.exe  COM Surrogate сильно нагружает процессор и он не является вирусом, то тут есть ряд причин, данная ситуация появляется при открытии определенной папки в проводнике, возможно, в ней находится поврежденный медиа-файл или же система не может создать эскиз файла (Thumbnail).

  • Первое, что можно попробовать сделать, это запустить монитор ресурсов Windows. Для этого вызовем окно "Выполнить" и ведем там:

resmon

  • Перейдите на вкладку ЦП и выставите галочку на против процесса dllhost.exe. После этого щелкните на сам процесс dllhost.exe и обратите внимание на область "Связанные модули". Там могут фигурировать какие-либо файлы видео или изображений, если они есть попробуйте их удалить с компьютера. В большинстве случаев тут будут одни библиотеки, и вот с ними немного сложнее.

dllhost.exe в resmon

Если в мониторе ресурсов не удалось найти связанные модули, то можно прибегнуть к более тяжелой артиллерии в виде программы Process Explorer от Sysinternals. После скачивания утилиты, разархивируйте архив и запустите ее. Нажмите на иконку построения дерева процессов. В моем случае у меня было такое дерево процессов:

Главным был svchost.exe, в его состав шли WmiPrvSE.exe, RuntimeBroker.exe, dllhost.exe. Если навести мышку на dllhost.exe, то вы увидите какой COM-сервер запущен в рамках процесса. У меня это было:

C:\Windows\SysWOW64\DllHost.exe /Processid:{AB8902B4-09CA-4BB6-B78D-A8F59079A8D5} COM Class: Thumbnail Cache Out of Proc Server C:\Windows\System32\thumbcache.dll (кеширование иконок для отображения их в проводнике)

dllhost.exe в Process Explorer

Перейдите в свойства dllhost.exe, на вкладку "Threads". Убедитесь, что тут нет каких-то странных не системных библиотек.

Threads Process Explorer

Например, был случай, что у пользователя там были библиотеки Sonicmp4demux.ax (.ax - расширение, часто используемое фильтрами для DirectShow), которые были частью пакета авторинга от Roxio. По итогу было обновлено приложение Roxio и данная проблема, что процесс COM Surrogate  грузит процессор ушла.

Дополнительно можно почитать по ссылке - http://www.docwin.ru/article912.html

Как я выше указал у меня был задействован COM Class: Thumbnail Cache Out of Proc Server. Например, в операционной системе Windows используется специальный инструмент - диспетчер файлов, который использует COM-объекты для создания уменьшенных копий изображений и других файлов при открытии папки. Эти COM-объекты обрабатывают различные типы файлов, включая изображения и видео, и создают эскизы для их предварительного просмотра.

Однако, использование COM-объектов может вызывать проблемы. Например, если COM-объект аварийно завершает работу, то он может отключить связанный с ним процесс. В прошлом, в операционной системе Windows, эти COM-объекты, отвечающие за создание эскизов, часто вызывали сбои и нарушали работу диспетчера файлов.

Для решения этой проблемы было введено новое решение. Теперь, когда диспетчер файлов (также известный как File Explorer) нуждается в создании миниатюр, он запускает отдельный процесс, называемый COM Surrogate. Внутри COM Surrogate находится специальный COM-объект, который выполняет задачу по созданию эскизов. Если этот COM-объект выйдет из строя, то произойдет сбой только в COM Surrogate, а основной процесс File Explorer продолжит свою работу с файлами.

Такое поведение DllHost возможно при создании эскизов файлов и формирование базы по ним thumbcache_32.db и т.д. по моему система просто не может эту базу создать или сопоставить с кодеком. И действительно в моем случае, когда я с помощью внешнего сервиса в Google Chrome производил обработку картинок, то не мог сохранить их в определенную папку, а вот в соседнюю без проблем. Тут вы можете выкрутить пересоздав папку, или отключить создание миниатюр, без них можно прожить.

Еще такое видел с программой по снятию снапшотов FastStone Capture, у которой был модуль по работе с видео. Именно он и вызывал высокую нагрузку на CPU при работе с проводником системы, там пришлось обновлять утилиту.

Отключение провайдеров Thumbnail

Если пересоздание папки не помогло, то как я и писал выше причиной может быть связана с неисправностью расширений оболочки; это может быть связано либо с поврежденными папками или файлами, которые не удалось проанализировать, либо с тем, что расширение оболочки содержит нестабильный код. Вы можете управлять расширениями оболочки с помощью ShellExView, которая входит в пакет NirLauncher (сам пакет под номером 65), чтобы вы могли попытаться отключить те, которые вам не нужны для нормальной работы, то есть все те, которые не принадлежат Microsoft.

Расширения оболочки делают такие вещи, как добавление пунктов контекстного меню, создание эскизов изображений и видео; а также создание информации для столбцов в проводнике Windows (например, страниц PDF) и его свойств.

Thumbnail провайдеры

Вот пример с одного форума, где у человека были проблемы с миниатюрами mkv файлов.

" Я использовал ShellExView и заметил только один элемент типа "Thumbnail", который не был предоставлен MIcrosoft и касался видео — "Поставщик миниатюр DivX". Звучит не связанно (в конце концов, DivX и MKV — разные вещи), за исключением того, что в описании указано "Поставщик эскизов DivX MKV/AVI", а его отключение устранило проблему.

Если мне нужны миниатюры для файлов .mkv, я могу просто переустановить/восстановить DivX снова. Честно говоря, файлы .mkv воспроизводятся просто отлично, и в любом случае эти миниатюры стоили довольно дорого, поэтому я с радостью проживу без них."

Откат на точку восстановления, удаление кодеков или других программ

Если у вас совсем недавно появилась ошибка "Прекращена работа программ COM Surrogate", то с высокой долей вероятности вы недавно производили установку какого-то приложения. Чтобы это выяснить вам нужно проверить даты.

Как узнать дату установки программ - Я уже подробно описывал, посмотрите

Если таковое место было, то самым быстрым методом вернуть все обратно является использовать точки восстановления системы. Либо вы можете попробовать удалить те программы после которых у вас появились проблемы с процессом COM Surrogate.

Как удалить программу я уже рассказывал

Очень часто причиной ошибки могут быть:

  • K-Lite Codec Pack
  • Просмотрщики PDF
  • VLC

Проверка целостности системных файлов

Еще хорошей практикой профилактики и устранения ошибок COM Surrogate является проверка вашей системы на предмет повреждения системных файлов, сделать это просто. Запустите командную строку от имени администратора и введите вот такую длинную команду:

sfc /scannow & DISM /Online /Cleanup-Image /ScanHealth & DISM /Online /Cleanup-Image /CheckHealth & DISM /Online /Cleanup-Image /RestoreHealth

В идеале у вас тут не должно быть ни каких ошибок, но если они есть, то будут устранены. Бывают случаи. что повреждения фатальные, как у меня было с ошибкой 0x80073701 и там пришлось изучать дополнительные коды ошибок, изучать другие методы.

Проверка целостности системных файлов

Исправляем ошибки регистрации COM

Как я описывал выше очень важна правильная работа COM-объектов в Windows. Можно попробовать проверить систему на их ошибки, тут существует много утилит, я привык к старой, доброй программке Ccleaner. Выделите обязательно пункт "Ошибки ActiveX и Class", остальные по желанию, я оставляю вот так. Нажмите кнопку поиск проблем.

Устранение ошибки COM Surrogate через Ccleaner

По результатам сканирования вы можете увидеть большое количество ошибок Activex/COM. Попробуйте их исправить, нажмите кнопку "Посмотреть выбранные проблемы"

Сканирование COM Surrogate в Ccleaner

 

Обязательно создайте резервную копию реестра перед попыткой со стороны Ccleaner устранить ошибки COM Surrogate

Нажимаем "Да".

Окно создания резервной копии реестра

Выбираем нужное для вас место в проводнике Windows и задаем имя.

Сохранение резервной копии реестра в проводнике

Нажмите "Исправить отмеченные", 205 ошибок будут устранены.

Исправляем ошибки COM Surrogate

Я всегда сканирую реестр на новые ошибки, так как могут выявиться еще, как видите появились еще 21.

Исправляем ошибки COM Surrogate в Ccleaner

Вы должны добиться отображения 0 ошибок.

После данной процедуры, я советую перезагрузить ваш компьютер

COM Surrogate в реестре

Дополнительные способы исправить ошибки COM Surrogate

Если вы дошли до данного раздела, то вы все еще не исправили проблему с процессом dllhost.exe, что я еще могу вам посоветовать:

  1. Попробуйте проверить вашу систему на вирусы, Касперским, Dr Web или утилитой AdwCleaner
  2. Попробуйте отключить DEP для dllhost.exe
  3. Изучите журналы Windows, там могут быть дополнительные события с ошибками, которые помогут изучить проблему шире и найти решение
  4. Попробуйте произвести установку обновлений в Windows, так как вполне возможно, что это баг и его уже давно поправили

Надеюсь, что вам удалось понять назначение процесса dllhost.exe COM Surrogate, что это не вирус, но с ним могут быть нюансу. Если вы нашли свой метод, то просьба поделиться им в комментариях, давайте помогать друг другу. С вами был Иван Сёмин, автор и создатель IT портала Pyatilistnik.org.

Дополнительные ссылки

  • http://forum.oszone.net/thread-157094-2.html
  • https://superuser.com/questions/371992/windows-explorer-crashes-when-loading-a-folder-that-folder-is-my-desktop
Автор - Сёмин Иван

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *