When running an executable, Windows Vista (and later) performs several checks regarding the rights of the current user via the UAC mechanism (User Account Control).
The UAC mechanism is used to make sure that an application does not exploit the privileges of a user without his knowledge: each application is started with the least necessary rights. When running an executable, the system tries to assess the rights required by the application. For example, the system detects that the application requires Administrator rights if the executable name contains "setup" or "install".
If the system establishes that the application requires specific rights, requiring to be administrator, the UAC is triggered:
- If the user is administrator, Windows Vista (and later) asks for a confirmation.
- If the user is not administrator, Windows Vista (and later) asks for the administrator password.
This validation is requested whenever the executable is run.
If an application is intended to be used in Vista (and later), you must check the operations performed by the application in order to define the requested level of rights. To specify the requested level of rights, all you have to do is include a manifest in your executable. The manifest is used to run the executable with the requested level of rights.
You also have the ability to sign the executable. In this case, the window displayed by the UAC mechanism changes color.
Reminder: If the executable must be signed, specify the certificate to use. This certificate must be found in the Windows store (more precisely in the user store and not in the computer store). The signature standard used is PKCS7.
This signature is used to:
- make sure that the executable was not modified since its generation.
- display the editor name in the Windows download window.
: The executable creation is performed by expanding the
icon and by selecting "Generate the 32-bit Windows executable (.exe)" or "Generate the 64-bit Windows executable (.exe)".