5Aug

Vad är processvärdsprocessen( svchost.exe) och varför går det 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 in 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.

Den här artikeln ä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 vä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ä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å var Process Host-processen( svchost.exe) född.

Varför finns det så många service värdprocesser som körs?

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änster ä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ä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ä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. Under Windows XP( och tidigare versioner), då datorerna 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 faktum att det sätt på vilket Windows-tjänster hanteras i moderna versioner( och vilka tjänster som körs) har effektiviserats, och att eliminera tjänster som du tror du inte behöver verkligen har inte mycket större inverkan längre.

Som sagt, om du märker att en viss instans av service värd 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öra om att se exakt vilka tjänster som är värd för en viss instans av Service Host. Du kan kolla på 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 bestämma tjänsterna som är relaterade till en viss förekomst av "svchost.exe".

Högerklicka på en viss "svchost.exe" -process på fliken "Processer" i Aktivitetshanteraren i Windows 7 ochVälj 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 fungera eller felsöka varför det ger dig problem.

Kontrollera relaterade tjänster med Process Explorer

Microsoft erbjuder 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.

RELATERADE ARTIKLAR
Vad är en "bärbar" app, och varför betyder det?
Förstå Process Explorer

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.

Kan den här processen vara ett virus?

Processen själv ä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 filens plats 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.

Som 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!