Про процесс svchost.exe: почему их так много? - Компьютер76 .
Настройки Windows

Про процесс svchost.exe: почему их так много?

Что такое процесс svchost.exe?

Если вы читаете эту статью, вы, скорее всего, интересуетесь, зачем в Диспетчере задач запущено столько процессов, и почему половину из них остановить порой просто невозможно. Сегодня мы конкретно поговорим за процесс svchost.exe, и почему вокруг него всегда столько вопросов.

Что за процесс svchost.exe ?

Согласно самой Microsoft, процесс svchost.exe – «общее название основных служб, запущенных от имени библиотек динамической связи». Вобщем, читается плохо даже на английском. Объясняем по-русски.

Некоторое время назад Microsoft начала переносить функциональность своей операционной системы из внутренних служб самой Windows (.exe файлы) в файлы динамических библиотек (.dll). C точки зрения программирования это обещало определённые перспективы в плане непрерывного и повторяющегося использования в системе. Но любой продвинутый пользователь Windows уже знает, что прямо из-под системы файл .dll запустить просто не получится – он это не умеет. Файл .dll должен быть ВЫГРУЖЕН из исполнительного файла .exe. История получилась немного запутанной. Так и появился “процесс” или контейнер процессов svchost .

Почему запущено столько процессов svchost.exe ?

Если вы хоть заходили во вкладку Службы Диспетчера задач, могли обратить внимание на огромное количество этих служб, запущенных в данный момент. Если всеми этими службами будет управлять единственный svchost.exe – Windows остановится через несколько мгновений после запуска. Так что система клонирует svchost.exe, и чем больше процессов запущено, тем более копий процесса svchost.exe вы увидите.

Все запущенные службы на самом деле организованы в логические группы. Так, один процесс svchost.exe отвечает за несколько служб, работающих на фаерволл, другой отвечает за интерфейс и т.д.

И что с этим делать?

Можно «укоротить» список запускаемых служб исключением абсолютно необязательных. Какие не нужны, совет дать не могу – ваш личный опыт через отключение процессов покажет. Но, к примеру, если Диспетчер задач показывает сильнейшую загрузку процессора процессом svchost.exe посоветую немедленно этот процесс перезагрузить. Если всё без изменений и процесс продолжает грузить систему до перегрева процессора, то “прогоните” проверку антивирусом при включённом сетевом соединении: у вас вирус. Если проверка показала, что вирусы здесь не причём, копайте в сторону конкретных служб, которые входят в контейнер Svchost.exe. Так, один из примеров рассматривается в статье

Svchost.exe нагружает процессор и память

Svchost.exe: что здесь за что отвечает?

Диспетчер задач ответить на этот вопрос сразу не сможет. А вот через командную консоль после команды:

tasklist /SVC

вы можете посмотреть, какие службы контролируются процессом svchost. Правда, немного зашифрованном виде:

Похожее

Также консоль может показать исключительно процессы и в том виде, как его видит Диспетчер:

tasklist /svc | find "svchost.exe"

Этот список можно увидеть в виде текстового файла в корне диска или любом понравившемся месте:

tasklist /svc | find "svchost.exe" > c:\список.txt

Хотите подробнее? Тогда вернитесь в Диспетчер и щёлкните правой кнопкой мыши по любому из svchost, выбрав в меню пункт Перейти в службам и Отображать процессы всех пользователей. Вас немедленно перекинет в следующую вкладку, где вы уже в подробностях узнаете, за что отвечает именно выбранный вами процесс svchost.exe . Для общего процесса эти службы будут даже промаркированы одним цветом:

Как отключать службы?

По этому поводу у меня есть отдельная статья Служба Windows не отключается или не запускается. Если система позволит вам остановить службу, не ссылаясь на её важность, вы методом проб и ошибок можете отключать службы прямо во время сеанса и не разрешать вообще им впредь запускаться. Их список можно найти, набрав в строке поиска команду:

services.msc

Вам стоит лишь выбрать службу, дважды щёлкнуть по ней мышью и выбрать в окне условия запуска:

Успехов.