Cum să ridicați automat un fișier batch pentru a-l rula ca administrator
Uneori trebuie să creați un fișier batch care să includă comenzi care necesită drepturi ridicate. Datorită funcției UAC inclusă în Windows din Windows Vista, atunci când porniți un fișier batch, acesta se deschide fără drepturile de acces necesare, cu excepția cazului în care faceți clic dreapta pe el și selectați „Run as Administrator” din context meniul. Iată cum puteți crea un fișier batch care se va ridica automat.
Publicitate
Înainte de a continua, vezi cum să adăugați fișierul Batch (*.bat) în meniul Nou al File Explorer. Plasați următorul conținut la începutul fișierului batch:
:: Verificați automat și obțineți drepturi de administrator V2. @echo dezactivat. CLS. ECOU. ECHO ECHO Rulează shell de administrare. ECHO :init. setlocal DisableDelayedExpansion. setați „batchPath=%~0” pentru %%k în (%0) setați batchName=%%~nk. setați „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) ECOU. ECHO **************************************** ECHO invocă UAC pentru escaladarea privilegiilor. ECHO ************************************** ECHO Set UAC = CreateObject^("Shell. Aplicație"^) > "%vbsGetPrivileges%" ECHO args = "ELEV " >> "%vbsGetPrivileges%" ECHO pentru fiecare strArg din WScript. Argumente >> „%vbsGetPrivileges%” ECHO args = args ^& strArg ^& " " >> "%vbsGetPrivileges%" ECHO Următorul >> „%vbsGetPrivileges%” ECHO UAC.ShellExecute „!batchPath!”, args, „”, „runas”, 1 >> „%vbsGetPrivileges%” „%SystemRoot%\System32\WScript.exe” „%vbsGetPrivileges%” %* ieșire /B :gotPrivileges. setlocal & pushd. cd /d %~dp0. dacă '%1'=='ELEV' (del "%vbsGetPrivileges%" 1>nul 2>nul & shift /1) ::START. REM Run shell ca admin (exemplu) - puneți aici codul după cum doriți. ECHO %batchName% Argumente: %1 %2 %3 %4 %5 %6 %7 %8 %9.
Plasați propriile comenzi de lot care necesită elevație sub ultima linie.
Codul furnizat va crea un fișier VBS special care îl va reporni dacă nu rulează ca administrator. Deci, dacă îl lansați cu permisiuni limitate, veți primi un prompt UAC care vă va cere să ridicați privilegiile înainte de a-și executa comenzile!
Iată cum arată în Windows 10:
Creditele pentru acest cod merg la Matt.