Windows – How to provide sufficient permissions to the context menu entries of nVidia Control Panel in Win10

nvidia-graphics-cardpermissionsuacwindows 10

Preamble:

The internet is flooded with variants of this question (as are nVidia's support forums), but only workarounds can be found – most people seem to actually have the issue that they wish to use one graphics processor all the time but another is used by the system all the time. The proper solution to that is, of course, to create a profile for the program in the nVidia Control Panel and set it to use the desired graphics processor all the time.

My own use case is however indeed that I want to start a program with one graphics processor, then the next, then the first, etc. pp. . Being able to use this context menu is pretty vital to not waste a lot of time on

  1. tab to nVidia Control Panel
  2. select other graphics processor
  3. save profile
  4. tab back to Windows Explorer

Only solution I could find that actually works is to disable UAC completely. Well, how about no.


Problem:

The nVidia Control Panel offers the option to add a context submenu to the menu opened when right-clicking on an executable. This submenu contains an entry for each installed graphics device on the computer, allowing to select a non-standard device for exactly one start of the program.

Activating the graphics processor context menu in german

In Win7 this worked well for all programs, compatibility settings, "Run as Administrator", etc. all irrelevant (though I do not recall whether I had changed something about my old Win7 setup; mayhap UAC was off).

In Windows 10 Professional, using nVidia Control Panel 8.1.1000.0, choosing any option (including the default) within this context submenu produces the following fault on a target executable set to run in WinXP SP3 compatibility mode:

Lacking permissions in english

It does work on an executable without compatibility mode settings.

From what I have garnered, the issue here is that the WinXP compatibility modes imply "Run as Administrator", whereas the nVidia Control Panel is run as normal user if accessed via this context submenu.

I might be mistaken though.

Even if not: how may I elevate its permissions if accessed in such a way?

Best Answer

In Windows 10 you can tweak how UAC works with the Group Policy Objects without completely disabling it.

There are a few relevent settings for your case. For a complete list of UAC GPO's you can go to this page: https://technet.microsoft.com/en-us/itpro/windows/keep-secure/user-account-control-group-policy-and-registry-key-settings

What is probably breaking your menu is the "admin approval mode". I have had problems with this in the past.I'm taking into account that you are using the default UAC options for now. Here are the steps you can try to fix this:

  1. Change the User Account Control: Behavior of the elevation prompt for administrators in Admin Approval Mode setting to "Elevate without prompting"
  2. Change: User Account Control: Only elevate UIAccess applications that are installed in secure locations to "Disabled"
  3. In case the other 2 don't work, you can try changing: User Account Control: Switch to the secure desktop when prompting for elevation to "disabled"

To access the Group Policies, you can type GPEDIT.EXE in the run dialog and it will pop-up. You can then navigate to:

  • Local Computer Policy
  • Computer Configuration
  • Windows Settings
  • Security Settings
  • Local Policies
  • Security Options

Note 1: These will in fact change how UAC behaves. It will not completely disable it like you would from the normal UAC menu, but will make it so that it is a little less secure. It really boils down to what you want to accept for UAC compared to the lost functionality of running your context menu.

Note 2: If you are on a domain, the domain GPO's will probably override these settings.

Related Question