What can trigger a UAC prompt on an executable

uacwindows 7windows-server-2003

I have a workstation on a domain that's displaying the UAC (User Account Control) prompt for executing a program and I can't figure out why (I don't want it running with administrator privileges).

It's a Windows 7 workstation and Windows Server 2003. None of the other workstations are exhibiting this symptom (logging in with the same user account). The EXE file is on a mapped network drive. In the shortcut's Compatibility properties, the "Run this program as an administrator" is NOT checked. There's no manifest on the application requesting administrative privileges (and none of the other workstation are getting prompted).

What other Windows settings can trigger the UAC prompt for an executable?

Best Answer

There seems to be a Windows internal list of programs that require the UAC dialog, even though they don't have a manifest. It is not very transparent, how exactly Windows goes about determining, if a given executable should always display the UAC dialog on startup.

I stumbled over this with the Bitstream Font Navigator, which comes together with CorelDraw. If I just rename the FontNav.exe to FontNav1.exe, starting it no longer displays the UAC dialog. Windows is using more information than just the file name however, renaming another exe without manifest to FontNav.exe did not bring out the UAC.

The way I see it you have two options:

  1. You can just rename the exe and deploy it as it is
  2. You can add a manifest to the executable (using the mt.exe tool, see the bottom if this MSDN article), specifying the following behaviour:
    • asInvoker — Never displays the UAC dialog
    • highestAvailable — Displays the UAC dialog for members of the admin group. Regular users get no dialog, they always start the application with user rights
    • requireAdministrator — UAC dialog is always displayed

When going for the manifest option, asInvoker would be my choice.