Що таке svchost і чому працює кілька примірників його?


27

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


ЛОЛ. У мене 91 з них працює на моєму ноутбуці!
Сена Якова

Відповіді:


16

svchost, розміщує послуги у Windows Див. KB . Якщо ви використовуєте Process Explorer, ви можете побачити, які служби запускаються в певному процесі.


1
Так це більш-менш еквівалентно inetd під Linux? Загальна рамка сервера загального призначення, щоб розробники могли писати сервіси, не турбуючись про серверну частину коду?
Джейсон Тан

Язон такий самий, але, очевидно, з подальшим діапазоном, ніж inetd, який, як правило, лише підтримує завдання типу webbish, чи не так? Хоча приємна аналогія, звичайно, достатньо близька до готівки ...
Роб Моїр

20

Багато виконавчих компонентів Windows реалізовані як сервіси (див. Усі служби на відкритті машини Control Panel > Administrative Tools > Services). Це спеціалізовані програми, що працюють у фоновому режимі. Їх починає не користувач, який увійшов у систему, а моя операційна система.

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

Якщо ви хочете знати, який примірник svchost виконує яку службу, введіть

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

на консолі командного рядка (cmd).

На машині, де я зробив скріншот, в одному з екземплярів svchost працює, наприклад, 21 різні сервіси. Таке групування сервісів дозволяє покращити контроль та простіше налагодження, згідно документації Microsoft .

alt текст

Групи 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 

+1 спасибі за інформацію .... ви та ваш репортер 8000 балів ... серйозно, хоча це чудовий ресурс. Я вважаю себе добре розібраним у Win CLI, але не знав цього. Спасибі!
cop1152

7

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

Введіть "services.msc" у меню Пуск-> Виконати, щоб переглянути служби, які ви працюєте на вашому пристрої. Якщо ви вважаєте когось непотрібним, ви можете припинити послугу.

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


1

Ось однокласник 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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.