Główna » jak » Co to jest Service Host Process (svchost.exe) i dlaczego tak wiele działa?

    Co to jest Service Host Process (svchost.exe) i dlaczego tak wiele działa?

    Jeśli kiedykolwiek przeglądałeś Menedżera zadań, możesz zastanawiać się, dlaczego jest tak wiele procesów hosta usługi. Nie możesz ich zabić, a ty na pewno ich nie uruchomiłeś. Czym one są?

    Proces Host usługi służy jako powłoka do ładowania usług z plików DLL. Usługi są zorganizowane w powiązane grupy, a każda grupa jest uruchamiana w innej instancji procesu Host hosta. W ten sposób problem w jednym wystąpieniu nie ma wpływu na inne wystąpienia. Ten proces jest istotną częścią systemu Windows, której nie można uniemożliwić. 

    Ten artykuł jest częścią naszych bieżących serii wyjaśniających różne procesy znalezione w Menedżerze zadań, takie jak dwm.exe, ctfmon.exe, mDNSResponder.exe, conhost.exe, rundll32.exe, Adobe_Updater.exe i wiele innych. Nie wiesz, jakie są te usługi? Lepiej zacznij czytać!

    Więc jaki jest proces hostingu usługi?

    Oto odpowiedź, według Microsoft:

    Svchost.exe to ogólna nazwa procesu hosta dla usług uruchamianych z bibliotek dołączanych dynamicznie.

    Ale to nam nie pomaga. Jakiś czas temu Microsoft zaczął zmieniać wiele funkcji systemu Windows, opierając się na wewnętrznych usługach Windows (które uruchamiały się z plików EXE) na plikach DLL. Z perspektywy programowania sprawia, że ​​kod jest bardziej przydatny do wielokrotnego użytku i prawdopodobnie łatwiejszy w utrzymaniu. Problem polega na tym, że nie można uruchomić pliku DLL bezpośrednio z systemu Windows w taki sam sposób jak plik wykonywalny. Zamiast tego do hostowania tych usług DLL używana jest powłoka załadowana z pliku wykonywalnego. I tak powstał proces Host hosta (svchost.exe).

    Dlaczego działa wiele procesów hostowania usług??

    Jeśli kiedykolwiek zapoznałeś się z sekcją Usługi w Panelu sterowania, prawdopodobnie zauważyłeś, że system Windows wymaga wielu usług. Jeśli każda usługa była uruchamiana w ramach jednego procesu Hosta usługi, awaria jednej usługi mogła potencjalnie spowodować awarię całego systemu Windows. Zamiast tego są oddzielone.

    Usługi są zorganizowane w logiczne grupy, które są w pewnym stopniu powiązane, a następnie tworzona jest pojedyncza instancja Hosta usługi hostująca każdą grupę. Na przykład jeden proces Hosta usługi uruchamia trzy usługi związane z zaporą. Inny proces Host usługi może uruchomić wszystkie usługi związane z interfejsem użytkownika i tak dalej. Na poniższym obrazku widać, że jeden proces Hosta usługi obsługuje kilka powiązanych usług sieciowych, podczas gdy inny uruchamia usługi związane ze zdalnymi wywołaniami procedur..

    Czy jest coś do zrobienia ze wszystkimi tymi informacjami?

    Szczerze mówiąc, nie dużo. W czasach Windows XP (i poprzednich wersji), kiedy komputery miały znacznie ograniczone zasoby, a systemy operacyjne nie były tak dobrze dostrojone, często zalecano wstrzymywanie systemu Windows od uruchamiania niepotrzebnych usług. Obecnie nie zalecamy wyłączania usług. Współczesne komputery PC są zwykle wyposażone w pamięć i procesory o dużej mocy. Dodajmy do tego, że sposób obsługi usług Windows we współczesnych wersjach (i uruchamianych usługach) został usprawniony, a wyeliminowanie usług, które uważasz, że naprawdę nie potrzebujesz, nie ma już tak wielkiego wpływu.

    To powiedziawszy, jeśli zauważysz, że konkretna instancja Hosta usługi lub związana z nim usługa powoduje problemy, takie jak ciągłe nadmierne użycie procesora lub pamięci RAM, możesz sprawdzić konkretne usługi, które są w to zaangażowane. To może przynajmniej dać ci pojęcie, od czego zacząć rozwiązywanie problemów. Istnieje kilka sposobów sprawdzania, jakie dokładnie usługi są hostowane przez konkretną instancję Hosta usługi. Możesz sprawdzić rzeczy w Menedżerze zadań lub korzystając z doskonałej aplikacji innej firmy o nazwie Process Explorer.

    Sprawdź powiązane usługi w Menedżerze zadań

    Jeśli używasz systemu Windows 8 lub 10, procesy są wyświetlane na karcie "Procesy" w Menedżerze zadań według ich pełnych nazw. Jeśli proces służy jako host dla wielu usług, możesz zobaczyć te usługi, po prostu rozszerzając proces. Dzięki temu bardzo łatwo jest zidentyfikować, które usługi należą do każdej instancji procesu Hosta usługi.

    Możesz kliknąć pojedynczą usługę prawym przyciskiem myszy, aby zatrzymać usługę, wyświetlić ją w aplikacji Panel sterowania "Usługi", a nawet wyszukać online informacje o usłudze.

    Jeśli używasz systemu Windows 7, sprawy wyglądają nieco inaczej. Menedżer zadań systemu Windows 7 nie grupował procesów w ten sam sposób, ani nie wyświetlał zwykłych nazw procesów - pokazywał tylko wszystkie instancje "svchost.exe". Trzeba było trochę zbadać, aby określić usługi związane z konkretnym wystąpieniem "svchost.exe".

    Na karcie "Procesy" Menedżera zadań w systemie Windows 7 kliknij prawym przyciskiem myszy konkretny proces "svchost.exe", a następnie wybierz opcję "Przejdź do usługi".

    Spowoduje to przejście na kartę "Usługi", gdzie wszystkie usługi uruchomione w ramach tego procesu "svchost.exe" są wybrane.

    Następnie możesz zobaczyć pełną nazwę każdej usługi w kolumnie "Opis", dzięki czemu możesz wyłączyć tę usługę, jeśli nie chcesz jej obsługiwać, lub rozwiązać problem, z powodu której problemy są.

    Sprawdź podobne usługi za pomocą Eksploratora procesów

    Microsoft zapewnia również doskonałe zaawansowane narzędzie do pracy z procesami w ramach swojej linii Sysinternals. Po prostu pobierz Process Explorer i uruchom go - jest to przenośna aplikacja, więc nie trzeba jej instalować. Process Explorer oferuje wszystkie zaawansowane funkcje i zdecydowanie zalecamy przeczytanie naszego przewodnika po zrozumieniu Eksploratora procesów, aby dowiedzieć się więcej.

    Jednak dla naszych celów grupa Process Explorer grupuje usługi związane z każdą instancją "svchost.exe". Są one wyświetlane według nazw ich plików, ale ich pełne nazwy są również wyświetlane w kolumnie "Opis". Możesz także najechać wskaźnikiem myszy na dowolny z procesów "svchost.exe", aby wyświetlić wyskakujące okienko ze wszystkimi usługami powiązanymi z tym procesem - nawet te, które obecnie nie są uruchomione.

    Czy ten proces może być wirusem??

    Sam proces jest oficjalnym składnikiem systemu Windows. Chociaż możliwe jest, że wirus zastąpił prawdziwy host usługi własnym plikiem wykonywalnym, jest to bardzo mało prawdopodobne. Jeśli chcesz mieć pewność, możesz sprawdzić lokalizację pliku źródłowego procesu. W Menedżerze zadań kliknij prawym przyciskiem myszy dowolny proces Host usługi i wybierz opcję "Otwórz lokalizację pliku".

    Jeśli plik jest przechowywany w folderze Windows \ System32, możesz mieć pewność, że nie masz do czynienia z wirusem.

    To powiedziawszy, jeśli nadal chcesz trochę spokojniej, zawsze możesz skanować w poszukiwaniu wirusów za pomocą preferowanego skanera antywirusowego. Lepiej dmuchać na zimne!