Windows Vista and Windows 7 have a feature called UAC, which stands for User Account Control. It’s a good idea – programs can’t touch certain files or take certain actions unless you, the user, explicitly grant them administrative privileges. Sounds useful!
To get to the point of this article, as much as UAC is a good idea, it can be very annoying sometimes. Say you want to edit a config file in C:\Program Files\MyApp with Notepad++, your favourite text editor. Normally you’d right click on the file and click “Edit Notepad++” in the context menu. This won’t work in Program Files, though, as it’s a restricted folder. You need to launch Notepad++ with admin rights before you can open your file. (You might be able to read the file without admin rights, but you certainly won’t be able to save your changes!)
Or say you want to do something nifty from the command prompt. In Linux, you’d preface your command with
sudo and enter your password when prompted. In Windows, you can’t do that. You need to launch your command prompt with elevated privileges, like so:
That’s: Start -> type “cmd” -> right click -> Run as administrator. Easy.
There’s an obvious downside to this, of course. In Linux you can elevate a single command and then return to being a limited user, all from the same shell. In Windows, though, your command prompt has to be elevated from start to finish. It’s the product of two different cultures. In the Linux world, the command line is king. Everything can be done from it, and it’s usually the best way of doing things. Windows expects you to work with the GUI, though, only dipping into command line mode when you absolutely have to. The GUI has almost everything you need, and you only use the command line for brief periods of time to do obscure things, generally. From that point of view, it makes sense to not have added the ability to elevate commands from within cmd, because you’re not expected to work like that. Completely understandable, but still a shame. Not to mention the source of a lot of nerdrage