PsExec v2.43

Di Mark Russinovich

Data di pubblicazione: 11 aprile 2023

ScaricaScaricare 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 di comandi interattivi su sistemi remoti e strumenti di abilitazione in remoto, come IpConfig, che altrimenti non potrebbero mostrare informazioni sui sistemi remoti.

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

Installazione

È sufficiente copiare PsExec nel percorso eseguibile. 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 Elenco dei processori (separati da virgole) su cui può essere eseguita l'applicazione, in cui 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 nel sistema remoto per essere eseguito. Se si omette questa opzione, l'applicazione deve trovarsi nel percorso di sistema all'interno del sistema remoto.
-d Non attende che il processo venga terminato (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 Esegue 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, il processo viene eseguito 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 della 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 Esegue 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 presente nel 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 memoria insufficiente e priorità 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 elimina la visualizzazione della finestra di dialogo della licenza.
-nobanner Questo contrassegno 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. Digitando Ctrl-C si termina 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é è una rappresentazione). Specificare un nome utente valido nella sintassi Domain\User se il processo remoto richiede l'accesso a risorse di rete o per l'esecuzione 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

In questo articolo descrivo il funzionamento di PsExec e fornisco 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 è diverso dal percorso 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 con privilegi utente limitati, usare questo comando:

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

ScaricaScaricare 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.

In esecuzione su:

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