Sådan hæver du automatisk en batchfil for at køre den som administrator
Nogle gange skal du oprette en batch-fil, som indeholder kommandoer, der kræver forhøjede rettigheder. På grund af UAC-funktionen inkluderet i Windows siden Windows Vista, åbnes den uden at starte en batchfil de nødvendige adgangsrettigheder, medmindre du højreklikker på det og vælger "Kør som administrator" fra konteksten menu. Her er, hvordan du kan oprette en batch-fil, som automatisk løfter sig selv.
Reklame
Før du fortsætter, se hvordan man tilføjer batchfil (*.bat) til Ny menu i File Explorer. Placer følgende indhold i begyndelsen af din batchfil:
:: Kontroller og få automatisk administratorrettigheder V2. @ekko slukket. CLS. EKKO. ECHO ECHO Running Admin shell. ECHO :init. setlocal DisableDelayedExpansion. sæt "batchPath=%~0" for %%k i (%0) skal du indstille batchName=%%~nk. sæt "vbsGetPrivileges=%temp%\OEgetPriv_%batchName%vbs" setlocal EnableDelayedExpansion :checkPrivileges. NET FIL 1>NUL 2>NUL. if '%errorlevel%' == '0' (goto gotPrivileges) else (goto getPrivileges):getPrivileges. hvis '%1'=='ELEV' (ekko ELEV & skift /1 & goto gotPrivileges) EKKO. EKKO ************************************** ECHO påberåber UAC for Privilege Escalation. ECHO ************************************** ECHO Set UAC = CreateObject^("Shell. Applikation"^) > "%vbsGetPrivileges%" ECHO args = "ELEV " >> "%vbsGetPrivileges%" EKKO for hver strArg i WScript. Argumenter >> "%vbsGetPrivileges%" ECHO args = args ^& strArg ^& " " >> "%vbsGetPrivileges%" ECHO Næste >> "%vbsGetPrivileges%" ECHO UAC.ShellExecute "!batchPath!", args, "", "runas", 1 >> "%vbsGetPrivileges%" "%SystemRoot%\System32\WScript.exe" "%vbsGetPrivileges%" %* exit /B :gotPrivileges. sæt lokalt & skubbet. cd /d %~dp0. if '%1'=='ELEV' (del "%vbsGetPrivileges%" 1>nul 2>nul & shift /1) ::START. REM Kør shell som admin (eksempel) - indsæt kode her, som du vil. ECHO %batchName% Argumenter: %1 %2 %3 %4 %5 %6 %7 %8 %9.
Placer dine egne batch-kommandoer, som kræver elevation under den sidste linje.
Den medfølgende kode vil oprette en speciel VBS-fil, som genstarter den, hvis den ikke kører som administrator. Så hvis du starter den med begrænsede tilladelser, vil du få en UAC-prompt, der beder dig om at hæve privilegier, før den kører sine kommandoer!
Sådan ser det ud i Windows 10:
Credits for denne kode går til Matt.