Stops explorer.exe from being started with admin privilieges (#373)

master
Noah Andrews 2016-06-02 13:00:44 -04:00 committed by Jack Humbert
parent 4635b44533
commit c7005cdfcf
5 changed files with 88 additions and 46 deletions

3
.gitignore vendored
View File

@ -4,6 +4,7 @@ keyboard/planck/dfu-programmer.exe
*.eep *.eep
*.elf *.elf
*.hex *.hex
*.log
*.lss *.lss
*.lst *.lst
*.map *.map
@ -14,6 +15,8 @@ tags
build/ build/
*.bak *.bak
.vagrant/ .vagrant/
.idea/
CMakeLists.txt
.DS_STORE .DS_STORE
# Eclipse/PyCharm/Other IDE Settings # Eclipse/PyCharm/Other IDE Settings

View File

@ -2,25 +2,25 @@
@ECHO OFF @ECHO OFF
SET CMDLINERUNSTR=%SystemRoot%\system32\cmd.exe SET CMDLINERUNSTR=%SystemRoot%\system32\cmd.exe
SET NEWPATH1="C:\MinGW\msys\1.0\bin" CD UTIL
SET NEWPATH2="C:\MinGW\bin" DEL add-paths.log > NUL 2>&1
DEL add-paths-detail.log > NUL 2>&1
DEL UPDATE > NUL 2>&1
ELEVATE -wait %cd%\add-paths.bat > NUL 2>&1
:: Make sure we're running with administrator privileges
NET SESSION >nul 2>&1
IF ERRORLEVEL 1 ( IF ERRORLEVEL 1 (
ECHO FAILED. Run this script with administrator privileges. ECHO You denied admin access. Rerun the script, and be sure to press the yes button this time.
GOTO ExitBatch ) ELSE (
TYPE add-paths.log 2> NUL
) )
ECHO.
:: Make sure the second path exists. The first path won't be created until the second script is run
IF NOT EXIST !NEWPATH2! (ECHO Path not found: %NEWPATH2% && GOTO ExitBatch)
:: Add paths
CALL :AddPath %NEWPATH1%
CALL :AddPath %NEWPATH2%
:: Branch to UpdateEnv if we need to update :: Branch to UpdateEnv if we need to update
IF DEFINED UPDATE (GOTO UpdateEnv) IF EXIST UPDATE (
DEL UPDATE
GOTO UpdateEnv
)
GOTO ExitBatch GOTO ExitBatch
@ -28,9 +28,9 @@ GOTO ExitBatch
:UpdateEnv :UpdateEnv
ECHO Making updated PATH go live . . . ECHO Making updated PATH go live . . .
REG delete HKCU\Environment /F /V TEMPVAR > nul 2>&1 REG delete HKCU\Environment /F /V TEMPVAR > NUL 2>&1
setx TEMPVAR 1 > nul 2>&1 setx TEMPVAR 1 > NUL
REG delete HKCU\Environment /F /V TEMPVAR > nul 2>&1 REG delete HKCU\Environment /F /V TEMPVAR > NUL 2>&1
IF NOT !cmdcmdline! == !CMDLINERUNSTR! (CALL :KillExplorer) IF NOT !cmdcmdline! == !CMDLINERUNSTR! (CALL :KillExplorer)
GOTO ExitBatch GOTO ExitBatch
@ -43,35 +43,19 @@ EXIT /b
:: ----------------------------------------------------------------------------- :: -----------------------------------------------------------------------------
:AddPath <pathToAdd>
ECHO %PATH% | FINDSTR /C:"%~1" > nul
IF ERRORLEVEL 1 (
REG add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /f /v PATH /t REG_SZ /d "%PATH%;%~1" > nul 2>&1
IF ERRORLEVEL 0 (
ECHO Adding %1 . . . Success!
SET "PATH=%PATH%;%~1"
SET UPDATE=1
) ELSE (
ECHO Adding %1 . . . FAILED. Run this script with administrator privileges.
)
) ELSE (
ECHO Skipping %1 - Already in PATH
)
EXIT /b
:: -----------------------------------------------------------------------------
:KillExplorer :KillExplorer
ECHO Your desktop will be restarted.
ECHO Your desktop is being restarted, please wait. . . ECHO All file explorer windows except for the one you launched this script from WILL BE CLOSED.
ping -n 5 127.0.0.1 > NUL 2>&1 ECHO Press enter when ready, or close this window if you would rather do a full restart of your computer at a later time.
ECHO Killing process Explorer.exe. . . PAUSE
taskkill /f /im explorer.exe ping -n 5 127.0.0.1 > NUL 2>&1
ECHO Killing process Explorer.exe. . .
ECHO.
taskkill /f /im explorer.exe > NUL
ECHO. ECHO.
ECHO Your desktop is now loading. . . ECHO Your desktop is now loading. . .
ping -n 5 127.0.0.1 > NUL 2>&1
ECHO. ECHO.
ping -n 5 127.0.0.1 > NUL 2>&1 ping -n 5 127.0.0.1 > NUL 2>&1
START explorer.exe START explorer.exe
START explorer.exe %CD% START explorer.exe %CD%\..
EXIT /b EXIT /b

View File

@ -2,12 +2,12 @@
## Build Environment Setup ## Build Environment Setup
### Windows ### Windows (Vista and later)
1. If you have ever installed WinAVR, uninstall it. 1. If you have ever installed WinAVR, uninstall it.
2. Install [MHV AVR Tools](https://infernoembedded.com/sites/default/files/project/MHV_AVR_Tools_20131101.exe). Disable smatch, but **be sure to leave the option to add the tools to the PATH checked**. 2. Install [MHV AVR Tools](https://infernoembedded.com/sites/default/files/project/MHV_AVR_Tools_20131101.exe). Disable smatch, but **be sure to leave the option to add the tools to the PATH checked**.
3. Install [MinGW](https://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download). During installation, uncheck the option to install a graphical user interface. **DO NOT change the default installation folder.** The scripts depend on the default location. 3. Install [MinGW](https://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download). During installation, uncheck the option to install a graphical user interface. **DO NOT change the default installation folder.** The scripts depend on the default location.
4. Clone this repository. [This link will download it as a zip file, which you'll need to extract.](https://github.com/jackhumbert/qmk_firmware/archive/master.zip) Open the extracted folder in Windows Explorer. 4. Clone this repository. [This link will download it as a zip file, which you'll need to extract.](https://github.com/jackhumbert/qmk_firmware/archive/master.zip) Open the extracted folder in Windows Explorer.
5. Right-click on the 1-setup-path-win batch script, select "Run as administrator", and accept the User Account Control prompt. Press the spacebar to dismiss the success message in the command prompt that pops up. 5. Double-click on the 1-setup-path-win batch script to run it. You'll need to accept a User Account Control prompt. Press the spacebar to dismiss the success message in the command prompt that pops up.
6. Right-click on the 2-setup-environment-win batch script, select "Run as administrator", and accept the User Account Control prompt. This part may take a couple of minutes, and you'll need to approve a driver installation, but once it finishes, your environment is complete! 6. Right-click on the 2-setup-environment-win batch script, select "Run as administrator", and accept the User Account Control prompt. This part may take a couple of minutes, and you'll need to approve a driver installation, but once it finishes, your environment is complete!
7. Future build commands should be run from the standard Windows command prompt, which you can find by searching for "command prompt" from the start menu or start screen. Ignore the "MHV AVR Shell". 7. Future build commands should be run from the standard Windows command prompt, which you can find by searching for "command prompt" from the start menu or start screen. Ignore the "MHV AVR Shell".

View File

@ -0,0 +1,25 @@
Elevate was downloaded from [here](https://jpassing.com/2007/12/08/launch-elevated-processes-from-the-command-line/).
### LICENSE
The MIT License (MIT)
Copyright (c) <year> <copyright holders>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

30
util/add-paths.bat 100644
View File

@ -0,0 +1,30 @@
@SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
@ECHO off
SET NEWPATH1="C:\MinGW\msys\1.0\bin"
SET NEWPATH2="C:\MinGW\bin"
CD %~dp0
ECHO. > add-paths.log
CALL :AddPath %NEWPATH1%
CALL :AddPath %NEWPATH2%
EXIT /b
:AddPath <pathToAdd>
ECHO %PATH% | FINDSTR /C:"%~1" > nul
IF ERRORLEVEL 1 (
REG add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /f /v PATH /t REG_SZ /d "%PATH%;%~1" >> add-paths-detail.log
IF ERRORLEVEL 0 (
ECHO Adding %1 . . . Success! >> add-paths.log
SET "PATH=%PATH%;%~1"
COPY NUL UPDATE
) ELSE (
ECHO Adding %1 . . . FAILED. Run this script with administrator privileges. >> add-paths.log
)
) ELSE (
ECHO Skipping %1 - Already in PATH >> add-paths.log
)
EXIT /b