bat 以管理员权限运行

:: 开始获取管理员权限
setlocal
set uac=~uac_permission_tmp_%random%
md "%SystemRoot%\system32\%uac%" 2>nul
if %errorlevel%==0 ( rd "%SystemRoot%\system32\%uac%" >nul 2>nul ) else (
    echo set uac = CreateObject^("Shell.Application"^)>"%temp%\%uac%.vbs"
    echo uac.ShellExecute "%~s0","","","runas",1 >>"%temp%\%uac%.vbs"
    echo WScript.Quit >>"%temp%\%uac%.vbs"
    "%temp%\%uac%.vbs" /f
    del /f /q "%temp%\%uac%.vbs" & exit )

endlocal 

: : 完成获取,下面可以开始写你自己的代码了 echo. echo 原理:先尝试在系统目录下临时新建一个文件夹,若已获取管理员权限或是运行在XP等不需要管理员权限的 echo 老系统时,是可以新建成功的,此时只需删除这个临时新建的文件夹就好了,否则通过创建一个临时 echo vbs脚本获取管理员权限,然后再删除这个临时vbs脚本文件。 echo. echo 提示:当获取管理员目录后,你的批处理运行目录会发生变化,为保证目录准确, echo 可通过 cd 切换目录,例“cd /d %%~dp0”切换回批处理所在目录 echo. echo 当前运行目录: %cd%\ echo 批处理所在目录: %~dp0 echo. echo 例:切换回批处理所在目录 echo cd /d %%~dp0 echo.


作者:风雪子郁
链接:https://www.zhihu.com/question/34541107/answer/154430381
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值