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

六眼飞鱼酱① 提交于 2020-01-02 02:53:07

问题


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?


回答1:


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




回答2:


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:username@domain.com program.exe seems not to be the same as right-clicking then selecting "Run as Administrator".




回答3:


There is a way to do this in PowerShell:

PS> Start-Process powershell -Verb runAs


来源:https://stackoverflow.com/questions/10415653/run-batch-file-as-administrator-windows-7-command-run-as-from-network-file

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!