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

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

5 ответов

Многие исполняющие компоненты 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 См. КБ. Если вы используете Process Explorer, вы можете увидеть, какие службы запускаются внутри определенного процесса.

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

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

Введите "tasklist /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/

Другие вопросы по тегам