Vai ai contenuti | Vai alle rubriche

via Borgognona, 38 - 00187 Roma Tel 06.69.98.81 - Fax 06.67.86.815 - numero verde: 800 682682 - Part. IVA 00989551007

VAI AGLI ARTICOLI


UICIECHI.IT: FEBBRAIO 2009 - Numero 2.

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

  1. Salvare con estensione .bat, o .cmd ed eseguirlo.
  2. dopo una breve scansione del sistema, si apre il file info.log e si potranno leggere i dati del nostro computer.
  3. 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.