November 15th, 2007
Windows Vista headaches part 3
I wanna talk even more about Windows Vista.
Two days ago I talked about how AutoTuning ground my networking performance to a complete halt, and how I was able to turn it off to get some networking capabilities back. And then yesterday I talked about the IPv.6 stack and how, despite its apparent superiority, I had to turn all of it off to get my home network working.
But things were not happy for long in Brian's Windows Vista land.
UAC: Ungainly And Confusing
That is not a fair title, since Windows Vista's User Access Control (UAC) is undeniably effective at locking down malicious software and users from making a mess of your data, applications, and operating system. Its iron-clad non-administrator user-based model ensures that you must grant administration privileges for copying and deleting files, running scripts, and just generally mucking around with anything that is important in your computer file system.
But it also made me pine for the happy carefree days back when Clippy was the worst irritant I experienced.
Sorry for the digression: True story from 1997: I had just finished typing at the bottom of page 39 to the top of page 40 of an API reference guide when Clippy jumped up and said, "Hi, I notice you are writing a letter, would you like some help formatting it?" (I paraphrase a little.) I thought to myself, "Yeah, right: Dear Mom, The DBExtras Interface has seventeen classes and four standalone unclassified methods. When instantiating this interface, you must pass it the handle to the DBID or the physical file location as a URI. How is Dad?"
Frequently, there were popups: Allow or Cancel this, Allow or Cancel that. There was a funny Mac advertisement on TV that turned out to be pretty close to the truth. Here is some workflow that amazed me:
I want to copy a same-named file from one computer to another. I select copy on the remote machine, then paste into the local folder.
Prompt: Confirm overwrite of this file (complete with details, lots of details). I click Paste.
Prompt: I must confirm overwrite of the file by granting Administrator permission. Luckily the user I'm logged in as is already an administrator, otherwise I'd have to supply a password!
Prompt: Some process is trying to write to the file system! Confirm that I instigated or otherwise allowed this operation. (Since when is Windows Explorer not trusted by ...erm... Windows Explorer?)
Then the file is copied.
To copy a file I needed to click OK or Allow three times ... and that was after I indicated I wanted to paste the file logged in as an administrator!
I suppose I would have gotten used to it, since it did mean that I was aware of what was going on in the background. But consider this scenario: I have a program that reads a configuration file when it starts up, and I cannot set the name of the configuration file. But I want to run this program under different configurations:
Application XYZ.EXE always loads configuration file XYZ.CONF, and you cannot specify the configuration file name. So what's the solution? I create a batch file and separate configuration files. Here is the pseudo-code:
To run the XYZ program with Configuration 1:
delete XYZ.CONF copy 1.CONF to XYZ.CONF execute XYZ.EXETo run the XYZ program with Configuration 2:
delete XYZ.CONF copy 2.CONF to XYZ.CONF execute XYZ.EXEAnd then, create shortcuts in Windows to run each little batch file. Problem solved. Right?
Well, no, not at all.
First, I tried to create the batch files in Notepad, but was told I needed to elevate my permissions. The workflow to do that sucks: First I have to right-click the Notepad executable (or link) and click Run as Administrator. Fine. If I didn't it wouldn't let me write the file (or change it afterwards).
But even after getting the batch files all written and debugged properly, running them turned out to be pointless: No matter what I did, I could not get the batch files to perform the delete and copy operations: Access Denied by UAC. Now, UAC was doing exactly what it was supposed to. It was doing it by design and doing it very well, too, I might add. How could I get this to work?
I tried taking ownership of the files, but it didn't make any difference. I tried running the batch files using the Run as Administrator command, but still no luck. I tried to set permissions for the files being written to (deleted and copied, etc.) and still it flashed "Access Denied" quickly in the fading Command Window that popped up for a microsecond. There seemed to be no way to set the shortcuts to the batch files to run as an administrator either (which is as it should be, but still I looked).
The solution is no solution at all, really: Turn off UAC. I don't like this as a solution, since it is lobotomizing my Windows security, but I need to run this program. What else could I do? The only other thing I could think of was hard-drive-wasting multiple installations of the same software, which I'm not even sure is possible.
So turn off UAC I did, however reluctantly. And I was suddenly struck by something else: I saw increased network performance! I would have expected some, but not the 10% increase that I saw! How is it that something like UAC could impact my networking throughput so significantly? My network connection went from ~20% efficiency (which is fair performance) to ~30%. I just can't imagine what UAC would be doing in the background to affect my network performance that much.
Anyhow, now that I've got it turned off, I started receiving constant irritating notifications about it. Clicking the little balloon made a window pop up with a bright red highlighted bar telling me the sky was falling and all I had to do was Click Here to make it all turn out right.
But I also found a way to turn off those notifications. See? It's all or nothing here, too. Now I won't get notifications about my firewall or updates or anti-virus settings. But if I leave it on it will nag me forever about the turned off UAC. So both UAC and all notifications will stay off.
I said this a couple of days ago:
Vista is sexy and attractive. It has an "ooh ... aah ..." factor that is undeniably why the people who like it ... er, like it.
And I realise that now that I have disabled the new TCP/IP stack to get network performance to where it needs to be, and now that I've been reluctantly forced to disable UAC and security notifications, I have hobbled my Windows Vista back to XP functionality.
The only new thing left is that "sexy and attractive" user interface. The cost of this new OS was hidden in the cost of the new computer that it came with. And I am glad of that; if I had gone out and bought this OS with the intention of upgrading, I would have been very upset by this point. This is a very personal take on it, just opinion, really, but: What's new in Windows Vista is not helpful, and what's helpful in Windows Vista is not new.
Read more rants -
- Comment on this rant - Email me