38645 Letture
Come verificare i processi in esecuzione in Windows

Come verificare i processi in esecuzione in Windows

Windows dispone di un'utilità avviabile da riga di comando che consente di controllare i processi in esecuzione e controllare quali vengono effettivamente caricati dal sistema operativo.

Il Task Manager di Windows, con il rilascio di Windows 8.1 e Windows 10, è diventato uno strumento molto più utile che in passato per verificare quali programmi e, in particolare, quali processi sono in esecuzione sul sistema in uso (vedere Task Manager Windows 10: che cosa permette di fare).
Grazie al Task Manager è possibile capire immediatamente quali processi stessero affossando le prestazioni del sistema impegnando pesantemente processore, RAM, disco e scheda di rete (vedere PC lento, come stabilire i processi che causano problemi).

L'utilità gratuita chiamata Process Explorer è un "must" per verificare più nel dettaglio ciò che accade sul sistema ed è utilizzabile per sottoporre qualunque processo in esecuzione a scansione con VirusTotal (tasto destro, Check VirusTotal).
Process Explorer è uno degli "strumenti principe" per verificare che cosa accade sul sistema e procedere all'eventuale rimozione di malware in modo manuale: Rimozione virus in modo manuale, ecco come si fa.
A Process Explorer abbiamo dedicato un'intera guida mettendo in luce le principali differenze con il Task Manager di Windows: Process Explorer, un task manager all'ennesima potenza.


Gestire i processi caricati in Windows con l'utilità di sistema Tasklist

Windows integra un'utilità chiamata Tasklist capace di estrapolare l'intera lista dei processi in esecuzione e visualizzarla in formato testuale.

Per utilizzarla, basta aprire una finestra del prompt dei comandi di Windows con i diritti di amministratore (digitare cmd nella casella di ricerca di Windows e premere la combinazione di tasti CTRL+MAIUSC+INVIO) quindi scrivere semplicemente tasklist e premere Invio.
Si otterrà così la lista completa dei processi in esecuzione sul sistema in uso.
La stessa operazione può essere effettuata da una finestra di PowerShell aperta con i diritti di amministratore.

Come verificare i processi in esecuzione in Windows

Digitando quanto segue si può salvare la lista come file di testo:

tasklist > %userprofile%\processi.txt && notepad %userprofile%\processi.txt

L'elenco dei processi in esecuzione sul sistema Windows sarà in questo caso salvato nel file processi.txt, memorizzato nella cartella del profilo utente corrente, e aperto con il Blocco Note.

In corrispondenza dei processi che vengono avviati come servizi di sistema viene mostrata l'indicazione Services mentre quelli richiamati dal sistema operativo, dalle applicazioni installate o dall'utente espongono l'etichetta Console.

Il comando tasklist può essere combinato con l'utilizzo dell'opzione /fi: utilizzandola è possibile filtrare i dati restituiti estrapolando solo le informazioni necessarie. Alcuni esempi:

tasklist /fi "USERNAME eq Michele"
Questo comando restituisce tutti i processi che sono stati avviati dall'account utente chiamato Michele. Suggeriamo di tenere presente quanto indicato nell'articolo Account Windows 10: cartella Users a 5 caratteri con login Microsoft.

tasklist /fi "USERNAME eq NT AUTHORITY\SYSTEM"
Mostra i processi aperti con i diritti di sistema (SYSTEM), quelli più ampi in assoluto su un sistema Windows.

tasklist /fi "MEMUSAGE gt 4096"
Visualizza l'elenco dei processi che occupano più di 4 MB in memoria (4096 KB). Si può ovviamente modificare il valore come meglio si crede.

Per ottenere maggiori informazioni su ciascun processo, è sufficiente usare il comando seguente:

tasklist /V > %userprofile%\processi.txt && notepad %userprofile%\processi.txt

Si otterrà un file contenente anche i riferimenti allo stato di ciascun processo, l'utente che l'ha avviato, il tempo di occupazione del processore (per quanto tempo il processo ha occupato la CPU) e l'eventuale titolo della corrispondente finestra di Windows.


Scrivendo tasklist /fi "CPUTIME gt 00:02:00" si avrà l'elenco dei processi che stanno impegnano il processore da più di 2 minuti.
Il comando non indica quali processi stanno istantaneamente occupando, in percentuale, la CPU ma esprime un'informazione utile per capire per quanto tempo il processore è rimasto occupato (anche a livelli minimi).

Utilizzando il comando seguente è addirittura possibile, per ogni singolo processo, stabilire quali sono le sue dipendenze. In altre parole, si può accertare - per ciascun processo in esecuzione - quali librerie DLL vengono utilizzate:

tasklist /M > %userprofile%\processi.txt && notepad %userprofile%\processi.txt

Per cancellare rapidamente il report generato, basta digitare quanto segue:
del %userprofile%\processi.txt

La cmdlet Get-Process di PowerShell, per sapere tutto sui processi in esecuzione

Aprendo una finestra di Windows PowerShell con i diritti di amministratore e digitando get-process, il sistema operativo restituirà la lista dei processi caricati (si può anche usare la forma breve gps).


Come verificare i processi in esecuzione in Windows

Usando il comando seguente, si possono estrarre solo i processi associati a finestra aperta in Windows, a patto che essa disponga di un titolo:

gps | Where-Object {$_.mainWindowTitle} | Format-Table Id, Name, mainWindowtitle -AutoSize

Come verificare i processi in esecuzione in Windows

Quanto mostrato nella colonna Id è l'identificativo del singolo processo: in caso di necessità, infatti, si può forzare la chiusura dei vari processi in esecuzione usando il nome oppure il corrispondente identificativo: Come chiudere programma bloccato in Windows.


Con il comando seguente si può estrarre l'elenco dei processi caricati a elevata priorità (possono quindi prendere il sopravvento sugli altri contemporaneamente eseguiti):
gps | where {$_.priorityclass -eq 'AboveNormal' -OR $_.priorityclass -eq 'High'} | select name, priorityclass

Usando ad esempio gps | Where-Object WorkingSet -GT (200000*1024) si troveranno i processi che in memoria RAM stanno occupando più di 200 MB.

Suggeriamo anche la lettura dell'articolo Come rimuovere i programmi in esecuzione automatica per impedire il caricamento di file e processi all'avvio del sistema operativo.

Tra i software più utili citiamo anche TaskSchedulerView di Nirsoft, un'utilità che permette di verificare quali programmi vengono eseguiti su base programmatica attraverso la funzione Utilità di pianificazione di Windows (quindi non avviate automaticamente a ogni ingresso in Windows).
Per non perdersi tra le tante pianificazioni, suggeriamo di scegliere Options, Hide tasks in Microsoft folders.

Come verificare i processi in esecuzione in Windows