Vad är Service Host Process (svchost.exe) och varför går så många?
Om du någonsin bläddrat genom Task Manager har du kanske undrat varför det finns så många Service Host-processer som körs. Du kan inte döda dem, och du visst inte starta dem. Så, vad är de?
Servicevärdsprocessen fungerar som ett skal för att ladda tjänster från DLL-filer. Tjänsterna är organiserade i relaterade grupper och varje grupp körs i en annan instans av Tjänsten värdprocess. På så sätt påverkar ett problem i ett fall inte andra instanser. Denna process är en viktig del av Windows som du inte kan hindra från att köra.
Denna artikel är en del av vår pågående serie som förklarar olika processer som finns i Task Manager, som dwm.exe, ctfmon.exe, mDNSResponder.exe, conhost.exe, rundll32.exe, Adobe_Updater.exe och många andra. Vet inte vad de här tjänsterna är? Bättre börja läsa!
Så vad är Service Host Process?
Här är svaret, enligt Microsoft:
Svchost.exe är ett generiskt värdprocessnamn för tjänster som körs från dynamiska länksbibliotek.
Men det hjälper inte oss mycket. För en tid sedan började Microsoft byta mycket av Windows-funktionaliteten från att förlita sig på interna Windows-tjänster (som sprang från EXE-filer) till att använda DLL-filer i stället. Ur ett programmeringsperspektiv gör det här koden mer återanvändbart och utan tvekan lättare att hålla sig uppdaterad. Problemet är att du inte kan starta en DLL-fil direkt från Windows på samma sätt som en exekverbar fil. Istället används ett skal som laddas från en körbar fil för att värd för dessa DLL-tjänster. Och så fanns Service Host-processen (svchost.exe).
Varför finns det så många Service Host Processes Running?
Om du någonsin har tittat på sektionen Tjänster i Kontrollpanelen har du antagligen märkt att Windows kräver många tjänster. Om varje enskild tjänst körde under en enda värdprocess kan ett misslyckande i en tjänst eventuellt få ner alla Windows. Istället separeras de ut.
Tjänsterna är organiserade i logiska grupper som alla är något relaterade, och sedan skapas en enda Service Host-instans för att vara värd för varje grupp. Till exempel kör en Service Host-process de tre tjänster som är relaterade till brandväggen. En annan Service Host-process kan köra alla tjänster relaterade till användargränssnittet och så vidare. I bilden nedan kan du till exempel se att en Service Host-process kör flera relaterade nätverkstjänster, medan en annan kör tjänster relaterade till fjärrproceduranrop.
Finns det något för mig att göra med all denna information?
Ärligt talat, inte mycket. På dagarna i Windows XP (och tidigare versioner), då datorn hade mycket mer begränsade resurser och operativsystem inte var lika finjusterade, rekommenderades ofta att Windows stängdes av onödiga tjänster. Nuförtiden rekommenderar vi inte att inaktivera tjänster längre. Moderna datorer tenderar att laddas med minnes- och högdrivna processorer. Lägg till det för att det sätt på vilket Windows-tjänster hanteras i moderna versioner (och vilka tjänster som körs) har blivit strömlinjeformade och att eliminera tjänster du tycker du inte behöver verkligen har inte mycket mer effekt än.
Med det sagt, om du märker att en viss instans av Service Host-eller en relaterad tjänst-orsakar problem, som kontinuerlig överdriven CPU eller RAM-användning, kan du kolla in de specifika tjänsterna som är inblandade. Det kan åtminstone ge dig en uppfattning om var du ska börja felsökning. Det finns några sätt att gå på att se exakt vilka tjänster som är värd för en viss instans av Service Host. Du kan kolla upp saker inom uppgiftshanteraren eller använda en stor tredjepartsapp med namnet Process Explorer.
Kontrollera relaterade tjänster i Aktivitetshanteraren
Om du använder Windows 8 eller 10 visas processer på fliken "Processer" i Aktivitetshanteraren med deras fullständiga namn. Om en process fungerar som värd för flera tjänster, kan du se dessa tjänster genom att helt enkelt expandera processen. Detta gör det mycket enkelt att identifiera vilka tjänster som hör till varje instans av Service Host-processen.
Du kan högerklicka på en enskild tjänst för att stoppa tjänsten, visa den i appen "Tjänster" Kontrollpanel eller ens söka online för information om tjänsten.
Om du använder Windows 7 är sakerna lite annorlunda. Windows 7-arbetshanteraren grupperade inte processer på samma sätt, och det visade inte heller vanliga processnamn. Det visade bara alla instanser av "svchost.exe". Du var tvungen att utforska lite för att avgöra vilka tjänster som är relaterade till en viss förekomst av "svchost.exe".
På fliken "Processer" i Aktivitetshanteraren i Windows 7 högerklickar du på en viss "svchost.exe" -process och väljer sedan alternativet "Gå till service".
Detta kommer att flipa dig över till fliken "Tjänster", där tjänsterna som körs under den här "svchost.exe" -processen är alla valda.
Du kan sedan se hela namnet på varje tjänst i kolumnen "Beskrivning" så att du kan välja att inaktivera tjänsten om du inte vill att den ska springa eller felsöka varför det ger dig problem.
Kontrollera relaterade tjänster med Process Explorer
Microsoft tillhandahåller också ett utmärkt avancerat verktyg för att arbeta med processer som en del av sin Sysinternals-serie. Hämta bara Process Explorer och kör det-det är en bärbar app, så du behöver inte installera den. Process Explorer erbjuder alla typer av avancerade funktioner - och vi rekommenderar starkt att du läser vår guide för att förstå Process Explorer för att lära dig mer.
För våra ändamål här, men Process Explorer grupper relaterade tjänster under varje förekomst av "svchost.exe." De är listade av deras filnamn, men deras fullständiga namn visas också i kolumnen "Beskrivning". Du kan också sväva muspekaren över någon av processerna "svchost.exe" för att se en popup med alla tjänster som är relaterade till den processen - även de som inte körs för närvarande.
Kunde denna process vara ett virus?
Processen i sig är en officiell Windows-komponent. Även om det är möjligt att ett virus har ersatt den verkliga Service Host med en körbar egen, är det mycket osannolikt. Om du vill vara säker kan du kolla in den underliggande filplatsen för processen. I Aktivitetshanteraren högerklickar du på någon Service Host-process och väljer alternativet "Öppna filplats".
Om filen är lagrad i mappen Windows \ System32 kan du vara ganska säker på att du inte hanterar ett virus.
Med det sagt, om du fortfarande vill ha lite mer sinnesro, kan du alltid söka efter virus med din önskade virusskanner. Säkra före det osäkra!