Changing Requested Execution Level for a LabVIEW Executable

To allow a LabVIEW executable running under a standard user account (which is the way most applications should execute) elevated privileges requires updating the manifest embedded in the LabVIEW executable. The manifest is built with the default level of ”asInvoker” which means the application will start with the same privileges as the user account that launches the application. To use higher privileges the manifest file must be extracted from the exe, the requestedExecutionLevel must be set to highestAvailable or, if the application always requires administrator privileges, requireAdministrator, and the manifest must be re-embedded in the exe. This is all accomplished with the Manifest Tool (mt.exe) which ships as part of the Windows SDK. The tool is not difficult to use but the command syntax can a be a little hard to remember.

Manifest Tool Command Interface

Typical LabVIEW Manifest

The Manifest Tool is a wrapper around the mt.exe tool that makes it more convenient to use from LabVIEW. Typically, I include the Main.vi of this toolkit in a post-build VI called by the application builder so new builds always have the updated manifest required.

Note: mt.exe is part of the Windows SDK and must be obtained from a Microsoft source. It can be downloaded as part of the Windows SDK (https://www.microsoft.com/en-us/download/) or, if your development machine has Visual Studio, there will typically be a copy somewhere in Program Files (x86) or Program Files.

The Manifest Tool expects a copy of mt.exe in its root folder to work as distributed.

Download the Manifest Tool here…