Scripting - Eseguire comandi remoti sui pc in rete con PSEXEC

PsExec è un software gratuito che consente di eseguire comandi ed aprire programmi su sistemi della propria LAN senza richiedere installazione di alcunché sui PC remoti. 
Ottimo strumento per gli amministratori di sistema anche in assenza di Dominio.

Per utilizzarlo è necessario che:
  • Le versione di Windows installate non siano la "Starter" e "Home". Cioè se il PC monta Windows XP Home Edition, Windows Vista Home Basic/Premium tale metodo non funziona.
  • I due PC devono "vedersi" in rete, ed essere in grado di scambiare file e condividere cartelle 
  • essere in possesso delle credenziali d'accesso (nome utente e password dell'account) del PC remoto.
  • Tale account deve inoltre essere dotato dei privilegi di amministratore 
  • È necessario disabilitare la condivisione file semplice sul PC in questione.  
  • Il PC a cui si accede fisicamente deve essere in grado di aprire la condivisione amministrativa ADMIN$ sul calcolatore remoto. Il modo più semplice per verificarlo è aprire il percorso \\NomeComputerRemoto\admin$ e fornire quindi le opportune credenziali.  

  1. Scaricare il pacchetto "PsTools", di cui PsExec fa parte, e scompattare PsExec.exe in una directory a piacere. 
  2. Estrarre i file e poi scompattare psexec.exe in c:\windows
  3. Andare su start --> esegui e dare cmd ed invio
  4. eseguire c:\windows\psexec.exe
  5. La sintassi è la seguente per eseguire un programma sul pc remoto
  6. psexec.exe \\NomeComputerRemoto -u NomeUtenteRemoto -p PasswordUtenteRemoto -i -d "C:\Percorso remoto\dell'eseguibile\da lanciare.exe"
  7. per eseguire un programma locale facendo in modo di trasferirlo sul pc remoto:
  8. psexec.exe \\NomeComputerRemoto -u NomeUtenteRemoto -p PasswordUtenteRemoto -i -d -c "-f C:\Percorso locale\dell'eseguibile\da lanciare.exe"
  9. Rispetto a prima, osserviamo che i parametri -c -f: indicano a PsExec che vogliamo eseguire un programma attualmente memorizzato in locale, che dovrà quindi prima essere trasferito. (PsExec "parcheggia" i file eseguiti in questo modo nella cartella C:\Windows\system32 del PC remoto, dimenticandosi però di cancellarli ad esecuzione terminata)
  10. Per installare ad esempio un programma in modalità silent:
  11. psexec.exe \\starscream -u "Gigi Lollobrigida" -p 123456 -i -d -c -f "D:\vlc-1.1.3-win32.exe" /S.
  12.  Se invece vogliamo eseguire script sul pc remoto la sintassi da dare è la seguente:
  13.  psexec \\nome_wks -i cscript.exe /nologo \\192.168.x.x\share\nome_script.vbs

[update Dicembre 2014]

Per maggiori info sull'utilizzo di psexec potete fare riferimento al seguente articolo:


https://turbolab.it/407


[update 2017.04.28]

You can execute psexec via powershell too.

You can review this article about some explanation and powershell usage too.

https://4sysops.com/archives/psexec-vs-the-powershell-remoting-cmdlets-invoke-command-and-enter-pssession/