⾃动以管理员⾝份运⾏批处理bat⽂件(vbs与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
VBS使⽤管理员权限启动BAT2
vbs脚本怎么停止Set objShell = CreateObject(“WScript.Shell”)
strPath = Replace(WScript.ScriptFullName, ⽂件名, “”)
objShell.Run("runas /user:administrator " & strPath & “cmd.Bat”)
WScript.Sleep 1000
objShell.SendKeys “password{ENTER}”
WScript.Sleep 1000
注意:runas是⽆法传递参数的
bat脚本中以管理员权限执⾏命令
把写好的bat设置为开机启动后,但是默认不是以管理员⾝份运⾏,所以开机启动的时候就会导致有⼀些命令执⾏不了
⾸先:如果windows每次获取管理员权限的时候都会弹窗,那么⾸先就要把弹窗关闭
关闭⽅法是每次弹出提⽰的时候提⽰框有⼀个深⾊字体,提⽰可以修改弹出设置,点进去,设置为永不或者⽆弹窗
接下来,只需要在.bat脚本中添加⼀下代码即可实现以管理员⾝份运⾏
在bat脚本⽂件第⼀⾏加上下⾯命令:
::强制获取管理员运⾏权限
%1 mshta vbscript:CreateObject(“Shell.Application”).ShellExecute(“”,"/c %~s0 ::","",“runas”,1)(window.close)&&exit
cmd/bat如何⾃动请求管理员权限⽽不需要右键管理员运⾏
先上完整代码:
@echo off
>nul 2>&1 "%SYSTEMROOT%\" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
echo 请求管理员权限...
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
原理如下:
访问⼀个需要授权的⽂件夹,如(%SYSTEMROOT%\system32\config\system)
如果被允许了,说明显然有管理员权限
如果被拒绝了,就要申请权限了。
申请权限的⽅法是:
(看echo的代码)
创建⼀个运⾏器,运⾏相对⽬录(相对⽬录就是运⾏批处理的⽬录)⾥⾯的程序,以管理员权限。
然后⾃然就申请管理员了哇到此这篇关于vbs之⾃动以管理员⾝份运⾏批处理(bat)⽂件的⽂章就介绍到这了,更多相关管理员⾝份运⾏批处理内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!