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

Se hai mai sfogliato Task Manager, potresti esserti chiesto perché ci sono così tanti processi dell'host di servizio in esecuzione. Non puoi ucciderli e sicuramente non li hai avviati. Allora, cosa sono?

Il processo Service Host funge da shell per il caricamento dei servizi dai file DLL. I servizi sono organizzati in gruppi correlati e ogni 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 di cui non puoi impedire l'esecuzione. 

Questo articolo fa parte della nostra serie in corso che spiega i vari processi presenti in Task Manager, come dwm.exe, ctfmon.exe, mDNSResponder.exe, conhost.exe, rundll32.exe, Adobe_Updater.exe e molti altri. Non sai cosa sono questi servizi? Meglio iniziare a leggere!

Allora, qual è il processo host del servizio?

Ecco la risposta, secondo Microsoft:

Svchost.exe è un nome di processo host generico per i 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 dal fare affidamento sui servizi interni di Windows (che giravano da file EXE) all'utilizzo invece di file DLL. Dal punto di vista della programmazione, questo rende il codice più riutilizzabile e probabilmente più facile da mantenere aggiornato. Il problema è che non puoi avviare un file DLL direttamente da Windows nello stesso modo in cui puoi eseguire un file eseguibile. Invece, per ospitare questi servizi DLL viene utilizzata una shell caricata da un file eseguibile. E così è nato il processo Service Host (svchost.exe).

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

CORRELATO: Cos'è questo processo e perché è in esecuzione sul mio PC?

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 è stato eseguito in un unico processo host di servizio, un errore in un servizio potrebbe potenzialmente arrestare tutto Windows. Invece, sono separati.

I servizi sono organizzati in gruppi logici che sono tutti in qualche modo correlati, quindi viene creata una singola istanza di host del servizio per ospitare ogni gruppo. Ad esempio, un processo Host di servizi esegue i tre servizi relativi al firewall. Un altro processo dell'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 procedura remota.

C'è qualcosa che posso fare con tutte queste informazioni?

CORRELATO: Dovresti disabilitare i servizi di Windows per accelerare il tuo PC?

Onestamente, non molto. Ai tempi di Windows XP (e delle versioni precedenti), quando i PC avevano risorse molto più limitate ei sistemi operativi non erano così perfezionati, spesso si consigliava di impedire a Windows di eseguire servizi non necessari. In questi giorni, non consigliamo più di disabilitare i servizi. I PC moderni tendono ad essere caricati con memoria e processori ad alta potenza. Aggiungilo al fatto che il modo in cui i servizi di Windows vengono gestiti nelle versioni moderne (e quali servizi vengono eseguiti) è stato semplificato, e l'eliminazione dei servizi che ritieni non necessari non ha più un grande impatto.

Detto questo, se noti che una particolare istanza di Service Host, o un servizio correlato, sta causando problemi, come un utilizzo eccessivo della CPU o della RAM, puoi 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 utilizzando un'ottima app di terze parti denominata Process Explorer.

Controlla i servizi correlati in Task Manager

Se utilizzi Windows 8 o 10, i processi vengono visualizzati nella scheda "Processi" di Task Manager con i loro nomi completi. 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 qualsiasi singolo servizio per interrompere il servizio, visualizzarlo nell'app del pannello di controllo "Servizi" o persino cercare informazioni sul servizio online.

Se utilizzi Windows 7, le cose sono leggermente diverse. Il Task Manager di Windows 7 non raggruppava i processi allo stesso modo, né mostrava i nomi dei processi regolari: mostrava solo tutte le istanze di "svchost.exe" in esecuzione. Hai dovuto 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 pulsante destro del mouse su un particolare processo "svchost.exe", quindi scegliere l'opzione "Vai al servizio".

Questo ti farà passare alla scheda "Servizi", dove sono selezionati tutti i servizi in esecuzione sotto quel processo "svchost.exe".

È quindi possibile vedere il nome completo di ciascun servizio nella colonna "Descrizione", in modo da poter scegliere di disabilitare il servizio se non si desidera che venga eseguito o risolvere il motivo per cui si verificano problemi.

Controllare i servizi correlati utilizzando Process Explorer

Microsoft fornisce anche 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 installarla. Process Explorer fornisce tutti i tipi di funzionalità avanzate e consigliamo vivamente di leggere la nostra guida per comprendere Process Explorer per saperne di più.

CORRELATO: Che cos'è un'app "portatile" e perché è importante?

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

Questo processo potrebbe essere un virus?

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

Se il file è archiviato nella cartella Windows \ System32, puoi essere abbastanza certo di non avere a che fare con un virus.

CORRELATO: Qual è il miglior antivirus per Windows 10? (Windows Defender è abbastanza buono?)

Detto questo, se vuoi ancora un po 'più di tranquillità, puoi sempre eseguire la scansione dei virus utilizzando il tuo scanner antivirus preferito. Meglio prevenire che curare!