PsTools.

Di Adriano Barbieri.

Come si evince dal nome, questo non  un software unico, ma una serie di applicazioni . Infatti, traducendo dall'inglese, tools significa appunto strumenti. Inoltre, cosa da non trascurare, sono applicativi stand alone, cio che non si installano, consentendoci di fare molte cose come vedremo di seguito.

Il pacchetto PS Tools, questa  la sua definizione precisa, prodotto dalla Sysinternals, contiene una serie di utility freeware, di una grandezza totale di circa 1mb. Gira su Sistema Operativo Windows nelle versioni 2000 e XP.

Lo si pu prelevare da: http://download.sysinternals.com/Files/PsTools.zip, ma  stato aggiunto anche ai software del mese che sono stati inseriti nella versione del giornale su cd.

Oltre a importanti funzionalit uniche di alcuni dei suoi software, la differenza principale rispetto a programmi simili a quelli contenuti nel pacchetto, consiste nel fatto che queste applicazioni possono essere utilizzate sia in modalit locale, sia in modalit remota, purch i sistemi remoti siano configurati correttamente.

L'archivio contiene diversi software costituiti da un unico file eseguibile, non esiste alcun bisogno di installazione, ma si devono soltanto usare le applicazioni. Ogni utilit  progettata per eseguire un'attivit specifica e lo fa in modo semplice. Ognuno di questi programmi accetta parametri da linea di comando.

Per poterli usare da riga di comando esegui, che si apre da menu avvio, esegui ed invio, oppure da finestra DOS di Windows XP e Windows 2000, bisogna copiare tutti i file eseguibili in una cartella del path di sistema, per esempio, la cartella di Windows. Per ottenere le informazioni delle opzioni usabili da ciascuna utility, digitare il suo nome seguito da uno spazio, un trattino, un punto di domanda e confermando con invio.

Per esempio, se vogliamo ottenere le opzioni che si possono usare per il programma PSKill, digiteremo:

PSKill ``-?`` e confermiamo con invio.

PsTools  una suite crescente, e vengono aggiunte sempre nuove utility al pacchetto, quindi non mi dilungher a descriverle tutte, perch, oltre a non essere necessario per la loro intuitivit, non ci occorrono tutte. Di seguito, vedremo quelle che ci potranno interessare pi da vicino, con la relativa sintassi di utilizzo.

Elencher alcune di esse, aggiungendo qualche dettaglio, perch ci pu facilmente venire utile usarle.

Infatti, a chi non  capitato qualche volta di assistere al blocco di un'applicazione e a non riuscire in alcun modo a terminarla dal Task Manager, con il risultato di aver dovuto riavviare il sistema per poter usare il computer. PSTools contiene un utilissimo comando, PSKill, che in molti casi  in grado di terminare anche un processo "impazzito" diventato resistente all'End Process del Task Manager.

Altra cosa importantissima, PSKill  in grado di terminare processi che girano su altre macchine della rete di cui si fa parte, a condizione di disporre dei necessari permessi.

Ecco quali sono le utility pi importanti del pacchetto:

- PSList: elenca i processi in esecuzione su macchina locale o remota.

- PSFile: rivela quali file risultano aperti da remoto.

- PSService: fornisce una completa lista dei servizi in esecuzione, anche se sono solo configurati sulla macchina.

- PSExec: permette di trasferire e mandare in esecuzione un processo su un altro PC della rete, con tanto di parametri, livello di priorit e utente di riferimento.

- PSInfo:  in grado di compilare un report con le caratteristiche salienti del sistema su cui viene fatto girare.

Vediamo di seguito qualche indicazione supplementare.

PsKill
_______

PsKill  un'utilit importante per interrompere i processi sia su un sistema locale che su un sistema remoto. L'uso  molto semplice e consente di eliminare rapidamente un processo con tutti relativi figli. Ecco la descrizione del comando:

``PsKill -t \\computer -u username -p password process id | process name``

Notare che  possibile specificare l'ID del processo o il nome del processo che si desidera terminare.

PsKill ad esempio lo uso per killare NVDA quando malauguratamente si verifica un suo crash, ma lo si pu usare per qualsiasi software. E' bastato creare un collegamento a PsKill.exe sul Desktop, poi, dalle propriet che si aprono con alt pi invio, ho aggiunto alla riga di comando uno spazio e nvda.exe. Infine, ho aggiunto un tasto caldo "control pi alt pi M", ho dato invio sul pulsante applica e poi sul pulsante OK.

PsInfo
_______

Viene utilizzato per fornire informazioni di sistema dettagliate. Si noti che questa utilit agisce sfruttando un concetto importante che  diverso dalla maggior parte degli altri strumenti. Infatti, se non viene fornito il nome di un computer, PsInfo, per impostazione predefinita, tenta di eseguire delle query su tutti i computer nel dominio. Di seguito viene indicato l'utilizzo di PsInfo:

``PsInfo computer -u username -p password.``

Nota bene:

