Created
August 21, 2017 19:06
-
-
Save Fastjur/85dc85d101d66ca2bf8e316d95f5b313 to your computer and use it in GitHub Desktop.
Automatically elevate a windows batch file
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
:::::::::::::::::::::::::::::::::::::::::::::::::::::: | |
:: Elevate.cmd - Version 4 | |
:: Automatically check & get admin rights | |
:: Taken from: https://stackoverflow.com/a/12264592 | |
:::::::::::::::::::::::::::::::::::::::::::::::::::::: | |
@echo off | |
CLS | |
ECHO. | |
ECHO ============================= | |
ECHO Running Admin shell | |
ECHO ============================= | |
:init | |
setlocal DisableDelayedExpansion | |
set cmdInvoke=1 | |
set winSysFolder=System32 | |
set "batchPath=%~0" | |
for %%k in (%0) do set batchName=%%~nk | |
set "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) | |
ECHO. | |
ECHO ************************************** | |
ECHO Invoking UAC for Privilege Escalation | |
ECHO ************************************** | |
ECHO Set UAC = CreateObject^("Shell.Application"^) > "%vbsGetPrivileges%" | |
ECHO args = "ELEV " >> "%vbsGetPrivileges%" | |
ECHO For Each strArg in WScript.Arguments >> "%vbsGetPrivileges%" | |
ECHO args = args ^& strArg ^& " " >> "%vbsGetPrivileges%" | |
ECHO Next >> "%vbsGetPrivileges%" | |
if '%cmdInvoke%'=='1' goto InvokeCmd | |
ECHO UAC.ShellExecute "!batchPath!", args, "", "runas", 1 >> "%vbsGetPrivileges%" | |
goto ExecElevation | |
:InvokeCmd | |
ECHO args = "/c """ + "!batchPath!" + """ " + args >> "%vbsGetPrivileges%" | |
ECHO UAC.ShellExecute "%SystemRoot%\%winSysFolder%\cmd.exe", args, "", "runas", 1 >> "%vbsGetPrivileges%" | |
:ExecElevation | |
"%SystemRoot%\%winSysFolder%\WScript.exe" "%vbsGetPrivileges%" %* | |
exit /B | |
:gotPrivileges | |
setlocal & cd /d %~dp0 | |
if '%1'=='ELEV' (del "%vbsGetPrivileges%" 1>nul 2>nul & shift /1) | |
:::::::::::::::::::::::::::: | |
::START | |
:::::::::::::::::::::::::::: | |
REM Run shell as admin (example) - put here code as you like | |
ECHO %batchName% Arguments: P1=%1 P2=%2 P3=%3 P4=%4 P5=%5 P6=%6 P7=%7 P8=%8 P9=%9 | |
cmd /k |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment