批处理命令执行提权命令后再次以普通用户权限执行

要怎么做到批处理命令执行管理员身份运行后再次以当前用户身份执行

img

批处理脚本中可以使用 runas 命令来提权执行管理员身份运行程序,然后在程序结束后再使用 start 命令来以当前用户身份重新启动程序。

例如:

runas /user:administrator "c:\path\to\program.exe"
start "c:\path\to\program.exe"

上面的代码将会先以管理员身份运行program.exe, 然后再以当前用户身份重新启动program.exe.

1、第一种方法

有的电脑是非管理员登录,运行程序时,需要提示是否运行运行。解决方法如下:

@ echo off
%1 %2
ver|find "5.">nul&&goto :Admin
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :Admin","","runas",1)(window.close)&goto :eof
:Admin
//在你的bat开头加上上面的命令即可
//下面是你需要执行的命令
set path=%~dp0
echo install mysql service...
echo %path%
cd %path%\bin\
mysqld.exe --remove mysql
mysqld.exe --install mysql
echo start mysql Serviceo
"%SystemRoot%"\system32\net start mysql

2. bat脚本获取管理员权限

写在bat文件的顶端就可以实现。

@echo off
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d "%~dp0"

3、bat脚本中以管理员权限执行命令

在bat脚本文件第一行加上下面命令:

%1 mshta vbscript:CreateObject(“Shell.Application”).ShellExecute(“cmd.exe”,"/c %~s0 ::","",“runas”,1)(window.close)&&exit