Start programs elevated from a batch file

If you use batch files to automate tasks on a Windows 8, 7 or Vista computer, you have probably encountered situations when you needed to start a program elevated (a.k.a. as administrator). For example, if you want to share a folder automatically from a batch file, you would use the net share command. However, unlike many other programs that ask for the administrator’s approval, net share does not do that and simply returns the error code 5 (“access denied”) if it was started by a standard user. How to force that program to start elevated from a batch file?

Password-protect and hide personal files and folders with Folder Guard for Windows 8,7,Vista, and XP.
User rating: 4.7/5

Or download a free trial. Read more…

That’s the purpose of the Elevate utility that we’ve created to solve such a problem. Download the Zip file, uncompress it, and inside you should find two files: Elevate.exe and Elevate64.exe. (The latter is a native 64-bit compilation, if you require that, although the regular 32-bit version, Elevate.exe, should work fine with both the 32- and 64-bit versions of Windows).

Copy the file Elevate.exe into a folder where Windows can always find it (such as C:/Windows). To use it in a batch file, just prepend the command you want to execute as administrator with the elevate command, like this:

  elevate net share ...

and it should run the command net share as administrator. Of course, it does not relieve the administrator from the duty to approve the request (unless you have enabled the quiet mode of UAC or disabled the UAC altogether).

The syntax of the Elevate command is as follows:

  elevate [-opt1] [-opt2...] [path\]file[.exe] [param1 [param2...]]

Where -optN can be one of the following:

  -?         - Display the help screen and exit
  -info      - Open the web page with more information (the web page you are reading now!) and exit
  -wait4idle - Wait for the target process to initialize before returning
  -wait4exit - Wait for the target process to finish before returning
  -noui      - Don't display any messages, even if an error occurs

After the options, the following arguments should be entered:

  file       - The file name of the program to launch elevated
  paramN     - Optional parameters (as expected by the program being launched)

For example, if for some reason you want to run Notepad as administrator, and continue only after you exit Notepad, you would use a command like this:
  elevate   -wait4exit   notepad

If you use the elevate command while being logged in to Windows as a user that does not have a split token, that is as a non-administrator or a guest user, it will ask for the administrator’s password to continue. If you use it as the true administrator (that is, if UAC is disabled, or it you’ve launched the batch file itself as administrator), then no administrator’s approval would be required and it would launch the program as usual.

See what other programs are doing to your files, folders, and registry settings with SoftDetective for Windows 8,7,Vista, and XP.

Or download a free trial. Read more…

Can Elevate.exe be used on a Windows XP or Windows 2000 computer, even though they do not have UAC or users with the split tokens? Yes, it can! In such a case, if the batch file is executed by the administrator, then Elevate.exe runs the program as usual, without requiring any additional approval. If run by a restricted user, Elevate.exe has the same effect as the Run As command of Windows XP/2000: it gives the user an option to enter a different user’s credentials to lunch the program.

The return code of the elevate command depends on the result of its execution and whether you have specified the -wait4exit option or not. If the -wait4exit option is NOT specified, then elevate returns code 0 if it started the target process successfully, or an error code as reported by Windows. For example, if Windows could not find the target file, it usually returns code 2. If the file was found, but the administrator did not approve the request to start the program elevated, the return code is 5. And so on.

However, if you have specified the -wait4exit option on the command line, then if the target process was started successfully, the elevate command would wait for it to finish and return the exit code from that process. The returned value in such a case depends on the program being launched be the elevate command. As with other commands, you can access the return code in a batch file via the ERRORLEVEL variable.

It’s FREE. For Windows 2000 and later. License…

If you want to link to this article, you can use this HTML code: <a href=”http://www.winability.com/elevate/”>How to start programs elevated from a batch file</a>

Read more

Tags: , , , , ,


Comments:

  1. I was trying this call to build a Visual Studio solution from a batch file in the elevated state
    WCBuild>Elevate -wait4exit “C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.com” WinCal.sln /rebuild “Release|x86″

    It did not work. I got an error message (devenv.com in the header) stating:
    This program does not have a program associated with it for performing this action.

    I suppose this is because it is the .com extension, which is used for command line builds. Any recommendation?

  2. admin says:

    Herje: I’m not sure what to suggest, I did not try it like you did.

  3. Adam says:

    Could you give example how to run Elevate.exe via .bat file? I had to because I need to execute another file elevated right after install (which stubbornly refuse so) from a .bat that call a series of process. The program i needed to execute by elevate are in the Program File, which I use syntax similiar with the above.

    .bat file ==> call elevate.exe in C: ==> call XX in C:\Program Files

    What is the right syntax?

  4. admin says:

    Adam: please see the examples in the text. Try the one that starts Notepad. You can start another program elevated in the same way. If the program’s file is in the C:\Program Files directory, make sure to include its path into the double quotes.

  5. P says:

    Works like rock. Thank you.

Leave a Comment:

IMPORTANT! Do not put any URLs in the comment, or it will be rejected. Before submitting, please solve the following simple math problem (so we know that you are not a spambot) :-)

What is 9 - 4 ?
Please leave these fields as-is: