Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Run Batch file as administrator - Windows 7 - Command "Run As" from network file system

I need to set up the delivery of a program installer.

This program has a program_installer.exe and a folder that i cannot include in the installer at the time in which i create the installer.

therefore, when a user needs to install the program i send him a BATCH file via MAIL

@echo off
if DEFINED PROGRAMFILES(X86) (
SET TOOL_INSTALL_DIR="%PROGRAMFILES(X86)%\myfolder"
) else (
SET TOOL_INSTALL_DIR="%PROGRAMFILES%\myfolder"
)

MKDIR %TOOL_INSTALL_DIR%
copy /y \\rk0012352\Public\lkh5iwwh.m4s %TOOL_INSTALL_DIR%


START %PROGRAMFILES%\program_installer.exe

The issue is that, when the user execute the BATCH and run COPY command, on windows 7 the command will fail because he has no ADMIN rights.

How can i make that copy command run as administrator on both XP and 7 ?

You might say: when the user gets the EMAIl with INSTALL.BAT, CAN'T he click RUN AS ADMINISTRATOR?

The answer unfortunately is that most of them will not do that and just complain that it doesn't work. Moreover many email client such as Outlook will prompt "open" "save" choice panel and most of the users will click Open directly(generating the no rights error)

the "run as" commands requires to specify the administrator name for the machine and i cannot know how the admin user is called on every computer.

Any suggestion?

like image 979
NoobTom Avatar asked May 02 '12 14:05

NoobTom


People also ask

How do I run a batch file as administrator in CMD?

So instead You just right click on your "file. bat - shortcut" then go to ->Properties->Shortcut tab -> Advanced and there you can click Run as administrator. After that, You can execute the shortcut.


2 Answers

It's a little bit tricky but it can be done.

First you have to know (from the batch file) if the user is an administrator. If it is then you can simply go on with installation. If it's not you can run another cmd.exe instance to run the batch file as administrator (using the runas command).

To detect if the user is an administrator take a look to this post: http://www.tomshardware.co.uk/forum/169421-36-determine-batch-file-user-administrator (there is the full code to elevate the batch itself too).

like image 200
Adriano Repetti Avatar answered Oct 22 '22 00:10

Adriano Repetti


Not the same thing.

There's a difference between elevating your own scope of permissions and just running within your scope if you are in the administrators group.

Simply using runas /user:[email protected] program.exe seems not to be the same as right-clicking then selecting "Run as Administrator".

like image 38
Felipe Giovanoni Avatar answered Oct 22 '22 00:10

Felipe Giovanoni