Hvordan heve en batchfil automatisk for å kjøre den som administrator
Noen ganger må du lage en batch-fil som inneholder kommandoer som krever forhøyede rettigheter. På grunn av UAC-funksjonen inkludert i Windows siden Windows Vista, åpnes den uten å starte en batchfil de nødvendige tilgangsrettighetene med mindre du høyreklikker på den og velger "Kjør som administrator" fra konteksten Meny. Her er hvordan du kan lage en batch-fil som automatisk hever seg selv.
Annonse
Før du fortsetter, se hvordan legge til batchfil (*.bat) til Ny meny i filutforsker. Plasser følgende innhold i begynnelsen av batchfilen:
:: Sjekk og få administratorrettigheter automatisk V2. @ekko av. CLS. EKKO. ECHO ECHO Running Admin shell. EKKO :init. setlocal DisableDelayedExpansion. sett "batchPath=%~0" for %%k i (%0) må du angi batchName=%%~nk. sett "vbsGetPrivileges=%temp%\OEgetPriv_%batchName%vbs" setlocal EnableDelayedExpansion :checkPrivileges. NET FIL 1>NUL 2>NUL. if '%errorlevel%' == '0' (goto gotPrivileges) else (goto getPrivileges) :getPrivileges. if '%1'=='ELEV' (ekko ELEV & shift /1 & goto gotPrivileges) EKKO. EKKO ************************************** ECHO påkaller UAC for Privilege Eskalering. ECHO ************************************** ECHO Set UAC = CreateObject^("Shell. Applikasjon"^) > "%vbsGetPrivileges%" ECHO args = "ELEV " >> "%vbsGetPrivileges%" EKKO for hver strArg i WScript. Argumenter >> "%vbsGetPrivileges%" ECHO args = args ^& strArg ^& " " >> "%vbsGetPrivileges%" ECHO Neste >> "%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) ::START. REM Kjør shell som admin (eksempel) - legg inn kode som du vil. ECHO %batchName% Argumenter: %1 %2 %3 %4 %5 %6 %7 %8 %9.
Plasser dine egne batchkommandoer som krever heving under siste linje.
Den oppgitte koden vil opprette en spesiell VBS-fil som vil starte den på nytt hvis den ikke kjører som administrator. Så hvis du starter den med begrensede tillatelser, vil du få en UAC-forespørsel som ber deg om å heve privilegiene før den kjører kommandoene sine!
Slik ser det ut i Windows 10:
Kreditt for denne koden går til Matt.