Cerchiamo di capire perche´ alcuni programmi non ne vogliono piu´ sapere di funzionare e risolviamo senza reinstallare : Process Monitor

lente Process Monitor è un tool software sviluppato da Sysinternals (ora acquisita da Microsoft) di Mark Russinovich, uno dei ‘guru’ unanimamente riconosciuti in ambito Windows. Negli scorsi anni il suo nome è balzato agli onori della cronaca per aver verificato la presenza di rootkit celati in un software mediaplayer contenuto in un CD audio Sony.

Sysinternals sviluppa anche una suite, reperibile qui, di programmi a riga di comando che rendono più agevole il compito del sistemista, visto la possibilità di inglobarli in batch o di lanciarli da prompt di DOS. Un esempio sono i comandi PSList o PSExec, che consentono rispettivamente di enumerare i processi/applicazioni attivi su di un computer remoto e di attivare una shell DOS remota.

Tornando a Process Monitor, possiamo dire che è uno strumento di monitoraggio in real time dell’attività su file system e sul registro di Windows ad interfaccia grafica che accorpa le funzionalità di due tool separati, sviluppati in precedenza, che si chiamavano Filemon e Regmon.
E’ utile per il troubleshooting di problemi legati al mancato o non corretto avvio di applicazioni Windows.

Come ci comportiamo di solito in questi casi? O meglio, come ci dovremmo comportare quando un’applicazione non va come dovrebbe andare?

Bè… La prassi corretta dovrebbe prevedere innanzitutto un’occhiata al Registro Eventi di Windows. Poi magari una capatina al sito della software house: quasi tutte sono dotate di una pagina di support, knowledgebase o FAQ che dovrebbero smarcare le problematiche più comuni. Da qui si potrebbe evincere che, attivando determinati flag, è possibile ad esempio eseguire una modalità debug che genera log più dettagliati, che è possibile spedire alla mail di support dell’azienda.

Non costa niente neanche effettuare una ricerca su Google, a patto di doversi spulciare pagine e pagine di commenti e soluzioni proposte non sempre adeguate.

Alla fine si può optare per i classici reinstallazione, che può servire a sistemare chiavi di registro mancanti, il riavvio,  fino ad arrivare, nei casi più estremi, alla formattazione e reinstallazione del sistema operativo e del software non funzionante. Come una volta mi disse un ex collega:

“Il riavvio rappresenta sempre una sconfitta per il sistemista”

Non oso pensare come potesse classificare nella sua scala di valori la reinstallazione del sistema operativo!

Di recente mi sono trovato più di qualche volta nella condizione di aver eseguito i passi sopracitati, fermandomi alla soglia della reinstallazione totale di Windows. Non ho potuto più di tanto sfruttare il supporto delle software house, perchè o si trattava di software freeware, quindi senza un reale supporto applicativo, oppure perchè quest’ultimo latitava e si trattava di applicativi sviluppati ad-hoc. Per il resto non c’erano segnalazioni di rilievo nell’Event Viewer, avevo inoltre rivoltato Internet in lungo e in largo e avevo rimosso ogni riferimento del software nel registry e nelle directory.

Vediamo quindi come Process Monitor può inserirsi nel processo di troubleshoot che ho elencato sopra.

Installazione ed Esecuzione di Process Monitor

Il programma non richiede installazione; si scarica dal sito Technet di Microsoft a questa pagina :

process_monitor_01

Una volta scompattato, lanciamo l’eseguibile ProcMon.exe, esso comincerà subito a raccogliere un’enormità di dati (events) relativi ai processi in corso sul pc/server, come si evince da quanto appare in basso a sinistra:

process_monitor_03

Per fermare/avviare il processo di raccolta dati basta cliccare sul tasto con la lente che effettua il toggle del capture

process_monitor_02

process_monitor_04

Vediamo ora come può esserci utile ProcMon:

  • avviamo ProcMon

Attenzione: ProcMon è un applicativo pesante e lanciarlo su di un server che è già sovraccarico di suo potrebbe schiantarlo del tutto!

  • lanciamo l’applicazione che ha problemi oppure arriviamo al punto in cui ci sono problemi.

Nel mio caso avevo problemi nell’uso di un programma di nome RoyalTS (una sorta di multi remote-desktop): partiva correttamente, ma, una volta che provavo a lanciare una connessione RDP compariva il seguente errore criptico:

process_monitor_05

  • stoppiamo quindi il capture come spiegato sopra, premendo sulla lente di ingrandimento.

Interpretazione e Scrematura dei dati

Il difficile viene adesso: dalla montagna di dati raccolti (possono anche essere centinaia di migliaia) bisogna capire cosa non è andato per il verso giusto. Bisogna estrapolare quindi gli eventi relativi alla mancata o non corretta esecuzione dell’applicazione.

  • includiamo solo il processo/applicazione che manifesta problemi. Tipicamente si troverà verso il fondo del capture, visto che di default ProcMon prevede un ordinamento cronologico; bisognerà quindi fare tasto Dx -> Include <nome-del-processo>, comprensivo di estensione (nel mio caso specifico era  RTSapp.exe):

process_monitor_06

In questo modo verranno visualizzati solo gli eventi relativi al processo incluso.

  • escludiamo ora gli eventi di SUCCESS, ovvero quelli andati a buon fine: vogliamo difatti verificare tutti gli eventi dell’applicazione che non sono andati a buon fine, quindi fare tasto Dx -> Exclude ‘SUCCESS’:

process_monitor_07

Saranno visualizzati solo gli eventi che hanno dato un esito non positivo.

Un result di tipo ‘NAME NOT FOUND’ indica che il programma in questione non trova un file o un valore di registro.

Di seguito i result su cui porre attenzione:

Result Significato
NAME NOT FOUND File o Valore Registro mancanti
PATH NOT FOUND Cartella o Chiave Registro mancanti
ACCESS DENIED Permessi insufficienti su File System o Registry
  • visualizziamo solo eventi Registro o File System. Se abbiamo il sentore che il problema sia relativo ad un componente mancante (file oppure chiave registro), possiamo includere solo il filtro relativo, facendo il toggle sul pulsante relativo:

process_monitor_08

In questo caso ho disattivato la visualizzazione degli eventi registro (Show Registry Activity).

Può capitare che la segnalazione di un applicativo sia relativa ad un file mancante. Il percorso del file potrebbe essere però inserito in una chiave di registry, quindi è consigliabile non disattivare la visualizzazione del registry.

In questo esempio, Procmon mi sta dicendo che manca il seguente file nella cartella indicata:

process_monitor_09

Ecco il problema!

Una volta verificato l’assenza del file in quella cartella e la presenza dello stesso in una sottocartella di RoyalTS, non ho fatto altro che copiarlo e …BUM! RoyalTS ha ripreso a funzionare correttamente senza doverlo reinstallare!

  • nel caso in cui volessimo ripristinare l’elenco completo degli eventi è sufficiente cliccare sul pulsante di filter e poi su quello di Reset:

process_monitor_10

Conclusione

Dopo questa prima esperienza mi è capitato altre due volte di dover utilizzare Process Monitor e in entrambi i casi esso è stato estremamente utile nell’individuare una mancanza di una o più chiavi di registro o nel segnalare permessi insufficienti su alcune cartelle come cause di un malfunzionamento.

D’ora in avanti, quindi, mai più senza Process Monitor!

Se questo articolo ti è piaciuto, condividilo su un social:
Se l'articolo ti è piaciuto o ti è stato utile, potresti dedicare un minuto a leggere questa pagina, dove ho elencato alcune cose che potrebbero farmi contento? Grazie :)