为了方便通过脚本批处理某些程序时,要操作系统内容需要管理员权限,通过添加一个前置条件检测并请求UAC提权,避免在需要管理器权限时没有授权导致执行失败
@echo off
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
echo Requesting administrator privileges...
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" )
pushd "%CD%"
CD /D "%~dp0"
<需要执行的命令>
pause
使用方法:
- 将上面的代码复制到文本编辑器中
- 保存为
xxx.bat
文件 - 将此文件放在与
你需要执行的程序
相同的目录中 - 双击运行
- 它会自动检测是否需要管理员权限
- 如果需要,会弹出UAC提示请求管理员权限
- 获得权限后,会在当前目录执行命令
这样就不需要手动右键选择"以管理员身份运行"了。
Comments NOTHING