Script per avviare un processo se non attivo

image

Talvolta occorre trovare un workaround per gestire situazioni particolari come ad esempio quella in cui un processo debba essere avviato in una sessione utente se inattivo o se l’utente lo chiude.

Un modo può essere quello di ricorrere ad uno script tramite il comando TaskList presente in Windows XP e successivi.

Di seguito un esempio di script per avviare Notepad se non trovato tra l’elenco dei processi.

tasklist /fi “imagename eq notepad.exe” | Findstr /I “notepad
if %errorlevel% == 0 goto END
if %errorlevel% == 1 goto CREATE
:CREATE
start notepad.exe
:END

Su sistemi con sistema operativo precedente a Windows XP è possibile invece utilizzare l’utility PSList di Sysinternals che può essere eseguita anche su NT e Windows 2000.

Di seguito lo script precedente modificato per utilizzare PSList.

pslist notepad > nul
if %errorlevel% == 0 goto END
if %errorlevel% == 1 goto CREATE
:CREATE
start notepad.exe
:END

Affinché tutto funzioni correttamente occorre che PSList sia nello stessa directory dello script (o viceversa), in caso contrario specificare il path completo di PSList nello script.

Una volta creato lo script per avere un monitoraggio continuo è possibile creare una operazione pianificata che esegua lo script ogni x minuti.