Kaip automatiškai pakelti paketinį failą, kad jis būtų paleistas kaip administratorius
Kartais reikia sukurti paketinį failą, kuriame būtų komandos, kurioms reikalingos padidintos teisės. Dėl UAC funkcijos, įtrauktos į Windows nuo Windows Vista, paleidus paketinį failą jis atidaromas be reikalingos prieigos teisės, nebent dešiniuoju pelės mygtuku spustelėkite jį ir kontekste nepasirinksite „Vykdyti kaip administratoriui“. Meniu. Štai kaip galite sukurti paketinį failą, kuris automatiškai pakils.
Skelbimas
Prieš tęsdami, žr kaip įtraukti paketinį failą (*.bat) į naują failų naršyklės meniu. Įdėkite šį turinį paketinio failo pradžioje:
:: Automatiškai patikrinti ir gauti administratoriaus teises V2. @echo išjungtas. CLS. ECHO. ECHO ECHO Veikia administratoriaus apvalkalas. ECHO :init. setlocal DisableDelayedExpansion. nustatyti "batchPath=%~0" %%k (%0) nustatykite batchName=%%~nk. nustatyti "vbsGetPrivileges=%temp%\OEgetPriv_%batchName%.vbs" setlocal EnableDelayedExpansion :checkPrivilegijos. NET FILE 1> NUL 2> NUL. if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges ): getPrivilegijos. if '% 1'=='ELEV' (echo ELEV & shift /1 & goto gotPrivilegijos) ECHO. ECHO ***************************************** ECHO pasitelkia UAC privilegijų eskalavimui. ECHO *************************************** ECHO Set UAC = CreateObject^("Shell. Programa"^) > "%vbsGetPrivileges%" ECHO args = "ELEV " >> "%vbsGetPrivileges%" ECHO Kiekvienam strArg WScript. Argumentai >> "%vbsGetPrivileges%" ECHO args = args ^& strArg ^& " " >> "%vbsGetPrivilegijos%" ECHO Kitas >> "%vbsGetPrivileges%" ECHO UAC.ShellExecute "!batchPath!", args, "", "runas", 1 >> "%vbsGetPrivileges%" "%SystemRoot%\System32\WScript.exe" "%vbsGetPrivileges%" %* išeiti /B :gotPrivilegijos. setlocal & pushd. cd /d %~dp0. if '%1'=='ELEV' (del "%vbsGetPrivileges%" 1>nul 2>nul & shift /1) ::START. REM Vykdykite apvalkalą kaip administratorių (pavyzdys) - įdėkite čia kodą, kaip norite. ECHO %batchName% Argumentai: %1 %2 %3 %4 %5 %6 %7 %8 %9.
Įdėkite savo paketines komandas, kurias reikia pakelti žemiau paskutinės eilutės.
Pateiktas kodas sukurs specialų VBS failą, kuris bus paleistas iš naujo, jei jis neveikia kaip administratorius. Taigi, jei paleisite jį turėdami ribotus leidimus, prieš paleisdami komandas gausite UAC raginimą, kuriame bus prašoma padidinti privilegijas!
Štai kaip tai atrodo „Windows 10“:
Kreditai už šį kodą atitenka Matt.