This is old news, but I need to rant a bit.
You’d think that downloading a file from a web site would be a simple process, but noooo, our friends at Microsoft have to make it a major effort — you have to seriously want to get that file.
Microsoft’s PowerShell looked like it might be useful for creating some administrative scripts for work, so I jumped to the download page. Since I was working from my typical workspace, I’d opened the site with Firefox (on Linux), which of course is unacceptable to Microsoft because the want to make sure you’re using genuine MS software just to download the file:
This download is available to customers running genuine Microsoft Windows. Please click the Continue button to begin Windows validation.
I should have remembered how anal they are about that. I switched over to my VM running XP, opened IE, and pasted in the link. Hmm, blank page. So I jump to the top of the download area and search for PowerShell, go to the download page, and click on the Continue button to “validate” my system.
It’s been a while since I’ve downloaded anything from MS, so I was surprised to get yet another page with a set of validation steps. To validate, I have to click yet another Continue button
- to download and run GenuineCheck.exe
- which will give me a “validation code”
- which I then have to paste into a field on the new validation page
Arrrgh! I flash on the The Daily WTF‘s wooden table meme.
You know it wasn’t that simple. I endure the download, click the “Run” button … and get told that the program is an old version and is no longer supported, and I should download the latest from MS. WTF? — after all, I just finished downloading it from MS.
Generally it’s a sign of stupidity to keep doing the same thing over and over again and expect different results, but after all, this is Windows, which has a built-in results randomizer … so I click “Continue” again … and immediately GenuineCheck runs (wheee!) and gives me a code to paste into the Step 2 field. Now I’m taken to another page where I can finally click a “Download” button and get the PowerShell installer.
Well, now I’ve got PowerShell. I eagerly (snicker) peruse the documentation. Among other things, it won’t run scripts by default (security, ya know). Great. I can either disable security, or download the .NET Framework SDK to get a certificate generator / signing utility. Even then, I can’t conveniently put scripts on other machines unless I 1) go through convolutions to install my cert on those machines, or 2) buy a cert from a “trusted third party”.
Ok, no big deal. I’ve about decided it’s not worth the effort, since I can accomplish the few things I want to do without resorting to PS — I just wanted to play with a new (to me) toy.
After glancing at the command structure, PS looks like a bastardization of bash (particularly when you consider all the included “unix” aliases, and the pseudo-drives that map into the environment (ENV:), the registry (HKLM:), and other namespaces), DCL (the regularized verb-object pattern), and a few other shells and scripting languages thrown in, with some funky syntax to glue it all together … but passing “objects” is kinda cool.
Although not directly apropos, I’m reminded of a couple aphorisms: 1) operating systems evolve to re-implement Unix, poorly; and 2) programming languages evolve to re-implement Lisp, poorly.