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

войдите в систему serverfault

27
задан 26 January 2012 в 21:17
5 ответов

svchost, сервисы хостов в Windows See KB. При использовании Проводника Процесса, Вы видите, который сервисы, работал в конкретном процессе.

16
ответ дан 28 November 2019 в 20:05
  • 1
    Таким образом, действительно ли это более или менее эквивалентно inetd в соответствии с Linux? Серверная инфраструктура общего назначения, так, чтобы разработчики могли записать сервисы, не волнуясь о части сервера кода? –  Jason Tan 30 May 2009 в 19:02
  • 2
    Тот же вид идеи Jason, но очевидно с дальнейшим диапазоном, чем inetd, который обычно только поддерживает задачи типа webbish doesn' t это? Хорошая аналогия, хотя, конечно, достаточно близко для наличных денег... –  Rob Moir 15 June 2009 в 14:30

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

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

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

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

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

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

alt text

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

HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Svchost

Подсказка (если Вы выполняете Windows Vista, Windows 7 или Windows Server 2008): можно открыть Task Manager и щелкнуть правой кнопкой по конкретному процессу svchost.exe и затем выбрать опцию "Go to Service". Это покажет вкладку Services, где все сервисы, работающие под выбранным svchost.exe процесс будет отмечен.

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

Ссылка системных служб Microsoft Windows Server 2003

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

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

 svchost.exe -k termsvcs 
20
ответ дан 28 November 2019 в 20:05
  • 1
    +1 спасибо за информацию.... Вы и Ваши 8 000 представителей точки... серьезно, хотя, который является большим ресурсом, чтобы иметь. Я считаю меня сведущим в Победе CLI, но не знал об этом.Спасибо! –  cop1152 15 June 2009 в 17:01

Svchost короток для "Сервисного Хоста". Это сохраняет большинство Сервисов на Ваше выполнение машины. Будет несколько Сервисов, которые размещают себя в их собственном .exe файле, но большинство Сервисов Windows должно быть размещено в процессе svchost.exe. Сервисы на Вашу машину обрабатывают важный материал как сети, сервер RPC, аудио, журнал событий и т.д.

Введите "services.msc" в Запуске-> Выполнение для просмотра Сервисов, у Вас есть работа Вашей машины. При размышлении кого-либо unneccecary, можно остановить сервис.

Введите "список задач/SVC" для наблюдения, какие сервисы размещаются различными файлами svchost.exe.

7
ответ дан 28 November 2019 в 20:05

Вот острота 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
1
ответ дан 28 November 2019 в 20:05

Эта статья могла бы помочь: http://www.gfi.com/blog/exploring-svchostexe-part-1/

0
ответ дан 28 November 2019 в 20:05

Теги

Похожие вопросы