Le soluzioni di controllo remoto come VNC, Windows Live Sync, Desktop Remoto, Synergy o Input Director sono indubbiamente molto utili per lavorare sul proprio PC abituale anche quando non si dispone di un accesso "fisico" allo stesso.
Gli amanti dell'automazione e dello scripting sanno però molto bene che si tratta di soluzioni interattive: in lìobbiettivo sia semplicemente quello di eseguire un singolo comando sul sistema remoto, tale approccio diviene rapidamente molto scomodo.
Si pensi, ad esempio, all'amministratore di sistema che desideri lanciare uno script di manutenzione oppure l'installazione di un aggiornamento sulle centinaia di calcolatori della propria LAN, oppure al power user che desideri predisporre un'icona sul proprio netbook tramite la quale alzare o abbassare il volume del PC fisso utilizzato come Hi-Fi durante una festa in giardino.
In tutte le situazioni in cui si desideri lanciare un singolo comando su un sistema remoto, la soluzione si chiama PsExec: un programma gratuito da linea di comando che permette appunto di raggiungere l'obbiettivo con una certa semplicità, e senza la necessità di installare alcunchè sul calcolatore remoto.
Lo strumento, se vogliamo tralasciare alcuni dettagli tecnici, è una sorta di SSH altamente semplificato e dedicato al mondo Microsoft. È compatibile con quasi tutte le versioni, da Windows 2000 fino a Windows 7, passando per le declinazioni "server" e quelle a 64 bit.
Le uniche escluse sono le edizioni "Starter" e "Home": se il PC che desiderate controllare monta Windows XP Home Edition, Windows Vista Home Basic/Premium eccetera potete interrompere qui la lettura ed installare un server SSH. PsExec non è infatti compatibile con queste declinazioni.
Ci sono un paio di condizioni che devono essere soddisfatte prima di poter utilizzare lo strumento:
Una volta che tutti i pre-requisiti siano soddisfatti, è possibile scaricare il pacchetto "PsTools", di cui PsExec fa parte, e scompattare PsExec.exe in una directory a piacere.
Per semplificare notevolmente le fasi successive, raccomando di estrarre l'eseguibile nella cartella C:\Windows, ma non è un requisito.
A questo punto, aprite una finestra di comando (impartite cmd.exe da Start -> Esegui (fate riferimento a "Ripristinare il comando "Esegui" in Windows Vista e Windows 7" in caso non fosse visibile)) e lanciate quindi semplicemente psexec.
Dopo aver accettato la licenza d'uso (proposta solo al primo avvio), dovreste ottenere una videata simile a questa
Se così non fosse, vi raccomando nuovamente di copiare il file PsExec.exe nella directory C:\Windows e riprovare.
In caso tutto sia filato liscio, siamo pronti ad usare il programma per davvero.
Arrivati a questo punto, siamo pronti a lanciare il primo comando sul sistema remoto. Sarà qualcosa di simile a questo: psexec.exe \\NomeComputerRemoto -u NomeUtenteRemoto -p PasswordUtenteRemoto -i -d "C:\Percorso remoto\dell'eseguibile\da lanciare.exe"
In particolare:
A titolo di esempio, andrete a lanciare qualcosa del genere: psexec.exe \\starscream -u "Gianluigi Zanettini" -p 123456 -i -d "C:\Windows\system32\notepad.exe".
Se tutto sarà andato per il verso giusto, verrà aperto il blocco note sul sistema remoto
È evidente che digitare manualmente una stringa così lunga ogni volta che abbiamo bisogno di lanciare un comando remoto finisce per essere frustrante e ben poco pratico sul lungo periodo.
La soluzione è quella di creare un collegamento all'invocazione di PsExec
La procedura è quella già illustrata molte altre volte: click con il pulsante destro del mouse in un'area vuota, Nuovo -> Collegamento. Da qui, inserire l'intero comando di PsExec con tutti i parametri e gli argomenti alla prima pagina della breve procedura guidata, ed un nome a piacere per il collegamento nella seconda.
Va da sé che dovrete ripetere la creazione di un nuovo link per ogni comando remoto che vorrete poi lanciare con facilità.
Vi raccomando di eseguire sempre preventivamente varie prove con PsExec dal prompt di comando, di modo da assicurarvi che tutto funzioni, prima di creare i relativi collegamenti: risulterà così più facile diagnosticare e prevenire eventuali problemi.
Ora ci siamo "scaldati" lanciando programmi che già erano memorizzati sul disco remoto, possiamo passare al gradino successivo: lanciare un programma che, al momento, è salvato solamente sul PC locale.
Per farlo, si procede in modo analogo a quanto visto fino a poco fa. Il comando però sarà ora simile a questo: psexec.exe \\NomeComputerRemoto -u NomeUtenteRemoto -p PasswordUtenteRemoto -i -d -c "-f C:\Percorso locale\dell'eseguibile\da lanciare.exe"
Rispetto a prima, osserviamo che:
A titolo di esempio, andrete quindi ad impartire qualcosa del genere: psexec.exe \\starscream -u "Gianluigi Zanettini" -p 123456 -i -d -c -f "D:\Software di test\mio-test.exe".
Se tutto sarà andato per il verso giusto, il programma verrà aperto come voluto
Notate soltanto che PsExec "parcheggia" i file eseguiti in questo modo nella cartella C:\Windows\system32 del PC remoto, dimenticandosi però di cancellarli ad esecuzione terminata.
Ricordatevi quindi di fare un po' di pulizia quando avete finito (magari proprio tramite qualcosa simile a psexec.exe \\starscream -u "Gianluigi Zanettini" -p 123456 -i -d cmd.exe /C del "C:\Windows\System32\zane-test.exe" /Q)
Utilizzando il metodo appena proposto possiamo installare alcuni programmi sui sistemi remoti in modo davvero immediato.
La linea d'azione è molto semplice. Procuratevi innanzitutto il setup del vostro applicativo preferito (VLC media player, ad esempio), e consultate la documentazione per capire quale parametro passare all'eseguibile per avviare l'installazione automatica silenziosa: si tratta, generalmente, di -s oppure /s o /q.
Salvatelo sul disco locale e, con la stessa tecnica descritta in precedenza, eseguitelo sul PC remoto. Per installare VLC media player, in particolare, si userà un comando simile a questo: psexec.exe \\starscream -u "Gianluigi Zanettini" -p 123456 -i -d -c -f "E:\Downloads\vlc-1.1.0-win32.exe" /S.
Dopo pochi istanti di elaborazione, il software dovrebbe essere stato installato
La tecnica funziona al meglio con quelle procedure di installazione composte da un singolo file. Con un po' di inventiva è possibile installare anche soluzioni più corpose, come Microsoft Office: la procedura completa prevede di combinare PsExec con un installazione "unattended" accessibile via rete.
Agli utenti intraprendenti, segnalo la possibilità di combinare PsExec con l'interessante utility gratuita Nircmd per compiere alcune operazioni meno immediate.
È possibile, tanto per citare qualche esempio, zittire il sistema da remoto (psexec.exe \\virtual-xp -u "Gianluigi Zanettini" -p 123456 -i -d -c -f "D:\Zane\Desktop\nircmd\nircmdc.exe" mutesysvolume 1), aprire o chiudere il drive CD/DVD, "spegnere" il monitor (psexec.exe \\virtual-xp -u "Gianluigi Zanettini" -p 123456 -i -d -c -f "D:\Zane\Desktop\nircmd\nircmdc.exe" monitor off) oppure regolare il volume.
Per maggiori informazioni, vi rimando all'articolo "Nircmd amministra Windows dalla linea di comando": l'unica differenza, rispetto a quanto detto in quella sede, è che l'intera chiamata a Nircmd deve essere inserita come argomento di PsExec, come da esempi precedenti.
Sebbene PsExec possa essere usato anche per spegnere e, in determinati scenari, accedere un PC remoto, non è certamente la strada più semplice.
A chi fosse alla ricerca di una soluzione per queste due necessità segnalo piuttosto "Il comando Shutdown: istruzioni per l'uso" e "Accendere un PC via rete utilizzando "Wake-on-LAN" (oppure "Wake-on-Internet")".
PsExec non è un programma complicato, ma prevede comunque ancora numerose opzioni che non ho approfondito in questa sede.
Come visto in apertura, è possibile stampare la sintassi completa del comando semplicemente impartendo psexec.exe, senza parametri, da linea di comando.
In alternativa, la pagina web di riferimento propone le stesse informazioni ed ancora qualche esempio in un formato più accessibile.
Questa lista di FAQ infine, propone ancora qualche suggerimento per l'uso in scenari particolari.
MegaLab.it rispetta la tua privacy. Per esercitare i tuoi diritti scrivi a: privacy@megalab.it .
Copyright 2008 MegaLab.it - Tutti i diritti sono riservati