Quando si eseguono tali comandi,  opportuno reindirizzare l'output su un file di testo in modo da poterlo esaminare con calma. Ecco un piccolo file batch che serve allo scopo:

1. Aprire il blocco note.

2. Presumendo di avere copiato psInfo.exe in ``C:\Programmi\PsTools``, scrivere come segue:

``@echo off``

``C:\programmi\PSTools\psinfo.exe >info.log``

info.log

del info.log

3. Salvare con estensione .bat, o .cmd ed eseguirlo.

4. dopo una breve scansione del sistema, si apre il file info.log e si potranno leggere i dati del nostro computer.

5. con l'ultimo comando, del info.log, viene cancellato il file info.log, quindi, se non si vuole cancellare il file, non bisogna scrivere l'ultima riga "del info.log".

PsFile
_______

PsFile  una utility che permette di visualizzare una lista di file nel sistema che sono stati aperti da remoto, e se necessario consente di chiuderli specificandone il nome oppure tramite l'identificatore del file associato.

Se non viene specificato il computer, per default PsFile visualizza una lista dei file aperti in remoto del sistema in uso locale. Di seguito viene indicato l'utilizzo di PsFile:

``PsFile \\computer -u username -p password``

Restituisce semplicemente un elenco di handle di file aperti nel sistema remoto. Oltre all'uso standard,  anche possibile aggiungere all'argomento un parametro ID, specificando il nome del file di cui si richiedono informazioni o che si desidera chiudere.  anche possibile aggiungere l'opzione -c che chiude il file identificato col parametro ID.

PsList
_______

La maggior parte dei sistemi operativi UNIX tramite un tool a linea di comando denominato " ps" (o qualche cosa di equivalente) permettono all'amministratore di osservare informazioni dettagliate circa la CPU di processo e l'uso di memoria.

Windows NT e 2000 vengono forniti di un tool interno dedicato allo scopo. Questi tools a corredo, pstat, e pmon, mostrano i differenti tipi di informazioni sulle risorse visualizzandone i dati per quanto riguarda soltanto i processi sul sistema su cui state lavorando.

PsList  in grado di offrire una combinazione delle stesse informazioni ottenibili individualmente con pmon e pstat. Potrete osservare le informazioni trattate sulla memoria e della CPU, o stilare le statistiche. PsList  di fatto un elenco in remoto di uno o pi processi in esecuzione su un sistema remoto.  uno strumento potente ma facile da utilizzare, senza utilizzare il desktop remoto, consente di visualizzare in dettaglio i processi remoti. Con queste informazioni  possibile passare a PsKill o PsSuspend se, ad esempio,  necessario ricontrollare un processo.

L'uso di PsList  semplice:

``PsList \\computer -u username -p password account``

Come con gli altri strumenti, il parametro di account pu specificare un utente, un computer o un gruppo.

PsLoggedOn
___________

Il presupposto di PsLoggedOn  autoesplicativo. L'utilit visualizza gli utenti registrati in un sistema sia che si tratti di accessi locali (interattivi) o accessi alla condivisione di rete. Come per PsFile, questa funzionalit pu essere utile per stabilire chi sta utilizzando un server su cui  necessario eseguire operazioni di manutenzione.

L'uso  molto semplice:

``PsLoggedOn \\computer``

PsLoggedOn dispone soltanto di due parametri facoltativi:

- ``-l,`` mostra soltanto gli accessi locali e non gli accessi di rete.

- ``-x,`` esclude l'orario di accesso.

Attenzione al trattino prima della lettera.

Bench sia uno strumento molto semplice, PsLoggedOn consente di visualizzare facilmente le informazioni che generalmente vengono ricercate in diverse posizioni di Windows.

PsExec
_______

L'utilizzo pi comune di PsExec consiste nell'esecuzione in modalit remota, ad esempio l'esecuzione di un'utilit che non fornisce un framework remoto, di script o di automazione. Tra le funzionalit principali di PsExec, la capacit di copiare sui sistemi remoti un file binario da eseguire, oltre alla capacit di stabilire l'affinit tra processori. Un'altra funzionalit utile di PsExec consiste nel codificarlo simultaneamente su molte macchine fornendo un file di script.

Di seguito una descrizione dell'uso semplificato di PsExec:

``Psexec \\computer -u username -p password command``

Con PSExec si possono avviare processi sul server remoto, copiare file ed eseguirli sul server remoto con un unico switch da riga di comando, oppure, ottenere una shell DOS remota, come se fosse una sessione telnet, con il semplice comando:

``psexec \\server_remoto cmd``

PsExec non necessita dell' installazione di servizi aggiuntivi particolari e quindi porte particolari aperte sul server, basta infatti che sul server siano avviati i servizi Server e Workstation (configurazione di default) su entrambi i server ed inoltre e' possibile passargli utente e password per l'esecuzione remota.

Questo programma sfrutta la condivisione file e stampanti e il servizio Windows Psexesvc.exe per eseguire comandi su un server remoto.

`*********`

Per ulteriori spiegazioni, scrivere a: `Adriano Barbieri. <b.adriano@jumpy.it>`_


