Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am trying to run a batch file (to install some software) on a remote computer. To do this, I am using PSExec.

psexec.exe \\COMPUTER C:\swsetup\install.bat

This works fine, apart from some of the installs fail due to the script not running as an administrator (if I log on, right-click and select "Run as Administrator" the script runs and installs successfully.

I have tried running as administrator with the /runas command, with no luck

psexec.exe \\computer cmd

and then

runas /user:computer\administrator C:\swsetup\install.bat

The system flicks up with "Enter password for account" and then jumps back to the cmd prompt without letting me type the password in. The same issue happens if I try and do

runas /user:myaccount@domain.int C:\swsetup\install.bat

Is there a way around this, or am I going to have to visit the machine, log on, and then run the script on each machine?

share|improve this question
    
Is the \install.bat located on the remote pc? – Ivan Viktorovic Jul 11 '14 at 14:14
    
@IvanViktorovic, yes. It was copied to the C:\swsetup folder on the remote machine. – tombull89 Jul 11 '14 at 14:19
2  
Try entering a remote PowerShell session instead? Enter-PSSession COMPUTER -Credential (Get-Credential) – Tanner Faulkner Jul 11 '14 at 14:33

Create a task schedule on remote computer that runs the batch file you want at highest privilege on demand. You might be able to add new task to remote computer with schtasks /Create /? (search add task schedule to remote computer)
create a shortcut to run task
run shortcut with psexec.exe

I use this method to bypass UAC when running select programs as admin. I created a new task scheduler folder "bypass UAC" and inside it new task "installer".

General tab: check "run with highest privilege".
Action tab:start a program yourbatchfile
Conditions tab: uncheck power restrictions and check wake computer if you have wake timers enabled and want to wake the computer to run the task.
Settings tab:check "allow task to be run on command"

For the shortcut use pattern: C:\Windows\System32\schtasks.exe /RUN /TN "foldername\taskname"

so for example "bypass UAC\installer"

If my instructions are confusing, search "bypass UAC with task scheduler"

share|improve this answer
    
Is it possible to make it generic? like %1? – barlop Jul 6 '15 at 8:38
    
yes, i think so if you make a batch file and before schtasks.exe /RUN ... you do schtasks.exe /change /tr %1 /TN "foldername\taskname". and remember you can run schtasks on remote computers by specifying /S system /U user /P password – Siavash Jul 15 '15 at 20:58

Have you tried adding the PSExec password switch with the account name you're running the batch with?

 -p         Specifies optional password for user name. If you omit this
            you will be prompted to enter a hidden password.
share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .