PsExec v2.44

di Mark Russinovich

Pubblicato: 5 novembre 2026

Scarica Scarica PsTools(5 MB)

Introduzione

Utilità come Telnet e programmi di controllo remoto come PC Anywhere di Symantec consentono di eseguire programmi su sistemi remoti, ma possono essere difficili da configurare e richiedono l'installazione di software client sui sistemi remoti a cui si desidera accedere. PsExec è un'applicazione sostitutiva di Telnet, più leggera, che consente di eseguire processi su altri sistemi e offre un'interattività completa per le applicazioni console, senza dover installare manualmente software client. Gli usi più avanzati di PsExec includono la possibilità di eseguire prompt dei comandi interattivi su sistemi remoti e di eseguire da remoto strumenti come IpConfig che altrimenti non sarebbero in grado di mostrare informazioni sui sistemi remoti.

Nota: alcuni strumenti di scansione antivirus segnalano che uno o più strumenti sono infetti da un virus di amministrazione remota. Nessuno degli strumenti di PsTools contiene virus, ma questi strumenti sono stati usati da virus, che è il motivo per cui attivano le notifiche di virus.

Installazione

È sufficiente copiare PsExec nel PATH. Se si digita "psexec", viene visualizzata la sintassi di utilizzo.

Uso di PsExec

Vedere il numero di luglio 2004 di Windows IT Pro Magazine per l'articolo di Mark che illustra l'uso avanzato di PsExec.

Utilizzo:

psexec [\\\\computer[,computer2[,...] | @file]][-u user [-p psswd]][-n s][-r servicename][-h][-l][-s|-e][-x][-i [session]][-c [-f|-v]][-w directory][-d][-<priority>][-g n][-a n,n,...][-accepteula][-nobanner] cmd [arguments]
Parametro Descrizione
-a Separare con virgole i processori su cui può essere eseguita l'applicazione, dove 1 è la CPU con il numero più basso. Ad esempio, per eseguire l'applicazione sulla CPU 2 e sulla CPU 4, immettere: "-a 2,4"
-c Copia il file eseguibile specificato sul sistema remoto per eseguirlo. Se si omette questa opzione, l'applicazione deve trovarsi nel PATH di sistema sul sistema remoto.
-d Non attendere la terminazione del processo (non interattivo).
-e Non carica il profilo dell'account specificato.
-f Copia il programma specificato anche se il file esiste già nel sistema remoto.
-i Esegui il programma in modo che interagisca con il desktop della sessione specificata nel sistema remoto. Se non viene specificata alcuna sessione, il processo viene eseguito nella sessione della console. Questo flag è obbligatorio quando si tenta di eseguire applicazioni console in modo interattivo (con I/O standard reindirizzato).
-h Se il sistema di destinazione è Vista o versione successiva, eseguire il processo con il token con privilegi elevati dell'account (se disponibile).
-l Esegue il processo come utente limitato (esclude il gruppo di amministratori e consente solo i privilegi assegnati al gruppo Utenti). In Windows Vista il processo viene eseguito con integrità bassa.
-n Specifica il timeout, in secondi, per la connessione ai computer remoti.
-p Specifica la password facoltativa per il nome utente. Se si omette questo parametro, verrà richiesto di immettere una password nascosta.
-r Specifica il nome del servizio remoto da creare o con cui interagire.
-s Esegui il processo remoto nell'account di sistema.
-u Specifica il nome utente facoltativo per l'accesso al computer remoto.
-v Copia il file specificato solo se ha un numero di versione superiore o se è più recente di quello sul sistema remoto.
-w Imposta la directory di lavoro del processo (relativa al computer remoto).
-x Visualizza l'interfaccia utente sul desktop sicuro Winlogon (solo sistema locale).
-priority Specifica -low, -belownormal, -abovenormal, -high o -realtime per eseguire il processo con una priorità diversa. In Vista, usare -background per eseguire il processo con bassa priorità di memoria e di I/O.
computer Indica a PsExec di eseguire l'applicazione sul computer o sui computer remoti specificati. Se si omette il nome del computer, PsExec esegue l'applicazione nel sistema locale, mentre se si specifica un carattere jolly (\\*), PsExec esegue il comando in tutti i computer del dominio corrente.
@file PsExec eseguirà il comando in ognuno dei computer elencati nel file.
cmd Nome dell'applicazione da eseguire.
arguments Argomenti da passare (i percorsi dei file devono essere percorsi assoluti nel sistema di destinazione).
-accepteula Questo flag sopprime la visualizzazione della finestra di dialogo della licenza.
-nobanner Questo flag non visualizza il banner di avvio e il messaggio di copyright.

Le applicazioni con spazi nel nome possono essere racchiuse tra virgolette, ad esempio:

psexec \\marklap "c:\\long name app.exe"

L'input viene passato al sistema remoto solo quando si preme il tasto INVIO. Premendo Ctrl+C, si interrompe il processo remoto.

Se si omette il nome utente, il processo verrà eseguito nel contesto del proprio account sul sistema remoto, ma non avrà accesso alle risorse di rete (perché sta eseguendo l'impersonificazione). Specificare un nome utente valido nella sintassi Domain\User se il processo remoto richiede l'accesso a risorse di rete o per essere eseguito in un account diverso. La password e il comando vengono crittografati in transito verso il sistema remoto.

I codici di errore restituiti da PsExec sono specifici delle applicazioni eseguite, non di PsExec.

Esempi

Questo articolo che ho scritto descrive il funzionamento di PsExec e fornisce suggerimenti su come usarlo:

Il comando seguente avvia un prompt dei comandi interattivo in \\marklap:

psexec -i \\marklap cmd

Questo comando esegue IpConfig nel sistema remoto con l'opzione /all e visualizza l'output risultante in locale:

psexec -i \\marklap ipconfig /all

Questo comando copia il programma test.exe nel sistema remoto e lo esegue in modo interattivo:

psexec -i \\marklap -c test.exe

Specificare il percorso completo di un programma già installato in un sistema remoto, se non è nel PATH del sistema:

psexec -i \\marklap c:\bin\test.exe

Eseguire Regedit in modo interattivo nell'account di sistema per visualizzare il contenuto delle chiavi SAM e SECURITY::

psexec -i -d -s c:\windows\regedit.exe

Per eseguire Internet Explorer come con privilegi utente limitati, usare questo comando:

psexec -l -d "c:\program files\internet explorer\iexplore.exe"

Scarica Scarica PsTools(5 MB)

PSTools

PsExec fa parte di un kit di strumenti da riga di comando Sysinternals in continua espansione denominati PsTools, che agevolano l'amministrazione di sistemi locali e remoti.

Funziona su:

  • Client: Windows 8.1 e versioni successive.
  • Server: Windows Server 2012 e versioni successive.