Quote:
But should it be turned off?
Hmmm... No. Yes. No. Errr...
To put it as simply as I can: the UAC is there to cover your back. Unfortunately it does so at the expense of your own freedom, i.e.; by severely limiting what you (or, in this case, your applications) can and cannot do. How much of this you are willing to put up with for your own protection is really up to you.
Personally I think the current implementation of the UAC in Vista is pretty much brain damaged. With it enabled, you will find that a LOT of your applications will fail to run properly on Vista or even not at all.
Before Vista, logging in as the Admin meant all the applications you run had Admin rights as well, and therefore could do anything they damn well pleased. In Vista, this is no longer true: all applications run in 'normal' privilege mode, which means they are NOT able to do stuff reserved for Admins such as changing the system time, deleting stuff from Program Files, writing to the HKLM branch of the Windows Registry, etc..., UNLESS they explicitly request to be elevated to Admin privileges. This permission can only be given by the user, so, when an application requests to be elevated, you get the UAC prompt.
So far so good, since this, in theory, would prevent malware from
silently taking over your system. But there are LOTS of problems with the current MS approach at enforcing this level of security, because too many small, at first sight innocuous, actions require Admin privileges.
For instance, you can not change the clock/time without Admin privileges. An application cannot change nor delete stuff from
it's own folder under Program Files. An application running at admin privilege level is blocked from receiving input by applications running at lower privilege levels. Worse, there is NO mechanism to lower your own privilege level once it has been elevated: an application cannot ask for Admin privileges, do its stuff, and then fall back to the normal privilege level (or vice-versa, for that matter). Applications launched by another ALWAYS inherit the parent's privilege level - they can request to go higher, but NOT lower. Applications that require admin privileges (and would thus generate a UAC prompt) are BLOCKED from running at system startup.
What does this mean in practice, giving real life examples?
For the Clock module in Winstep Xtreme to sync the time with the Atomic time servers on the Internet, it needs admin privileges. Same thing for something as stupid as getting info on how much CPU percentage is being used by each process (CPU Meter). Themes are stored in the \Program Files\Winstep\Themes\ folder - without admin privileges, Xtreme is not able to change theme settings files there, nor save *any* info to its own folder. The NextSTART taskbar is perfectly capable of minimizing, restoring, etc, windows of applications running at normal privilege levels (Explorer runs at this level, by the way) but it CANNOT TOUCH windows of applications running at higher privilege levels (such as minimized UAC prompts!).
Undoubtedly other problems will surface as more testing is done with Winstep Xtreme running under Windows Vista, but these are enough to understand the issues...
According to the above, it would make sense to run Winstep Xtreme with admin privileges from the get go, right? Wrong! And wrong for several reasons:
Xtreme needs to run at system startup. Since all applications that require admin privileges to run are blocked at startup, this would obviously not work. Xtreme cannot start itself with normal privilege levels and then later ask to be elevated either, simply because applications cannot change their own privilege level after launch.
But there is more: an application running with high privileges cannot receive input from lower privilege applications (such as Explorer). With Xtreme running with admin privileges, this would result in gems such as you being unable to drag & drop files from Explorer to Xtreme!!!
Furthermore, since there is no mechanism in Vista to 'mark' an application so the user doesn't get the UAC prompt every time they run it (as you can do with Firewalls and programs attempting to access the Internet) this would also mean that the user would get a UAC prompt every time they tried to run Winstep Xtreme. Not good for a suite of applications designed to be running every time you start Windows!
So, since given the above it is a bad idea for Winstep Xtreme to require admin privileges, ANY actions performed by Xtreme that require admin privileges will have to be done by launching a separate application with elevated privileges. Little things like the clock module synchronizing the system time will now present the user with a UAC prompt.
For the NextSTART taskbar to drive input to other applications, regardless of their privilege level, Xtreme executables MUST be digitally signed (which means Winstep must purchase a certificate from Microsoft every year, good for them!) AND Xtreme MUST be installed in a trusted location like c:\Program Files\ (the user will no longer be able to install Xtreme where they please on their hard drive).
Furthermore, since files in the Winstep folder inside \Program Files\ are now read-only to Xtreme, this means all themes and any user changeable data must be stored somewhere else, like in a sub-folder of 'My Documents' or 'Application Data'. The problem is that the 'My Documents' folder is a per-user folder (log in as another user and all your downloaded themes are 'gone'). On the other hand, the 'Application Data' folder is hidden from the user, so he can't just open the folder and browse his theme files without first changing some settings in Explorer.
These are just a few of the problems Winstep is working on resolving so Winstep Xtreme has full functionality under Windows Vista this Spring. It should be enough to give you an idea of the mess Microsoft managed to create with their half baked UAC.
As it currently is, Winstep Xtreme runs correctly under Windows Vista, but with some problems here and there as some of you have already noticed.