天天看點

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

來源:知乎

著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

繼續閱讀