Vad är servicevärdprocessen (svchost.exe) och varför kör så många?

Om du någonsin har bläddrat i Aktivitetshanteraren kanske du har undrat varför det finns så många Service Host-processer som körs. Du kan inte döda dem och du startade dem verkligen inte. Så, vad är de?

Service Host-processen 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 Service Host Process. På så sätt påverkar ett problem i en instans inte andra instanser. Denna process är en viktig del av Windows som du inte kan förhindra från att köra. 

Den här artikeln är en del av vår pågående serie som förklarar olika processer som finns i Aktivitetshanteraren, som dwm.exe, ctfmon.exe, mDNSResponder.exe, conhost.exe, rundll32.exe, Adobe_Updater.exe och många andra. Vet du inte vad dessa tjänster är? Bättre börja läsa!

Så vad är servicevärdprocessen?

Här är svaret, enligt Microsoft:

Svchost.exe är ett generiskt värdprocessnamn för tjänster som körs från dynamiska länkbibliotek.

Men det hjälper oss inte riktigt mycket. För en tid sedan började Microsoft ändra 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 istället. Ur ett programmeringsperspektiv gör detta koden mer återanvändbar 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 körbar fil. Istället används ett skal som laddas från en körbar fil för att vara värd för dessa DLL-tjänster. Och så föddes Service Host-processen (svchost.exe).

Varför körs så många servicevärdprocesser?

RELATERAD: Vad är den här processen och varför körs den på min dator?

Om du någonsin har tittat på avsnittet Tjänster i Kontrollpanelen har du förmodligen märkt att Windows kräver många tjänster. Om varje enskild tjänst körs under en Service Host-process kan ett fel i en tjänst potentiellt få ner hela Windows. Istället skiljs de ut.

Tjänster är organiserade i logiska grupper som alla är något relaterade och sedan skapas en enda instans av tjänstvärd för att vara värd för varje grupp. Till exempel kör en Service Host-process de tre tjänsterna 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ättjänster, medan en annan kör tjänster relaterade till fjärrprocedursamtal.

Finns det något för mig att göra med all denna information?

RELATERAT: Ska du inaktivera Windows-tjänster för att påskynda din dator?

Ärligt talat, inte mycket. Under Windows XP (och tidigare versioner), när datorer hade mycket mer begränsade resurser och operativsystem inte var lika finjusterade, rekommenderades ofta att hindra Windows från att köra onödiga tjänster. Dessa dagar rekommenderar vi inte att inaktivera tjänster längre. Moderna datorer tenderar att laddas med minne och kraftfulla processorer. Lägg till det i det faktum att hur Windows-tjänster hanteras i moderna versioner (och vilka tjänster som körs) har effektiviserats, och att eliminera tjänster som du tror att du inte behöver verkligen inte har någon större inverkan längre.

Med detta 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änster som är inblandade. Det kan åtminstone ge dig en uppfattning om var du ska börja felsöka. Det finns några sätt att se exakt vilka tjänster som är värd för en viss instans av Service Host. Du kan kolla in saker i Aktivitetshanteraren eller använda en fantastisk app från tredje part som heter 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 tillhör varje instans av Service Host-processen.

Du kan högerklicka på en enskild tjänst för att stoppa tjänsten, visa den i "Tjänster" -appen på kontrollpanelen eller till och med söka online för information om tjänsten.

Om du använder Windows 7 är saker lite annorlunda. Windows 7 Aktivitetshanterare grupperade inte processer på samma sätt och visade inte heller vanliga processnamn - det visade bara alla förekomster av att "svchost.exe" kördes. Du var tvungen att utforska lite för att avgöra vilka tjänster som är relaterade till en viss instans 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 tjänst".

Detta kommer att flytta dig över till fliken "Tjänster", där alla tjänster som körs under den "svchost.exe" -processen är valda.

Du kan sedan se det fullständiga 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 köras eller felsöka varför den ger dig problem.

Kontrollera relaterade tjänster med hjälp av Process Explorer

Microsoft erbjuder också ett utmärkt avancerat verktyg för att arbeta med processer som en del av Sysinternals-sortimentet. Ladda bara ner Process Explorer och kör den - 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.

RELATERAD: Vad är en "bärbar" app och varför betyder det?

För våra ändamål här grupperar dock Process Explorer relaterade tjänster under varje instans av "svchost.exe." De listas efter deras filnamn, men deras fullständiga namn visas också i kolumnen "Beskrivning". Du kan också hålla muspekaren över någon av "svchost.exe" -processerna för att se en popup med alla tjänster relaterade till den processen - även de som inte körs för närvarande.

Kan denna process vara ett virus?

Själva processen är en officiell Windows-komponent. Även om det är möjligt att ett virus har ersatt den riktiga Service Host med en egen körbar, är det mycket osannolikt. Om du vill vara säker kan du kolla processens underliggande filplats. I Aktivitetshanteraren högerklickar du på en tjänstvärdsprocess och väljer alternativet "Öppna filplats".

Om filen är lagrad i din Windows \ System32-mapp kan du vara ganska säker på att du inte har att göra med ett virus.

RELATERAD: Vad är det bästa antivirusprogrammet för Windows 10? (Är Windows Defender tillräckligt bra?)

Med det sagt, om du fortfarande vill ha lite mer sinnesro kan du alltid söka efter virus med din föredragna virusscanner. Säkra före det osäkra!