Published December 8, 2017
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.
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.
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 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.