Qual è il processo host di servizio (svchost.exe) e perché sono così tanti in esecuzione?

Sommario:

Qual è il processo host di servizio (svchost.exe) e perché sono così tanti in esecuzione?
Qual è il processo host di servizio (svchost.exe) e perché sono così tanti in esecuzione?

Video: Qual è il processo host di servizio (svchost.exe) e perché sono così tanti in esecuzione?

Video: Qual è il processo host di servizio (svchost.exe) e perché sono così tanti in esecuzione?
Video: Migliori 5 Programmi per Registrare lo Schermo del PC GRATIS - Windows e Mac - YouTube 2024, Aprile
Anonim
Se hai mai sfogliato Task Manager, potresti esserti chiesto perché ci siano così tanti processi di Service Host in esecuzione. Non puoi ucciderli e sicuramente non li hai avviati. Quindi, cosa sono?
Se hai mai sfogliato Task Manager, potresti esserti chiesto perché ci siano così tanti processi di Service Host in esecuzione. Non puoi ucciderli e sicuramente non li hai avviati. Quindi, cosa sono?

Il processo Host di servizio funge da shell per il caricamento di servizi da file DLL. I servizi sono organizzati in gruppi correlati e ciascun gruppo viene eseguito all'interno di un'istanza diversa del processo host del servizio. In questo modo, un problema in un'istanza non influisce su altre istanze. Questo processo è una parte vitale di Windows che non puoi impedire di eseguire.

Questo articolo fa parte delle nostre serie in corso che illustrano vari processi trovati in Task Manager, come dwm.exe, ctfmon.exe, mDNSResponder.exe, conhost.exe, rundll32.exe, Adobe_Updater.exe e molti altri. Non sai quali sono questi servizi? Meglio iniziare a leggere!

Allora, qual è il processo dell'host di servizio?

Ecco la risposta, secondo Microsoft:

Svchost.exe is a generic host process name for services that run from dynamic-link libraries.

Ma questo non ci aiuta molto. Qualche tempo fa, Microsoft ha iniziato a modificare gran parte delle funzionalità di Windows, basandosi invece sui servizi interni di Windows (che venivano eseguiti da file EXE) sull'utilizzo di file DLL. Dal punto di vista della programmazione, questo rende il codice più riutilizzabile e probabilmente più facile da tenere aggiornato. Il problema è che non è possibile avviare un file DLL direttamente da Windows nello stesso modo in cui è possibile eseguire un file eseguibile. Invece, una shell che viene caricata da un file eseguibile viene utilizzata per ospitare questi servizi DLL. E così è nato il processo di Service Host (svchost.exe).

Perché ci sono così tanti processi host di servizio in esecuzione?

Se hai mai dato un'occhiata alla sezione Servizi nel Pannello di controllo, probabilmente avrai notato che Windows richiede molti servizi. Se ogni singolo servizio veniva eseguito in un processo di Service Host, un errore in un servizio poteva potenzialmente far cadere tutto Windows. Invece, sono separati.

I servizi sono organizzati in gruppi logici tutti in qualche modo correlati e quindi viene creata una singola istanza Host di servizio per ospitare ciascun gruppo. Ad esempio, un processo Host del servizio esegue i tre servizi relativi al firewall. Un altro processo Host del servizio potrebbe eseguire tutti i servizi relativi all'interfaccia utente e così via. Nell'immagine seguente, ad esempio, è possibile vedere che un processo Host di servizi esegue diversi servizi di rete correlati, mentre un altro esegue servizi relativi a chiamate di procedure remote.

Image
Image

C'è qualcosa per me da fare con tutte queste informazioni?

Onestamente, non molto. Ai tempi di Windows XP (e delle versioni precedenti), quando i PC disponevano di risorse molto più limitate e i sistemi operativi non erano perfettamente calibrati, spesso si consigliava di impedire a Windows di eseguire servizi non necessari. Al giorno d'oggi, non consigliamo più di disabilitare i servizi. I PC moderni tendono ad essere caricati con memoria e processori ad alta potenza. Aggiungete questo al fatto che il modo in cui i servizi Windows vengono gestiti nelle versioni moderne (e quali servizi vengono eseguiti) è stato ottimizzato, e l'eliminazione dei servizi che pensate di non aver bisogno in realtà non ha più molto impatto.

