And this is why I like PowerShell. You have to understand that PowerShell is not just something you download and install; it’s a whole way for Microsoft to re-think administration. You also have to remember that the PowerShell you see today isn’t complete.
Let me take you back a few years to just before Windows 2000 came out. Back then we were all annoyed because our administrative GUI tools (which, remember, I hated even back then) all worked differently. See, even back then, we longed for consistency! So Microsoft said, okay, we’ll make the Microsoft Management Console (MMC), and it’ll make all the GUI tools consistent. And then we got the first MMC console – remember it? That’s right, it was IIS 4.0. And we thought… this is it? This is the big deal?
See, at the time, we were just looking at a little bit of the MMC. The real “promise” wasn’t delivered until Win2000, when every administrative console was in the MMC. And now they all are – a nice, consistent GUI. Well, mostly. Virtual Server 2005 didn’t use the MMC, and a lot of the MMC consoles still work pretty inconsistently. Oh, well. I hate the GUI, remember.
But that’s where we are with PowerShell. Microsoft has said, “okay, going forward, we’re going to build product administrative functionality in the form of cmdlets. All of ‘em. And it’ll all be in PowerShell.” Eventually. Today, we’ve got the core bits of PowerShell which are, admittedly, minimal. We’ve got Exchange 2007. And so PowerShell doesn’t seem all that engaging. I mean, you can’t really administer DNS with it, or DHCP, or really even Active Directory (although the community is adding this support faster than MS is). But that’s because we’re at the beginning – as more and more products shift to PowerShell-based management, it will all be consistent, all in one place, and finally we’ll have a flexible command-line environment, capable of working any way we want to, that can do everything. Yes, everything – no need for Resource Kit tools, because it’ll all be built that way from scratch.