让bat批处理以管理员权限运行的实现方法
让bat批处理以管理员权限运⾏的实现⽅法
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
echo %path%
cd %path%\bin\
< --remove mysql
< --install mysql
echo start mysql Serviceo
"%SystemRoot%"\system32\net start mysql
2、bat脚本获取管理员权限
@echo off
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d "%~dp0"
写在bat⽂件的顶端就可以实现。
3、bat脚本中以管理员权限执⾏命令
在bat脚本⽂件第⼀⾏加上下⾯命令:
%1 mshta vbscript:CreateObject(“Shell.Application”).ShellExecute(“”,"/c %~s0 ::","",“runas”,1)(window.close)&&exit
4、⾃动以管理员⾝份运⾏批处理(bat)⽂件
在⽇常运维⼯作中,为⽅便对windows⽤户进⾏系统安装或配置等,使⽤Windows⾃带的批处理(bat⽂件)是⼀种最为简单快速的⽅法。
但是,批处理脚本不会默认已管理员⾝份运⾏,⼀般情况下,我会将脚本命名为"XXXXXX(请右键点击,⽤管理员⾝份运
⾏!).bat",但总有些⽤户会忽略这条提⽰,直接运⾏,此时由于权限不⾜,导致脚本运⾏失败。我们可以使⽤⼀种变通的⽅法,让bat启动时,⾸先调⽤vbs脚本,通过vbs脚本,以管理员⾝份调⽤该bat的 runas 部分
我们的脚本可以写在runas 下,这样就点击该bat脚本,就可以已管理员⾝份运⾏了
⽰例代码如下
@ECHO OFF
取得管理员权限setlocal EnableDelayedExpansion
color 3e
title 添加服务配置
PUSHD %~DP0 & cd /d "%~dp0"
%1 %2
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :runas","","runas",1)(window.close)&goto :eof
:runas
::填写⾃⼰的脚本
echo 执⾏完毕,任意键退出
pause >nul
exit
5、以管理员权限执⾏bat脚本
只需要在你编写的.bat⽂件的开头加上以下脚本,然后双击.bat⽂件即是以管理员权限执⾏
@echo off&color 17
if exist "%SystemRoot%\SysWOW64" path %path%;%windir%\SysNative;%SystemRoot%\SysWOW64;%~dp0
bcdedit >nul
if '%errorlevel%' NEQ '0' (goto UACPrompt) else (goto UACAdmin)
:UACPrompt
%1 start "" mshta vbscript:createobject("shell.application").shellexecute("""%~0""","::",,"runas",1)(window.close)&exit
exit /B
:UACAdmin
cd /d "%~dp0"
echo 当前运⾏路径是:%CD%
echo 已获取管理员权限
6、如何让BAT和CMD批处理以管理员⾝份运⾏
如何让BAT和CMD批处理以管理员⾝份运⾏?
有些批处理需要很⾼的权限执⾏才能达到我们所需要的效果,
将以下代码放⼊批处理最顶部就可以实现以管理员⾝份运⾏了。
@echo off
>nul 2>&1 "%SYSTEMROOT%\" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
7、命令⾏CMD批处理⾃动以管理员⾝份运⾏的正确⽅法
修正了路径有空格时的问题
在批处理开头加上:
适⽤于⽆参数
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("","/c
"^&chr(34)^&"%~0"^&chr(34)^&" ::","%cd%","runas",1)(window.close)&&exit
适⽤于⼀参数
%2 mshta vbscript:CreateObject("Shell.Application").ShellExecute("","/c
"^&chr(34)^&"%~0"^&chr(34)^&" "^&chr(34)^&"%~1"^&chr(34)^&" ::","%cd%","runas",1)(window.close)&&exit
更多参数的以此类推
运⾏批处理时多加⼀个参数::,这句就不会执⾏
为了兼容8.3短路径,可把%~0等换成%~s0等
理论上是没问题,但启动路径有时不可靠,之后可能还要pushd或cd /d
8、bat⽂件以管理员权限运⾏的⼏种⽅式
1、创建bat快捷⽅式,然后右键快捷⽅式-->properties-->advanced-->Run as administrator。
2、下载bat转成exe⼯具,将bat转成exe,然后右键exe-->properties-->Compatibility-->Run as administrator。
3、以管理员权限运⾏cmd,然后dos框中运⾏相应的bat。
到此这篇关于让bat批处理以管理员权限运⾏的实现⽅法的⽂章就介绍到这了,更多相关管理员权限运⾏bat内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。