Hvad er svchost.exe og hvorfor så mange tilfælde

professor green

Bronze Level Poster
Åbn Opgavehåndtering, og klik på fanen Detaljer. Klik på kolonnen Navn for at sortere efter navn, og rul derefter ned for at finde en proces kaldet svchost.exe. Hvor mange svchost.exe-processer har du? Jeg har 75 løbende på mit Windows 10-system i øjeblikket.

Hvad er svchost.exe? Hvad gør svchost.exe? Hvorfor er der så mange tilfælde af svchost.exe?

Svchost.exe er en proces, der ofte er et komplet mysterium for mange brugere, og med god grund. I task manager højreklik på en af dine svchost.exe processer og se om du kan se nogen forskel overhovedet mellem disse forekomster. Det kan du ikke. De ser alle ud til at køre nøjagtigt det samme program (svchost.exe), selv om de alle har forskellige arbejdssætstørrelser og sandsynligvis anderledes CPU-brug. Det er det faktum, at Windows ikke har nogen værktøjer til at lade dig forhøre svchost.exe, og det faktum at du har snesevis af tilfælde, der gør formålet med svchost.exe sådan et mysterium.

Service Host Process



Svchost.exe er Service Host Processen, og hvert af disse tre ord har betydning. For det første er det en proces, hvilket betyder, at det er en komplet arbejdsgruppe i Windows med sit eget virtuelle adresserum, egne filer og egne tråde. For det andet er det en værtsproces, som betyder at den kører for at tillade noget andet (som ikke kan løbe i sin egen proces) for at løbe inde i det. For det tredje er det en servicehost-proces, som betyder, at hvad der kører inde i det, er en Windows-tjeneste, der ikke kan køre i sin egen proces.



Tjenesteydelser løber for at give, godt ... tjenester, specialfunktioner og faciliteter, til andre processer. I Linux / Unix kaldes de daemoner. Du kan se alle tjenesterne på dit Windows-system (og om de aktuelt kører eller ej) ved at indtaste kommandoen 'services.msc' i feltet Kør.



Du kan se fra vinduet Services, at der er mange tjenester, kolonnen Status viser, at ikke alle af dem kører. Det er helt normalt, mange tjenester er designet til bestemte miljøer og vil ikke løbe, hvis dit system ikke er en af disse. Nogle tjenester kan stoppes manuelt (selv deaktiveret), men det er ikke omfattet af dette dokument. De fleste af disse tjenester kører i en instans af svchost.exe-processen.



I versioner af Windows forud for Windows 10 1703 (Creator Update) var hver svchost.exe-proces vært vært for flere tjenester, fra 1703 og fremover (og hvis du har mere end 4 GB RAM installeret), behandler de fleste svchost.exe værten kun en enkelt tjeneste. Dette er for at forhindre et problem i en tjeneste, der påvirker andre, og det er derfor i Windows 10 1703 du så en eksplosion i antallet af svchost.exe-processer.



Hvorfor bruge svchost.exe?
 

professor green

Bronze Level Poster
Eksekverbar programkode findes i to typer af filer, der kan identificeres ved deres suffiks; .exe og .dll. En eksekverbar fil (.exe) er et selvstændigt program og kan indlæses og køre af sig selv. Når du starter en eksekverbar fil, opretter Windows en processtruktur for at holde den. Et velkendt eksempel er notepad.exe (det er i C: \ Windows \ System32), du kan dobbeltklikke notepad.exe og den kører, når du kigger i Opgavehåndtering på fanen Detaljer er der en ny proces (kaldet notepad.exe ) oprettet til det.



En dynamisk link bibliotek fil (.dll) er programkode, der ikke er direkte eksekverbar, det skyldes, at det har programopkald inden for koden, der refererer til andre dll'er, der skal indlæses så godt, at dll'en kan køre. Oprettelse af programkode som dll'er gør det meget mere transportabelt og meget hurtigere at skrive, og det betyder, at et komplet selvstændigt program ikke skal oprettes, kun den funktionelle kode skal inkluderes i dll'en, og eksterne opkald kan laves til andre (eksisterende) dlls at medtage deres kode dynamisk. Funktionalitet er således tilvejebragt af mange dll'er, der samarbejder i en proces. De fleste tjenester i Windows i dag oprettes som dlls.



Problemet med en dll er, at fordi det ikke er et fuldt udførbart program, kan Windows ikke skabe en proces til det, og uden en processtruktur kan den ikke køre. Det er her, hvor svchost.exe kommer ind. Du vil bemærke, at svchost.exe er en eksekverbar, Windows vil oprette en proces til den, når den er startet. Svchost.exe læser derefter dynamisk de dll (er), der er nødvendige for at understøtte, hvad service skal køres og værdsætter disse dll'er inden for svchost.exe-processen. Windows har nu en proces (som hedder svchost.exe, fordi det er den eksekverbare, der startede det), og de dll'er, der understøtter den nødvendige service, har en proces, inden i hvilken de kan køre.



Rul ned til svchost.exe-processerne, hvis du svæver markøren over hver forekomst af svchost.exe, vises en fly-out-boks, der viser dig, hvilke tjenester der er vært inden for det pågældende tilfælde. Hvis du dobbeltklikker på en forekomst af svchost.exe, åbnes en dialogboks med et stort antal faner. Klik på fanen Tjenester, hvis den ikke allerede er valgt, her kan du se navnet på den eller de tjenester, der er vært, og placeringen af de dll (er), der indeholder hovedtjenesteprogramkoden (de fleste er i C: \ Windows \ System32).



Svchost.exe er således en essentail Windows-komponent, der bruges til at hoste tjenester, der kører som dll'er, som den korrekte drift af dit system afhænger af. Du har ingen kontrol over, hvornår en svhost.exe-instans er startet, eller hvad der kører derinde. Alt du kan gøre, er at aktivere eller deaktivere tjenesterne selv via services.msc. Hvis du deaktiverer en tjeneste, lukkes den forekomst af svhost.exe, hvis den kun kørte den ene tjeneste (som det sandsynligvis er i Windows 10 1703 og senere).



--



Hvad med Dllhost.exe?



Du kan muligvis se nogle få tilfælde af dllhost.exe, der kører i task manager også. Disse er også værtsprocesser for funktioner, der kun eksisterer som dll'er. En fælles brug er som 'COM Surrogates'. Komponentobjektmodellen (COM) er i grunden en kommunikationsmekanisme mellem processerne, der gør det muligt at anvende objekter i processer, der ikke er skabt til dem og uden at kende den interne struktur af disse objekter. COM-objekter eksisterer også kun som dll'er og kræver derfor en hostproces for at køre dem, da de ikke er Windows-tjenester svchost.exe er ikke hensigtsmæssigt, så en lignende hostingproces kaldet dllhost.exe bruges til at være vært for dem i stedet.





--
 
Top