Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
di Mark Russinovich
Pubblicato: 5 novembre 2026
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 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.