Статьи

Что такое svchost.exe и зачем он нужен?

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

Так что же это такое?

По словам Microsoft: “svchost.exe is a generic host process name for services that run from dynamic-link libraries”.

По-русски: Svchost.exe — название главного процесса для служб, запускаемых из библиотек динамической компоновки (DLL). Файл Svchost.exe расположен в папке %SystemRoot%\System32. В процессе загрузки на основании записей в реестре Svchost.exe составляет список служб, которые необходимо запустить. Одновременно могут быть запущены несколько экземпляров процесса Svchost.exe. Каждый сеанс Svchost.exe может содержать несколько групп служб, следовательно, отдельные службы могут выполняться в зависимости от того, как и когда был запущен Svchost.exe. Таким образом улучшается контроль и упрощается отладка.

Группы Svchost.exe определены в следующем разделе реестра: HKEYLOCALMACHINE\Software\Microsoft\Windows NT\CurrentVersion\Svchost

Каждый параметр этого раздела представляет собой отдельную группу Svchost и при просмотре активных процессов представляется на экране в виде отдельного экземпляра процесса. Каждый параметр имеет тип «REGMULTISZ» и содержит службы, выполняющиеся в составе группы Svchost. Каждая группа Svchost содержит имена одной или более служб, взятых из следующего раздела реестра, при условии, что в ее подразделе Parameters содержится параметр ServiceDLL.

HKEYLOCALMACHINE\System\CurrentControlSet\Services\Служба

Некоторое время назад, Microsoft начали экспортировать обычную функциональность сервисов Windows в .dll файлы вместо .exe. С точки зрения программирования это создает лучшие возможности для повторного использования… но проблема в том, что вы не можете запустить файлы .dll напрямую из Windows, они должны быть подкючены уже с запущенных исполняемых файлов(.exe). Отсюда и появился процесс svchost.exe.

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

Если вы когда-либо заглядывали в отдел панель управления>службы через панель управления, вы должны были заметить что есть очень много служб необходимых Windows. И представьте, если кадый отдельный процесс превратится в копию svchost.exe, то Windows просто сдохнет о нагрузки… поэтому такое разделение очень необходимо.

Эти сервисы разбиты на логические группы, а затем одна копия svchost.exe запускается для каждой группы. Например, одна копия svchost.exe обслуживает 3 сервиса звязанных с вашим firewall’ом. Другая копия svchost.exe может обслуживать сервисы связанные с пользовательским интерфейсом, и так далее.

Ну так и что же я могу сделать с ними?

Вы можете урезать ненужные службы путем отключения или остановки услуг, которые абсолютно не должны быть запущены. Кроме того, вы можете выключить экземпляр svchost.exe который больше всего потребляет ресурсов вашего CPU.

Настоящая проблема состоит в раскрытии лишних копий сервиса svchost.exe…об этом ниже.

Если вы поняли о чем речь, откройте окно процессов(ctrl+shift+esc || ctrl+alt+del) от имени всех пользователей

Либо вы можете сделать это через командную строку (Vista аль XP Pro)

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

tasklist /SVC

Вы можете использовать командную строку для отключения ненужного вам сервиса. В команде “trkwks” находится сервис изображенный ваше, но если вы вернетесь в список задач в начале этой статьи, вы также с легкостью увидите ее там.

sc config trkwks start= disabled

Взято тут