With a VBScript you can use the WScript object to check the state of a script and force it to load as elevated. Since the WScript object cannot be used in an HTA script, you cannot perform this same function. However, I have found a work around for this. You can use the ShellExecute method to launch an individual command in an elevated state.
When you use ShellExecute you can enter “runas” for the Operation parameter, it will force the command to execute in an elevated state. This is the equivalent to right-clicking on a file and choosing “Run as administrator.”
In the example below you can see how this can be used to execute an elevated command prompt window.
ShellExecute “cmd.exe”, “”, “”, “runas”, 1 |
Here is another example where it will launch an elevated command prompt and perform a DNS flush
ShellExecute “cmd.exe”, “/c ipconfig /flushdns”, “”, “runas”, 1 |
Of course this is not restricted to command prompts. You can use it to launch any application. The syntax for ShellExecute execute is:
ShellExecute “File”, “Arguments”, “Directory”, “Operation”, Show
Just remember to enter “runas” for the Operation parameter.
Below is an example of what a complete HTA script would look like with the previous two examples added.
<html><head><title>Elevated Command</title> <HTA:APPLICATION APPLICATIONNAME=”Elevated Command” ID=”ElevatedCommand” SCROLL=”no” SINGLEINSTANCE=”yes”/> </head> <SCRIPT Language=“VBScript”> Set objShell = CreateObject(“Shell.Application”)Sub Window_Onload window.resizeTo 360,360End Sub Sub RunCMD objShell.ShellExecute “cmd.exe”, “”, “”, “runas”, 1End SubSub RunFlush objShell.ShellExecute “cmd.exe”, “/c ipconfig /flushdns”, “”, “runas”, 1End Sub</SCRIPT> <body bgcolor=“buttonface”><center><p><font face=“verdana” color=“red”>Elevated Command</font></p>If you do not have local administrator permissions, you will be prompted to supply them. This must be run as a local administrator. <p><input id=runbutton class=“button” type=“button” value=“Launch Elevated CMD” name=“db_button” onClick=“RunCMD”><p><input id=runbutton class=“button” type=“button” value=“Flush DNS” name=“db_button” onClick=“RunFlush”><p></center></body></html> |
For more information on the ShellExecute method refer to MSDN – http://msdn.microsoft.com/en-us/library/windows/desktop/bb774148(v=vs.85).aspx