Що таке процес обслуговування хоста (svchost.exe) і чому так багато працює?
Якщо ви коли-небудь переглядали Task Manager, ви, можливо, замислювалися, чому працює так багато службових процесів. Ви не можете вбити їх, і ви, звичайно, не запустили їх. Отже, які вони?
Процес Host Host служить оболонкою для завантаження служб з DLL-файлів. Служби організовані у відповідні групи, і кожна група запускається в іншому екземплярі процесу Host Host. Таким чином, проблема в одному випадку не впливає на інші екземпляри. Цей процес є важливою частиною Windows, яку не можна запобігти запуску.
Ця стаття є частиною нашої нинішньої серії, в якій пояснюються різні процеси, знайдені в диспетчері завдань, такі як dwm.exe, ctfmon.exe, mDNSResponder.exe, conhost.exe, rundll32.exe, Adobe_Updater.exe та багато інших. Не знаєте, що це за послуги? Краще почати читати!
Отже, що таке процес Host Host?
Ось відповідь, на думку Microsoft:
Svchost.exe - це загальна назва хосту для служб, які запускаються з бібліотек динамічного зв'язку.
Але це не дуже допомагає нам. Деякий час тому Microsoft почала змінювати більшу частину функціональності Windows, спираючись на внутрішні служби Windows (які працювали з EXE-файлів) на використання файлів DLL. З точки зору програмування, це робить код більш багаторазовим і, ймовірно, простіше підтримувати оновлення. Проблема в тому, що ви не можете запустити файл DLL безпосередньо з Windows так само, як ви можете виконувати файл. Натомість оболонка, завантажена з виконуваного файлу, використовується для розміщення цих служб DLL. І так народився процес Service Host (svchost.exe).
Чому так багато служби процесів запуску?
Якщо ви коли-небудь подивилися на розділ Служби на панелі керування, ви, напевно, помітили, що Windows вимагає великої кількості послуг. Якщо кожна служба працювала під одним процесом Host Host, помилка в одній службі може потенційно збити всі Windows. Замість цього вони відокремлені.
Служби організовані в логічні групи, які всі зв'язані, а потім створюється один екземпляр Host Host для розміщення кожної групи. Наприклад, один процес Host Host виконує три служби, пов'язані з брандмауером. Інший процес Host Host може запускати всі служби, пов'язані з інтерфейсом користувача тощо. Наприклад, на зображенні нижче видно, що один процес Host Host запускає декілька пов'язаних мережевих служб, а інший виконує служби, пов'язані з віддаленими викликами процедур.
Чи є для мене щось робити з усією цією інформацією?
Чесно, не багато. За часів Windows XP (і попередніх версій), коли комп'ютери мали набагато більше обмежених ресурсів, а операційні системи не були настільки точно налаштовані, часто рекомендували зупиняти роботу Windows на зайвих службах. Сьогодні ми більше не рекомендуємо вимикати послуги. Сучасні ПК, як правило, завантажуються пам'яттю і потужними процесорами. Додайте це до того, що способи обробки служб Windows у сучасних версіях (і які запущені служби) були спрощені, а усунення служб, які, на вашу думку, вам не потрібні, більше не мають великого впливу..
Проте, якщо ви помітили, що конкретний екземпляр Service Host або пов'язаний з ним сервіс викликає проблеми, наприклад, постійне надмірне використання CPU або RAM, ви можете перевірити конкретні служби, які задіяні. Це, принаймні, може дати вам уявлення про те, де розпочати пошук несправностей. Існує кілька способів побачити, які саме сервіси приймає конкретний екземпляр служби Host. Ви можете перевірити речі в Диспетчері завдань або скористатися чудовою програмою сторонніх виробників, яка називається Process Explorer.
Перевірте відповідні служби в диспетчері завдань
Якщо ви використовуєте Windows 8 або 10, процеси відображаються на вкладці «Процеси» диспетчера завдань по їх повним іменам. Якщо процес служить хостом для декількох служб, ці служби можна побачити, просто розширивши процес. Це дозволяє легко визначити, які послуги належать кожному екземпляру процесу Host Host.
Ви можете клацнути правою кнопкою миші на будь-якій індивідуальній послузі, щоб зупинити послугу, переглянути її в додатку Панелі керування "Послуги" або навіть знайти в Інтернеті інформацію про послугу.
Якщо ви використовуєте Windows 7, це дещо інше. Диспетчер завдань Windows 7 не групував процеси таким же чином, а також не показував регулярні імена процесів - він показував лише всі екземпляри запущеного "svchost.exe". Ви повинні були вивчити біт, щоб визначити служби, пов'язані з будь-яким конкретним екземпляром "svchost.exe".
На вкладці "Процеси" диспетчера задач у Windows 7 клацніть правою кнопкою миші на певному процесі "svchost.exe", а потім виберіть параметр "Перейти до служби"..
Це переверне вас на вкладку "Служби", де вибрано служби, що працюють під цим процесом "svchost.exe".
Потім можна побачити повне ім'я кожної служби в стовпці "Опис", щоб вимкнути службу, якщо ви не хочете, щоб вона запускалася, або виправляти неполадки, які викликають проблеми.
Перевірте пов'язані служби за допомогою Process Explorer
Microsoft також надає чудовий просунутий інструмент для роботи з процесами як частину своєї лінійки Sysinternals. Просто завантажте Process Explorer і запустіть його - це портативний додаток, тому не потрібно його встановлювати. Process Explorer надає всі види розширених функцій, і ми настійно рекомендуємо прочитати наш посібник для розуміння процесу Explorer, щоб дізнатися більше.
Для наших цілей тут, Process Explorer групує пов'язані служби під кожним екземпляром "svchost.exe". Вони перераховані за їхніми іменами, але їхні повні імена також відображаються в стовпці "Опис". Ви також можете навести вказівник миші на будь-який з процесів "svchost.exe", щоб побачити спливаюче вікно з усіма службами, пов'язаними з цим процесом, навіть ті, які не виконуються зараз.
Чи може цей процес бути вірусом?
Сам процес є офіційним компонентом Windows. Хоча можливо, що вірус замінив справжню службу хостом із власним виконуваним файлом, малоймовірно. Якщо ви хочете бути впевнені, ви можете перевірити базове розташування файлу процесу. У Диспетчері задач клацніть правою кнопкою миші на будь-якому процесі Host Host і виберіть параметр "Відкрити розташування файлу".
Якщо файл зберігається у вашій папці Windows System32, ви можете бути впевнені, що ви не маєте справу з вірусом.
Тим не менш, якщо ви все ще хочете трохи більше спокійно, ви завжди можете сканувати на наявність вірусів, використовуючи бажаний антивірусний сканер. Краще перестрахуватися, ніж потім шкодувати!