You ready? Here we go!
Recently started teaching myself to use Windows PowerShell, and weirdly enough I actually am enjoying it.
I just recently used it to make a practical IT exam go very smoothly, using an extremely basic function, so I'm already fond of it.
Yes, I'm squee-ing over a command line shell, shut up.
If you don't know what Powershell is, don't worry - I doubt if 5% of Windows users have ever heard of it, let alone tried to use it. Though it was unveiled publicly and many sys-admins love it, and it's very innovative, Microsoft has basically swept it under the rug and does not encourage users to learn it. I mean, it's old now, it's actually from 2006, but I didn't even hear about it until recently.*
Which is really Microsoft's second-biggest failing. Encouraging computer ignorance amongst typical users. For comparison, even Linux Mint (the most beginner friendly Linux distro out there) encourages new users to learn to use the command line - because, for those of you who are wondering why you'd want to learn something as "geeky" and "useless" as that, doing certain tasks from the command line can be far quicker than from the GUI. I still use the Windows CMD.exe prompt, even though it's seriously lacking compared to what I've been playing with here on Linux. Microsoft had been neglecting their CLI shell for years.
I didn't even know my Windows computer had this bizarre new shell until someone mentioned it around me and I decided to take a look - Windows incorporating a good command-line shell? Like back in the old days? And it's apparently cutting-edge and up to scratch with Unix/Linux shells? Sign me the hell up, I totally want to feel like it's 1998 again!
So, why's it bizarre? First of all, PS uses managed code, and is object-oriented rather than plain old text-oriented, using the .NET framework Microsoft has been playing with. Microsoft seems really keen on this stuff, actually...
What does this mean? Well, for one thing, the shell's "language" is very natural, if a little cumbersome at first, and once you get the hang of things it's actually intuitive to do basic things. It also means that commands in PowerShell are not limited to processing text, making it very versatile and even sort of intelligent.
A good example I saw was the piping of a simple directory listing to a command for listing file/folder settings and permissions - the output of the first command did not have this information, but PowerShell retrieved the information anyway, without needing to run another sub-process.
The most salient improvement though is: PowerShell can do whatever you can do through the GUI. Microsoft utterly eschewed this level of functionality after Win95; as most people know, Windows is a visual operating system. It can't function without a GUI, because the Windows GUI is the Windows OS. That's a pain in the ass for many reasons.
So, yeah, it can be used for advanced system administration, automation, scripting and all that crap, but it also functions as a basic command line shell. It can do everything the old command prompt can do, and much more.
Coolest thing though? Aside from Microsoft bringing back good old Edit.exe? (Nostalgia boner?)
They swallowed their pride a little. Many of the commands in PowerShell's repertoire are aliased to commands you'd be familiar with if you ever used the old command prompt, or any Unix-related shell.
Meaning you CAN type "Get-ChildItem" to get a directory listing. Or you can just say fuck it and type "ls" or "dir". You can seriously lapse into "Duhhh, what operating system am I on?" mode and still be fine. Which happened to me a few days ago when I was exhausted - typing BSD shell commands on my friend's Windows box to try and fix his WiFi. Ahem. Got there in the end.
In all seriousness, aside from being convenient, it eases the learning curve, because PS seems daunting at first. When you can transfer all the basics you know from other shells, even if you have no object-oriented programming knowledge, you pick it up quicker.
As I said, I just had a practical exam, and I used a PowerShell script to automate a process that is very simple, but a pain in the ass to do without it. It was a very basic thing, but made the exam a joke (it was already easy, but a little self-taught PowerShell defanged it totally). So that's made me a little affectionate towards it. In a kind of silly, pathetic way.
Oh... yeah. Windows 8. Rolling out soon. Ugh.
* note - I haven't paid any attention to this kind of thing since I was 14. I'm not an IT guy, despite my recent journals. My education and such went in a totally different direction for some reason, so really, I'm a newb. Don't laugh at me for being a dunce here, my field is something entirely different. Workin' on it though.
PS - yeah, yeah, I'll shut up about this stuff soon. In fact, I've got something very different lined up for my next journal. Now I think I need to go do some kind of exercise. There's a pool near here. See you when I stink of chlorine. :P