自动以管理员身份运行批处理bat文件(vbs与bat两种方法)
但是,批处理脚本不会默认已管理员身份运行,一般情况下,我会将脚本命名为"XXXXXX(请右键点击,用管理员身份运行!).bat",但总有些用户会忽略这条提示,直接运行,此时由于权限不足,导致脚本运行失败。
我们可以使用一种变通的方法,让bat启动时,首先调用vbs脚本,通过vbs脚本,以管理员身份调用该bat的runas部分
我们的脚本可以写在runas下,这样就点击该bat脚本,就可以已管理员身份运行了
示例代码如下
@ECHOOFF setlocalEnableDelayedExpansion color3e title添加服务配置 PUSHD%~DP0&cd/d"%~dp0" %1%2 mshtavbscript:createobject("shell.application").shellexecute("%~s0","goto:runas","","runas",1)(window.close)&goto:eof :runas ::填写自己的脚本 echo执行完毕,任意键退出 pause>nul exit
VBS使用管理员权限启动BAT2
SetobjShell=CreateObject(“WScript.Shell”) strPath=Replace(WScript.ScriptFullName,文件名,“”) objShell.Run("runas/user:administrator"&strPath&“cmd.Bat”) WScript.Sleep1000 objShell.SendKeys“password{ENTER}” WScript.Sleep1000
注意:runas是无法传递参数的
bat脚本中以管理员权限执行命令
把写好的bat设置为开机启动后,但是默认不是以管理员身份运行,所以开机启动的时候就会导致有一些命令执行不了
首先:如果windows每次获取管理员权限的时候都会弹窗,那么首先就要把弹窗关闭
关闭方法是每次弹出提示的时候提示框有一个深色字体,提示可以修改弹出设置,点进去,设置为永不或者无弹窗
接下来,只需要在.bat脚本中添加一下代码即可实现以管理员身份运行
在bat脚本文件第一行加上下面命令:
::强制获取管理员运行权限
%1mshtavbscript:CreateObject(“Shell.Application”).ShellExecute(“cmd.exe”,"/c%~s0::","",“runas”,1)(window.close)&&exit
cmd/bat如何自动请求管理员权限而不需要右键管理员运行
先上完整代码:
@echooff >nul2>&1"%SYSTEMROOT%\system32\cacls.exe""%SYSTEMROOT%\system32\config\system" if'%errorlevel%'NEQ'0'( echo请求管理员权限... gotoUACPrompt )else(gotogotAdmin) :UACPrompt echoSetUAC=CreateObject^("Shell.Application"^)>"%temp%\getadmin.vbs" echoUAC.ShellExecute"%~s0","","","runas",1>>"%temp%\getadmin.vbs" "%temp%\getadmin.vbs" exit/B :gotAdmin
原理如下:
访问一个需要授权的文件夹,如(%SYSTEMROOT%\system32\config\system)
如果被允许了,说明显然有管理员权限
如果被拒绝了,就要申请权限了。
申请权限的方法是:
(看echo的代码)
创建一个运行器,运行相对目录(相对目录就是运行批处理的目录)里面的程序,以管理员权限。
然后自然就申请管理员了哇到此这篇关于vbs之自动以管理员身份运行批处理(bat)文件的文章就介绍到这了,更多相关管理员身份运行批处理内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。