I came across a brilliant tip on how to run programs elevated without getting the User Account Control (UAC) prompt, in the Huddled Masses Blog. This can be done without turning off the UAC and hence it does not compromise system security. The trick is to create a scheduled task (with high privileges) for each program that you run frequently, and then invoke the scheduled task item manually using schtasks.exe.

Creating a Scheduled Task

1. Open Task Scheduler from Control Panel or by running the command control schedtasks from Start, Search box.

2. Right-click Task Scheduler Library category in the left, and choose New Folder

3. Name the folder as MyApps

4. Select the MyApps folder

5. In the Actions pane on the right, click Create Task…

6. Type a name for the task that you want to create.

7. Enable the option Run with highest privileges. This is an important step.

8. Select the Action tab

9. Click New

10. Click Browse… to select the program (Example: Regedit.exe) you want to run, and mention the parameters required if any, for the application. (For example, to run a .REG file, select Regedit.exe and mention the parameter as "/s filename.reg")

To run Services MMC applet, browse and select MMC.EXE and type services.msc in the Add arguments (optional) field.

Some of the programs that I use frequently are:

Application Command-line used
Services MMC mmc.exe services.msc
Device Manager mmc.exe devmgmt.msc
Registry Editor c:\windows\regedit.exe
Admin Command Prompt c:\windows\system32\cmd.exe
Visual Studio %programfiles% \ microsoft visual studio 8 \ common7 \ ide \ devenv.exe

Launching a Scheduled Task item manually

To run a scheduled task item manually, use the schtasks.exe command-line tool that comes with Windows. For example, to launch the Services console task that you already created, use the following command:

SCHTASKS.EXE /RUN /TN SERVICESMMC

Note: Where SERVICESMMC is the Taskname (see Fig 1). You’ll need to enclose the task name within double-quotes if the task name contains blank spaces in between. (Example: SCHTASKS.EXE /RUN /TN "Name of the Task")

To launch the Registry Editor task, run the following command:

SCHTASKS.EXE /RUN /TN REGEDIT

Creating Shortcuts to run each Task

You can create a Desktop shortcut for each scheduled task item you’ve created earlier. Right-click on the Desktop and choose New, Shortcut. Type the command-line (say, SCHTASKS.EXE /RUN /TN REGEDIT). Mention a name for the shortcut and click Finish.

Run the task minimized

As Schtasks.exe is a console utility, you’ll see the Command Prompt window opening and closing quickly whenever you run the shortcut. So, you may configure the shortcut to run in a minimized window state, in the the shortcut properties.

  • Right-click on the shortcut and click Properties.
  • In the Run drop-down options, choose Minimized
  • Click OK.

Note: In the shortcut properties, you may want to click Change Icon and assign appropriate icon for the shortcut. The icons should be present inside the executable itself, in most cases. For Regedit.exe, browse to Regedit.exe and choose an icon. You may also browse the shell32.dll and imageres.dll files for additional icons.

Editor’s Note: Here are the shortcuts that I created to launch frequently used programs in my system, and I’ve moved them to the Quick Launch Toolbar for easy access. Note that you can also Pin the shortcuts to the Start menu if you wish.

This way you can launch your frequent programs elevated, without getting the User Account Control prompt and without relaxing the security settings in your computer.

Bookmark this Page!

BlinkList | del.icio.us | Digg it | Furl | reddit | Spurl | StumbleUpon |

Related Posts


Email SubscriptionPrefer an E-mail subscription?

Enter your email address:

Delivered by FeedBurner

3 Responses to “How to Run Programs Elevated Without Getting the UAC Prompt” Subscribe to comments!

  1. Erick
    said this on Thursday, November 12th 2009 8:29 am

    Hey RT,

    I tried doing this for regular users on my laptop for a certain program, however I couldn’t managed to make it work.

    I tried checking on the task log, it says that the instance is already running, however I couldn’t find any instance of the program on my computer (i also checked via task manager).

    Do you have any suggestion or tips for me?

    Thanks.

  2. Tim
    said this on Monday, October 12th 2009 11:35 pm

    Thanks for that extra tip RT, and for the original article Ramesh. I’m using this on Windows 7, pinning the schtasks shortcut to the taskbar for easy access. I find that the spawned processes show up under a different taskbar icon.

    Some research has shown that this is because schtasks.exe has a different AppUserModelID than e.g. Visual Studio. I have been unable to find a way to change this. It does not appear to be possible to retrieve a system-generated AppId, which I suspect is happening for VS, having been developed prior to Win 7. Setting IsHostApp in HKCR/Applications/schtasks.exe appears to have no effect.

    Anyone solved this problem?

  3. RT
    said this on Saturday, October 3rd 2009 8:01 pm

    Hello,
    This tip will also work in Windows 7, provided you give the full path to the scheduled task, e.g. SCHTASKS.EXE /Run /TN “My Tasks\Regedit”

Leave a Reply