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:
|Services MMC||mmc.exe services.msc|
|Device Manager||mmc.exe devmgmt.msc|
|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:
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:
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.