当前位置: 系统哥官网 > 系统教程 > Windows10教程 > 详细页面

Win7系统中对文件双击自动获取管理员权限的办法

时间:2016-09-10 12:35来源:专注于win7 作者:系统哥官网

 

  很多用户都会碰到“当前权限不足,无法保存当前设置”等此类需要先获取管理员权限才能修改的文件。一些用户表示在右键中内置了获取管理员权限的选项。这类“半自动化”设定事实上还是比较麻烦的,要是能够双击运行直接就带管理员权限岂不美哉?阅读下文了解Win7系统中对文件双击自动获取管理员权限的办法

  把如下代码复制到记事本中,并保存为 .bat 格式即可(文件名可自拟):

@echo off
CLS
ECHO.
ECHO ========================
ECHO 获取批处理文件管理员权限
ECHO ========================
:init
setlocal DisableDelayedExpansion
set "batchPath=%~0"
for %%k in (%0) do set batchName=%%~nk
set "vbsGetPrivileges=%temp%\OEgetPriv_%batchName%.vbs"
setlocal EnableDelayedExpansion
:checkPrivileges
NET FILE 1>NUL 2>NUL
if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges )
:getPrivileges
if '%1'=='ELEV' (echo ELEV & shift /1 & goto gotPrivileges)
ECHO.
ECHO ********************************
ECHO 请求 UAC 权限批准……
ECHO ********************************
ECHO Set UAC = CreateObject^("Shell.Application"^) > "%vbsGetPrivileges%"
ECHO args = "ELEV " >> "%vbsGetPrivileges%"
ECHO For Each strArg in WScript.Arguments >> "%vbsGetPrivileges%"
ECHO args = args ^& strArg ^& " "  >> "%vbsGetPrivileges%"
ECHO Next >> "%vbsGetPrivileges%"
ECHO UAC.ShellExecute "!batchPath!", args, "", "runas", 1 >> "%vbsGetPrivileges%"
"%SystemRoot%\System32\WScript.exe" "%vbsGetPrivileges%" %*
exit /B
:gotPrivileges
setlocal & pushd .
cd /d %~dp0
if '%1'=='ELEV' (del "%vbsGetPrivileges%" 1>nul 2>nul  &  shift /1)
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::     以下为需要运行的批处理文件代码     ::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
rem
ECHO
ECHO.
pause

  以上代码就是为你的bat内容获取管理员权限用的,加在你的代码之前就可以用了。运行效果如下:

Win10秘笈:如何为批处理文件自动添加管理员权限?

图片说明:如果你的系统开启了UAC,那么就需要运行后批准一下(别嫌麻烦,最好开启UAC,比较安全)

Win10秘笈:如何为批处理文件自动添加管理员权限?

图片说明:运行示例

  以上便是关于Win7系统中对文件双击自动获取管理员权限的办法,如果你需要操作敏感文件,将因此不再受文件管理员权限提示困扰。