Pages

3.25.2012

How to Run a Startup Program with Admin Privileges

I share a love-hate relationship with Windows’ User Account Control (aka UAC). According to Microsoft, UAC is supposed to add an extra layer of security for system files, and therefore minimizing the damage malware can inflict on infected hosts. From a security standpoint, this is indeed very good, but unfortunately it can sometimes interfere with the way certain programs run.

Not too long ago, I decided to re-enable UAC on all my pc’s (I initially had it disabled because of the constant and annoying prompts!!) and came across a bug. Long story short, I had Anvir Task Manager running on one of my older laptops, but after enabling UAC, Anvir’s temperature monitor tray icon stopped working properly. It just would not show the temperature when Anvir was set to run on startup (on a manual start, everything works but I would have to confirm a UAC prompt). I eventually found that the reason this was happening was because Anvir needed to run with admin privileges in order to work properly. My guess is that Anvir’s method of checking the motherboard’s temperature requires elevated permissions to work. So we need a way of getting the program to run on startup, but with elevated privileges. Fortunately, there is a clever workaround to bypass UAC using Windows’ own Task Scheduler.

The Ingenious Workaround

1. Fire up Task Scheduler. Then at the menu, go to Action > Create Task…
You will be met with the following:
2. Feel free to fill out the Name and Description area, but the key here is to make sure the Run with highest privileges option is checked off.

3. Go to the Triggers tab, and click New…
Make sure it is set to start At log on as noted above. I also set it to delay the task for 10 seconds so not to clog up my system at startup (optional).

4. Go to the Actions tab, and click New…
Set Action to Start a program and the next two entries will depend on your program’s information. You need to enter the path of your program in the first form, followed by an argument in the second form. This information can easily be found using utilities such as CCleaner under Tools > Startup > File section. Or you can even use Microsoft’s own msconfig, after which you would have to look in Startup tab > Command section. You should see the path of your startup program, followed by a space and an argument command. For example, my program’s argument is Minimized, which sets Anvir to start minimized in the system tray.

5. You should be good to go now, but for further customization (optional), visit the Conditions and Settings tab.

The cool part about this trick is that even though you are granting admin privileges to your startup program, the dreaded UAC prompt will not appear. Winning! Now our programs and UAC can finally live in harmony.

2 comments:

  1. PCbasics5/23/2012

    Did WiredHut die? .... just checking up :)

    ReplyDelete
  2. @PCbasics: No, the blog was in hibernation... but new post coming up over the weekend!

    ReplyDelete