Что такое хост-процесс службы (svchost.exe) и почему так много запущено?
Если вы когда-либо просматривали диспетчер задач, вы, возможно, задавались вопросом, почему так много запущенных процессов Service Host. Вы не можете убить их, и вы уверены, что не начали их. Итак, что они?
Процесс Service Host служит оболочкой для загрузки сервисов из DLL-файлов. Службы организованы в связанные группы, и каждая группа запускается в отдельном экземпляре процесса узла службы. Таким образом, проблема в одном случае не влияет на другие экземпляры. Этот процесс является важной частью Windows, которую вы не можете предотвратить.
Эта статья является частью нашей продолжающейся серии, объясняющей различные процессы, обнаруженные в диспетчере задач, такие как dwm.exe, ctfmon.exe, mDNSResponder.exe, conhost.exe, rundll32.exe, Adobe_Updater.exe и многие другие. Не знаете, что это за услуги? Лучше начать читать!
Итак, что такое процесс хоста службы?
Вот ответ, по словам Microsoft:
Svchost.exe - это общее имя хост-процесса для сервисов, которые запускаются из динамически подключаемых библиотек..
Но это не очень помогает нам. Некоторое время назад Microsoft начала менять большую часть функциональности Windows с использования внутренних служб Windows (которые запускались из EXE-файлов) вместо использования DLL-файлов. С точки зрения программирования это делает код более пригодным для повторного использования и, возможно, легче поддерживать его в актуальном состоянии. Проблема в том, что вы не можете запустить файл DLL напрямую из Windows так же, как вы можете запустить исполняемый файл. Вместо этого для размещения этих служб DLL используется оболочка, которая загружается из исполняемого файла. И так родился процесс Service Host (svchost.exe).
Почему выполняется так много процессов хоста службы?
Если вы когда-нибудь заглядывали в раздел «Службы» на панели управления, вы, вероятно, заметили, что Windows требует много служб. Если каждая отдельная служба запускается под одним процессом узла службы, сбой в одной службе может привести к выходу из строя всей Windows. Вместо этого они выделяются.
Сервисы организованы в логические группы, которые в некоторой степени связаны друг с другом, и затем создается отдельный экземпляр Service Host для размещения каждой группы. Например, один процесс Service Host запускает три службы, связанные с брандмауэром. Другой процесс Service Host может запускать все службы, связанные с пользовательским интерфейсом и т. Д. Например, на изображении ниже видно, что один процесс Service Host запускает несколько связанных сетевых служб, а другой - службы, связанные с удаленными вызовами процедур..
Есть ли что-нибудь для меня, чтобы сделать со всей этой информацией?
Честно говоря, не много. Во времена Windows XP (и предыдущих версий), когда у ПК были гораздо более ограниченные ресурсы, а операционные системы были не так хорошо настроены, часто рекомендовалось не запускать Windows для запуска ненужных служб. В наши дни мы больше не рекомендуем отключать сервисы. Современные ПК, как правило, загружены памятью и высокопроизводительными процессорами. Добавьте это к тому факту, что способы обработки служб Windows в современных версиях (и какие службы запускаются) были упорядочены, и устранение служб, которые, по вашему мнению, вам не нужны, больше не оказывает большого влияния..
Тем не менее, если вы заметили, что конкретный экземпляр Service Host или связанной с ним службы вызывает проблемы, такие как постоянное чрезмерное использование ЦП или ОЗУ, вы можете проверить конкретные задействованные службы. Это может, по крайней мере, дать вам представление о том, с чего начать устранение неполадок. Есть несколько способов узнать, какие именно сервисы размещаются на конкретном экземпляре Service Host. Вы можете проверить вещи в диспетчере задач или с помощью отличного стороннего приложения под названием Process Explorer.
Проверьте связанные службы в диспетчере задач
Если вы используете Windows 8 или 10, процессы отображаются на вкладке «Процессы» диспетчера задач с их полными именами. Если процесс служит хостом для нескольких сервисов, вы можете увидеть эти сервисы, просто расширив процесс. Это позволяет очень легко определить, какие сервисы принадлежат каждому экземпляру процесса Service Host.
Вы можете щелкнуть правой кнопкой мыши любую отдельную службу, чтобы остановить службу, просмотреть ее в приложении панели управления «Службы» или даже выполнить поиск информации об услуге в Интернете..
Если вы используете Windows 7, все немного по-другому. Диспетчер задач Windows 7 не группировал процессы одинаковым образом и не отображал обычные имена процессов - он отображал только все запущенные экземпляры svchost.exe. Вам пришлось немного изучить, чтобы определить службы, связанные с каким-либо конкретным экземпляром «svchost.exe».
На вкладке «Процессы» диспетчера задач в Windows 7 щелкните правой кнопкой мыши определенный процесс «svchost.exe» и выберите параметр «Перейти в службу»..
Это переключит вас на вкладку «Службы», где все службы, запущенные в рамках этого процесса «svchost.exe», выбраны..
Затем вы можете увидеть полное название каждой службы в столбце «Описание», чтобы вы могли отключить службу, если вы не хотите, чтобы она работала, или устранить неполадки, из-за которых она вызывает проблемы..
Проверьте связанные службы с помощью Process Explorer
Microsoft также предоставляет превосходный продвинутый инструмент для работы с процессами в составе своей линейки Sysinternals. Просто скачайте Process Explorer и запустите его - это портативное приложение, поэтому устанавливать его не нужно. Process Explorer предоставляет все виды расширенных функций, и мы настоятельно рекомендуем прочитать наше руководство по пониманию Process Explorer, чтобы узнать больше.
Для наших целей здесь, однако, Process Explorer группирует связанные службы под каждым экземпляром «svchost.exe». Они перечислены по именам файлов, но их полные имена также отображаются в столбце «Описание». Вы также можете навести указатель мыши на любой из процессов «svchost.exe», чтобы увидеть всплывающее окно со всеми службами, связанными с этим процессом, даже с теми, которые в данный момент не запущены..
Может ли этот процесс быть вирусом?
Сам процесс является официальным компонентом Windows. Хотя возможно, что вирус заменил реальный Service Host собственным исполняемым файлом, это очень маловероятно. Если вы хотите быть уверены, вы можете проверить расположение файла процесса. В диспетчере задач щелкните правой кнопкой мыши любой процесс Service Host и выберите параметр «Открыть расположение файла».
Если файл хранится в папке Windows \ System32, то вы можете быть уверены, что не имеете дело с вирусом.
Тем не менее, если вы все еще хотите немного больше душевного спокойствия, вы всегда можете сканировать на вирусы, используя предпочитаемый сканер вирусов. Береженого Бог бережет!