Detto questo, se si nota che una particolare istanza di Service Host o di un servizio correlato sta causando problemi, come l'utilizzo eccessivo della CPU o della RAM, è possibile verificare i servizi specifici coinvolti. Questo potrebbe almeno darti un'idea di dove iniziare la risoluzione dei problemi. Ci sono alcuni modi per vedere esattamente quali servizi sono ospitati da una particolare istanza di Service Host. È possibile controllare le cose all'interno di Task Manager o utilizzando una grande app di terze parti chiamata Process Explorer.

Controlla i servizi correlati in Task Manager

Se si utilizza Windows 8 o 10, i processi vengono visualizzati nella scheda "Processi" di Task Manager con il loro nome completo. Se un processo funge da host per più servizi, è possibile visualizzare tali servizi semplicemente espandendo il processo. Ciò semplifica l'identificazione dei servizi che appartengono a ciascuna istanza del processo Host del servizio.

È possibile fare clic con il pulsante destro del mouse su un singolo servizio per interrompere il servizio, visualizzarlo nell'app Pannello di controllo "Servizi" o anche cercare online informazioni sul servizio.
È possibile fare clic con il pulsante destro del mouse su un singolo servizio per interrompere il servizio, visualizzarlo nell'app Pannello di controllo "Servizi" o anche cercare online informazioni sul servizio.
Se stai usando Windows 7, le cose sono un po 'diverse. Il Task Manager di Windows 7 non ha raggruppato i processi allo stesso modo, né ha mostrato nomi di processi regolari: mostrava solo tutte le istanze di "svchost.exe" in esecuzione. Dovevi esplorare un po 'per determinare i servizi relativi a una particolare istanza di "svchost.exe".
Se stai usando Windows 7, le cose sono un po 'diverse. Il Task Manager di Windows 7 non ha raggruppato i processi allo stesso modo, né ha mostrato nomi di processi regolari: mostrava solo tutte le istanze di "svchost.exe" in esecuzione. Dovevi esplorare un po 'per determinare i servizi relativi a una particolare istanza di "svchost.exe".

Nella scheda "Processi" di Task Manager in Windows 7, fare clic con il tasto destro del mouse su un particolare processo "svchost.exe", quindi selezionare l'opzione "Vai al servizio".

Questo ti porterà alla scheda "Servizi", in cui sono selezionati i servizi in esecuzione in tale processo "svchost.exe".
Questo ti porterà alla scheda "Servizi", in cui sono selezionati i servizi in esecuzione in tale processo "svchost.exe".
Puoi quindi visualizzare il nome completo di ciascun servizio nella colonna "Descrizione", in modo che tu possa scegliere di disabilitare il servizio se non lo desideri o di risolvere il motivo per cui ti dà problemi.
Puoi quindi visualizzare il nome completo di ciascun servizio nella colonna "Descrizione", in modo che tu possa scegliere di disabilitare il servizio se non lo desideri o di risolvere il motivo per cui ti dà problemi.

Controlla i servizi correlati utilizzando Process Explorer

Microsoft fornisce inoltre uno strumento avanzato eccellente per lavorare con i processi come parte della sua linea Sysinternals. Basta scaricare Process Explorer ed eseguirlo: è un'app portatile, quindi non è necessario installarlo.Process Explorer offre tutti i tipi di funzionalità avanzate e consigliamo vivamente di leggere la nostra guida per comprendere Process Explorer per saperne di più.

Per i nostri scopi, tuttavia, Process Explorer raggruppa i servizi correlati sotto ogni istanza di "svchost.exe". Sono elencati in base ai loro nomi di file, ma i loro nomi completi sono anche mostrati nella colonna "Descrizione". Puoi anche posizionare il puntatore del mouse su uno dei processi "svchost.exe" per visualizzare un popup con tutti i servizi relativi a quel processo, anche quelli che non sono attualmente in esecuzione.

Image
Image

Questo processo potrebbe essere un virus?

Il processo stesso è un componente Windows ufficiale. Mentre è possibile che un virus abbia sostituito il vero host di servizio con un suo eseguibile, è molto improbabile. Se vuoi essere sicuro, puoi controllare il percorso del file sottostante del processo. In Task Manager, fare clic con il tasto destro del mouse su qualsiasi processo di Host di servizio e scegliere l'opzione "Apri posizione file".

Consigliato: