Qual è il processo host di servizio (svchost.exe) e perché sono così tanti in esecuzione?
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 del servizio funge da shell per il caricamento dei 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 so quali siano questi servizi? Meglio iniziare a leggere!
Quindi, qual è il processo dell'host di servizio?
Ecco la risposta, secondo Microsoft:
Svchost.exe è un nome di processo host generico per servizi eseguiti da librerie a collegamento dinamico.
Ma questo non ci aiuta molto. Qualche tempo fa, Microsoft ha iniziato a modificare gran parte delle funzionalità di Windows basandosi 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 del 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 servizio esegue diversi servizi di rete correlati, mentre un altro esegue servizi relativi a chiamate di procedure remote.
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 altrettanto ottimizzati, spesso veniva consigliato 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 che il modo in cui i servizi Windows vengono gestiti nelle versioni moderne (e quali servizi sono in esecuzione) è stato ottimizzato, e l'eliminazione dei servizi che pensate non avete davvero bisogno 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. Puoi controllare le cose all'interno di Task Manager o utilizzare 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 in linea informazioni relative al 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".
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", dove sono selezionati tutti i servizi in esecuzione con quel 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 vuoi eseguire o risolvere i problemi che ti causano problemi.
Controlla i servizi correlati utilizzando Process Explorer
Microsoft fornisce inoltre un eccellente strumento avanzato 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 nomi dei file, ma i loro nomi completi sono anche visualizzati 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.
Potrebbe questo processo 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".
Se il file è memorizzato nella cartella Windows \ System32, puoi essere abbastanza sicuro di non avere a che fare con un virus.
Detto questo, se vuoi ancora un po 'più di tranquillità, puoi sempre cercare virus utilizzando il tuo antivirus preferito. Meglio prevenire che curare!