Blogshit

Nice blog where can I subscribe

Force a program to run as non-administrator even if it has the requireAdministrator flag set on Windows7/8/10

18 February 2016

A pet peeve of mine is programs that want to run using administrator rights even though there’s no need for them to. This is usually caused by the developer of the application being a retard and setting the requireAdministrator flag in the program manifest. In most cases this is completely unnecessary, a security issue, and most importantly causes annoyances such as push-to-talk not working for VoIP programs running in the background when the game window is in focus.

Windows has no easy way of blocking this, but there are a number of hidden ways. Here’s a couple of them:

1) A batch script that invokes the program using a special flag. Save the following as runasuser.bat or something:

set __COMPAT_LAYER=RunAsInvoker
start "" "%~dpnx1"</code></pre>

Then either drag-and-drop the executable you want to run as user on top of this .bat file, or open Windows Explorer and type shell:sendto in the address bar and put the .bat in this folder. Then you can right-click the executable, and select the .bat file under “Send to” to run it as user.

2) A registry edit that adds a context menu option for this (courtesy of this SuperUser thread):

Save this as a .reg file, then run it. You should now see “Run without admin rights (UAC)” in the right-click dialog menu of executable files.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\forcerunasinvoker]
@="Run without admin rights (UAC)"

[HKEY_CLASSES_ROOT\*\shell\forcerunasinvoker\command]
@="cmd /min /C \"set __COMPAT_LAYER=RUNASINVOKER && start \"\" \"%1\"\""

3) Use a tool like Resource Hacker to manually change the requireAdministrator flag from the program manifest to asInvoker. I can’t be arsed to document this right now because you really should just use the above two methods.

Home