Kill i processi dal prompt dei comandi

Kill i processi dal prompt dei comandi non è una prerogativa esclusivamente del sistema operativo GNU/Linux in quanto dall’avvento del Windows 7 la casa di Redmond Microsoft ha inserito questa possibilità all’interno dei propri sistemi non segnalandola sufficientemente a chi utilizza Windows soprattutto per motivi di lavoro.

Kill i processi dal prompt dei comandi, non è una tecnica molto conosciuta e non sono molti i sistemisti edotti su tale procedura, peraltro facilissima ed in quest’articolo vedremo di illustrarla e spiegarne quanto più semplicemente il funzionamento.

Kill processi, kill processi windows, processi windows

Sicuramente conoscerete tutti il modo di uccidere o terminare un processo in Windows utilizzando Task Manager, ma sicuramente non siete al corrente che tutto ciò che viene compiuto dal prompt dei comandi, agisce in maniera più profonda nel sistema operativo ed offre molto più controllo e possibilità di terminare più processi contemporaneamente.

Il comando di cui stiamo parlando è TaskKill ma prima di affrontarne l’utilizzo, dobbiamo spiegare come viene identificato un processo all’interno di un sistema operativo.

Un qualsiasi processo che gira anche in questo istante nella memoria del vostro computer può essere identificato da un numero o ID del processo (PID) o più significativamente viene spesso identificato associato da un nome mnemonico (nome file EXE o COM) ed ogni processo impegna la nostra CPU con dei cicli macchina che ne determinano la percentuale di occupazione e quindi il tempo che il microprocessore, deve passare per elaborare ciò che è stato previsto dal programmatore di quel processo con utilizzo, ovviamente, di porzioni di memoria più o meno dispendiose.

Ora che sappiamo cos’è un processo e come viene elaborato dal nostro microprocessore, possiamo aprire un prompt dei comandi di livello amministrativo ed eseguire il comando tasklist che ci proporrà a video tutti i processi amministrativi che in quest’istante stanno girando sulla nostra macchina; ovviamente per questione di comodità, possiamo anche, per chi ha Windows 10, premere il tasto Alt-R e di aprirà una finestra dentro la quale scriveremo semplicemente cmd.exe /K  premendo poi il tasto invio e si aprirà allo stesso modo il nostro prompt di comandi.

C:\>tasklist

Image Name                     PID Session Name        Mem Usage
========================= ======== ================ ============
firefox.exe                   26356 Console             139,352 K
cmd.exe                       18664 Console                 2,380 K
conhost.exe                   2528 Console                 7,852 K
notepad.exe                 17364 Console                 7,892 K
explorer.exe                  2864 Console               72,232 K

In questo esempio, noteremo come ci verrà proposto il tasklist e cioè la lista dei processi che stanno girando sulla nostra macchina.

Qualora desiderassimo provarne il funzionamento, sarà sufficiente aprire il nostro blocco note anche detto notepad ed ucciderne il processo.

C:\>Taskkill /IM notepad.exe /F

oppure

C:\>Taskkill /PID 17364 /F

Molti si domanderanno perchè ho utilizzato il flag F ed i flag IM e PID.

Il comando Taskkill ha la possibilità di non interferire con il sistema qualora ci trovassimo alla presenza di un task o processo, particolarmente ostico, per i più svariati che non siamo quì ad elencare e con l’opzione /F non abbiamo fatto altro che richiedere l’ausilio della Forza…..Force.

Per quanto riguarda i flag IM e PID, è facilmente intuibile che vanno ad identificare il tipo di processo che intendiamo killare e cioè un processo che richiamiamo con il suo PID o un processo che intendiamo richiamare per il suo Image Name o più semplicemente, per il suo nome.

Il comando Taskkill ha un’infinità di opzioni filtro, che asservono la procedura di kill per permetterci di agire nei modi più disparati, ed ora ve li elenchiamo:

variabili:

  • STATO
  • ImageName
  • PID
  • SESSIONE
  • CPUTIME
  • MEMUSAGE
  • NOME UTENTE
  • MODULI
  • SERVIZI
  • WINDOWTITLE

operatori:

  • eq (uguale)
  • ne (non uguale)
  • gt (maggiore di)
  • lt (meno di)
  • ge (maggiore o uguale)
  • le (minore o uguale)

“*” è il carattere jolly.

 

È possibile utilizzare le variabili e gli operatori con il flag di filtro / FI. Ad esempio, supponiamo di voler terminare tutti i processi che hanno un titolo finestra che inizia con “Web”:

C: \> taskkill / FI “WINDOWTITLE eq Web *” / F

Ma, se volessimo killare tutti i processi di un utente che probabilmente è rimasto appeso con una seddione RDP con l’account Pippo come potremmo fare ?

Niente di più semplice, daremo il comando:

C: \> taskkill / FI “USERNAME eq Pippo” / F

È anche possibile uccidere un processo in esecuzione su un computer remoto con taskkill eseguendo quanto segue per eliminare notepad.exe su un computer remoto chiamato PippoDesktop:

C: \> taskkill / S PippoDesktop / U RemoteAccountName / P RemoteAccountPassword / IM notepad.exe / F

Ovviamente, dovremo sostituire a RemoteAccountName il nome dell’utente remoto ed al posto di RemoteAccountPassword scrivere la password dell’utente remoto ed il notepad.exe verrà killato.

Back Microsoft