To run a script on newer windows version with UAC enabled you can use the following wrapper:
::::::::::::::::::::::::::::::::::::::::: :: Automatically check & get admin rights ::::::::::::::::::::::::::::::::::::::::: @echo off CLS ECHO. ECHO ============================= ECHO Running Admin shell ECHO ============================= :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 ************************************** setlocal DisableDelayedExpansion set "batchPath=%~0" setlocal EnableDelayedExpansion ECHO Set UAC = CreateObject^("Shell.Application"^) > "%temp%\OEgetPrivileges.vbs" ECHO args = "ELEV " >> "%temp%\OEgetPrivileges.vbs" ECHO For Each strArg in WScript.Arguments >> "%temp%\OEgetPrivileges.vbs" ECHO args = args ^& strArg ^& " " >> "%temp%\OEgetPrivileges.vbs" ECHO Next >> "%temp%\OEgetPrivileges.vbs" ECHO UAC.ShellExecute "!batchPath!", args, "", "runas", 1 >> "%temp%\OEgetPrivileges.vbs" "%SystemRoot%\System32\WScript.exe" "%temp%\OEgetPrivileges.vbs" %* exit /B :gotPrivileges if '%1'=='ELEV' shift /1 setlocal & pushd . cd /d %~dp0 :::::::::::::::::::::::::::: ::START :::::::::::::::::::::::::::: REM Run shell as admin (example) - put here code as you like ECHO Arguments: %1 %2 %3 %4 %5 %6 %7 %8 %9 C:\WINDOWS\system32\cmd.exe /c ""C:\Program Files\Git\usr\bin\sh.exe" --login -i /d/tools/restarttomcat.sh"