Sysinternals/Pstools/PsExec
Jump to navigation
Jump to search
You are here: | PsExec
|
Description
PsExec is part of the PsTools toolkit developed by Sysinternals. It enables to remotely execute commands on a Windows machine (e.g. Windows XP) from another Windows machine (e.g. Windows 7).
Installation
PsExec is part of the PsTools suite. To install it, please refer to this section.
Usage
Syntax
Usage: psexec [\\computer[,computer2[,...] | @file]][-u user [-p psswd][-n s][-l] [-s|-e][-x][-i [session]][-c [-f|-v]][-w directory][-d][-<priority>] [-a n,n,...] cmd [arguments]
Options
- -a
- Separate processors on which the application can run with commas where 1 is the lowest numbered CPU. For example, to run the application on CPU 2 and CPU 4, enter: "-a 2,4"
- -c
- Copy the specified program to the remote system for execution. If you omit this option the application must be in the system path on the remote system.
- -d
- Don't wait for process to terminate (non-interactive).
- -e
- Does not load the specified account's profile.
- -f
- Copy the specified program even if the file already exists on the remote system.
- -i
- Run the program so that it interacts with the desktop of the specified session on the remote system. If no session is specified the process runs in the console session.
- -h
- If the target system is Vista or higher, has the process run with the account's elevated token, if available.
- -l
- Run process as limited user (strips the Administrators group and allows only privileges assigned to the Users group).
- On Windows Vista the process runs with Low Integrity.
- -n
- Specifies timeout in seconds connecting to remote computers.
- -p
- Specifies optional password for user name. If you omit this you will be prompted to enter a hidden password.
- Note that the password is transmitted in clear text to the remote system.
- -s
- Run the remote process in the System account.
- -u
- Specifies optional user name for login to remote computer.
- Specify a valid user name in the Domain\User syntax if the remote process requires access to network resources or to run in a different account.
- -v
- Copy the specified file only if it has a higher version number or is newer on than the one on the remote system.
- -w
- Set the working directory of the process (relative to remote computer).
- -x
- Display the UI on the Winlogon secure desktop (local system only).
- -priority
- Specifies -low, -belownormal, -abovenormal, -high or -realtime to run the process at a different priority. Use -background to run at low memory and I/O priority on Vista.
- computer
- Direct PsExec to run the application on the remote computer or computers specified. If you omit the computer name PsExec runs the application on the local system, and if you specify a wildcard (\\*), PsExec runs the command on all computers in the current domain.
- @file
- PsExec will execute the command on each of the computers listed in the file.
- program
- Name of application to execute.
- You can enclose applications that have spaces in their name with quotation marks e.g. psexec \\marklap "c:\long name app.exe".
- arguments
- Arguments to pass (note that file paths must be absolute paths on the target system).
Examples
Interactive mode: remotely start calc.exe
Following command will start calc.exe in interactive mode on the targeted device:
C:\pstools>psexec \\192.168.1.27 -u pilou -p oopsoops -i "c:\windows\system32\calc.exe" PsExec v1.98 - Execute processes remotely Copyright (C) 2001-2010 Mark Russinovich Sysinternals - www.sysinternals.com
Non interactive mode: antivirus status
C:\pstools>psexec \\192.168.1.27 -u pilou -p oopsoops "C:\Program Files\Kaspersky Lab\Kaspersky Internet Security 2012\avp.com" STATUS PsExec v1.98 - Execute processes remotely Copyright (C) 2001-2010 Mark Russinovich Sysinternals - www.sysinternals.com Starting C:\Program Files\Kaspersky Lab\Kaspersky Internet Security 2012\avp.com Task State Completion Description --------------------------------------------------------------------- AdBlocker disabled AdBlockService stopped AdvDis stopped Anti_Spam stopped AntiPhishingEx stopped AntiPhishingService stopped AppCat stopped AVService running AVZ_PrivacyCleaner stopped AVZ_RunScript stopped AVZ_Scan_Vulnerabilities stopped AVZ_SecurityTweaker stopped Avz_Troubleshoot stopped CfResponseProvider stopped CustomUrlProcess stopped File_Monitoring stopped Firewall stopped FTP stopped Geo_Security stopped GreenZone stopped Hips stopped HipsRequester stopped HipsTask stopped HTTP stopped httpscan stopped ICQ stopped ids stopped IM_Monitoring stopped IMAP stopped IRC stopped Jabber stopped KASFltService stopped KSN running KSN_client stopped LocalizationManager stopped Mail_Monitoring stopped MMP stopped MSN stopped NetDetails stopped NetWatch running NNTP stopped OnlineBanking stopped ParCtl disabled ParCtlService_Filters stopped ParCtlService_Time stopped ParCtlService_URL stopped ParCtlService_Words stopped pdm stopped POP3 stopped ProcMon running Protection stopped QB stopped RDUpdater stopped Rollback stopped RollbackPatch stopped SafeSearch stopped SandBox running sc stopped Scan_IdleScan completed Scan_My_Computer completed Scan_Objects stopped Scan_Qscan completed Scan_Quarantine completed Scan_Startup stopped Scan_Vulnerabilities stopped SMTP stopped SNA stopped SW2 stopped SW2U stopped ThreatsDisinfector stopped TimeControl stopped TrafficMonitor stopped UDS stopped Updater stopped VerCheck completed VirtualKeyboard stopped Web_Monitoring stopped WebNetStat stopped WebToolBar stopped WMUF stopped YHO stopped C:\Program Files\Kaspersky Lab\Kaspersky Internet Security 2012\avp.com exited on 192.168.1.27 with error code 0.
Run a shell like a telnet session
Psexec has the ability to run a shell like if you were connected via a telnet session.
The machine from which psexec is run has the IP 192.168.1.2:
C:\pstools>ipconfig | find "192.168.1" Adresse IPv4. . . . . . . . . . . . . .: 192.168.1.2 192.168.1.254
Now, let's remotely connect to host 192.168.1.27 and run a remote prompt:
C:\Users\william>psexec \\192.168.1.27 -u pilou -p oopsoops cmd PsExec v1.98 - Execute processes remotely Copyright (C) 2001-2010 Mark Russinovich Sysinternals - www.sysinternals.com Microsoft Windows XP [version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. C:\WINDOWS\system32>ipconfig | find "192.168.1" Adresse IP. . . . . . . . .á. . . : 192.168.1.27 Passerelle par dÚfaut . . .á. . . : 192.168.1.254
Run a program on multiple computers
Now, let's say you want to run a removal tool (let's say the remote computers are infected) on 2 computers and log the output to results.log, just issue following command;
C:\pstools>psexec \\192.168.1.26,192.168.1.27 -c removal.exe -s 2> results.log