Назад | Перейти на главную страницу

Что такое svchost и почему запущено несколько его экземпляров?

На моем рабочем столе работает шесть экземпляров и, вероятно, десять на сервере, которым я управляю. Что это такое и важно ли это для работы системы?

Многие исполняемые компоненты Windows реализованы как службы (см. Все службы на вашем компьютере, открыв Control Panel > Administrative Tools > Services). Это специализированные программы, работающие в фоновом режиме. Они запускаются не пользователем, вошедшим в систему, а самой операционной системой.

Большинство служб не являются автономными исполняемыми файлами (EXE-файлами), а реализованы в библиотеках (DLL), которые могут использоваться запущенными процессами. Как следует из названия, Svchost или "Service Host" - это стандартный исполняемый файл Windows для запуска этих DLL. Вы можете найти файл svchost.exe в %systemroot%\system32 каталог.

Если вы хотите узнать, какой экземпляр svchost какой сервис выполняет, введите

 tasklist /svc /fi "IMAGENAME eq svchost.exe"

в консоли командной строки (cmd).

Например, на машине, на которой я сделал снимок экрана, один из экземпляров svchost запускает 21 службу. Такая группировка сервисов позволяет лучше контролировать и упростить отладку, согласно Документация Microsoft.

Группы Svchost.exe определены в следующем разделе реестра:

HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Svchost

Совет (если вы используете Windows Vista, Windows 7 или Windows Server 2008): вы можете открыть диспетчер задач и щелкнуть правой кнопкой мыши конкретный процесс svchost.exe, а затем выбрать опцию «Перейти к службе». Это покажет Сервисы вкладка, где все службы, работающие под выбранным svchost.exe процесс будет отмечен.

В Центре загрузок Microsoft есть очень интересный документ:

Справочник по системным службам Microsoft Windows Server 2003

Этот документ содержит сводку всех служб, доступных для операционных систем семейства Windows Server 2003. Услуги перечислены в алфавитном порядке по отображаемым именам. После описания каждой услуги в таблице приводится основная информация об услуге.

Все службы Windows перечислены со всеми подробностями. Вы узнаете, например, что имя исполняемого файла службы служб терминалов

 svchost.exe -k termsvcs 

svchost, размещает службы в Windows See КБ. Если вы используете Обозреватель процессов вы можете видеть, какие службы выполняются внутри конкретного процесса.

Svchost - это сокращение от "Service Host". Он поддерживает работу большинства служб на вашем компьютере. Будет несколько служб, которые размещаются в собственном файле .exe, но большинство служб Windows необходимо размещать внутри процесса svchost.exe. Службы на вашем компьютере обрабатывают такие важные вещи, как сеть, сервер RpC, аудио, журнал событий и т. Д.

Введите "services.msc" в меню "Пуск" -> "Выполнить", чтобы просмотреть службы, запущенные на вашем компьютере. Если вы считаете кого-то лишним, вы можете остановить службу.

Введите «список задач / SVC», чтобы увидеть, какие службы размещены в различных файлах svchost.exe.

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

PS>get-process svchost | % {get-wmiobject win32_service -filter "processid=$($_.id)"} | format-table processid,name,displayname,state,status -auto

processid name          displayname                               state   status
--------- ----          -----------                               -----   ------
      316 HTTPFilter    HTTP SSL                                  Running OK
     1328 DcomLaunch    DCOM Server Process Launcher              Running OK
     1328 TermService   Terminal Services                         Running OK
     1392 RpcSs         Remote Procedure Call (RPC)               Running OK
     1528 AudioSrv      Windows Audio                             Running OK
     1528 BITS          Background Intelligent Transfer Service   Running OK
     1528 Browser       Computer Browser                          Running OK

Укороченная версия однострочника выглядит так:

gps svchost | % {gwmi win32_service -f "processid=$($_.id)"} | ft proc*,name,disp*,stat* -auto

Эта статья может помочь: http://www.gfi.com/blog/exploring-svchostexe-part-1/