Frustrated with UAC - Is this a reasonable solution?


New Member
So I realized the other day that my scheduled "erase free space" tasks were doing absolutely nothing, since Eraser 6 on Windows 7 was just aborting with "I don't have enough permission to do this!" all the time due to UAC and not being elevated. Deceptively, the only message displayed was "Task completed with errors" which I had become accustomed to interpreting as "I did what I could, but a few system files were stubborn" instead of realizing it wasn't trying at all.

To try to sort this out, I went into the registry, found the entry under the HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run key for eraser and deleted it.

I then went into Windows 7's task scheduler, created an "advanced" task, set it to run under my user account only when the user is logged on, told it to run with "highest permissions" (that is, elevated) then on the trigger tab set it to trigger "At log on" of my user account. On actions, I set it to start a program, "D:\PROGRA~1\Eraser\Eraser.exe" (on my system, Windows is installed on D:, not C:) with "--atRestart" in the options box. On the settings tab I unchecked all the stuff about stopping the task after 3 days or whatnot. It all seems to work. I don't even see the annoying UAC prompt appear about eraser ever, though it still gets elevated permissions. One thing I have to be careful about is that I don't ever close (instead of minimize) the Eraser window, because that ends the task and I end up with a non-elevated copy of eraser.exe the next time I erase something.

I'm wondering if the reason this isn't the default way of installing Eraser is because it causes some undesirable side effects I have not discovered. Was this way of dealing with UAC considered?
I think that, for advanced users like yourself, this could well be a viable way to run Eraser (and other utilities for that matter). It might be useful to document it, or something similar, in the Eraser manual. It would be good to know Joel's views on that.

However, I than think of one specific issue with this approach. You will not be able to drag and drop from a window running normally to an Eraser window that is running elevated. If you prefer context menu erasing, this may not be much of a problem, but users should know that the issue exists.

It is also worth pointing out that permissions are probably even more of an issue than UAC in terms of the way they constrain Eraser. Joel is hoping to loosen these constraints considerably when he finally gets round to implementing the Eraser engine as a service rather than as a process.

This is reasonable only for a single user setup. For more complex deployments, having multiple users will really defeat this method... and there's no programmatic access to the task scheduler for every single user (that I know of.)
I think that's not going to be a long-term solution. Perhaps for one corporate deployment, or for a small set of users. This cannot be for publicly-available applications, it would complicate deployment and install... just my thoughts.
Joel said:
This cannot be for publicly-available applications, it would complicate deployment and install...
I am sure Joel is right about this. Moreover, permissions (which are quite separate from UAC) create more usability issues for Eraser users than UAC as such. That is why I look forward to version 6.2, with the Eraser engine running as a Service and (hopefully) a number of these issues resolved.