CMD批处理(5)——自动以管理员身份运行批处理脚本

时间:2022-07-06 06:14:00
在日常运维工作中,为方便对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

 

快捷方式或转换为exe可执行文件执行

  • 创建bat快捷方式,然后右键快捷方式-->properties(属性)-->advanced(高级)-->Run as administrator(用管理员身份运行)。
  • 下载bat转成exe工具,将bat转成exe,然后右键exe-->properties(属性)-->Compatibility(兼容性)-->Run as administrator(以管理员身份运行此程序)。