Arbitrary PowerShell Expressions

Main Menu

PowerShell and Windows Server 8

Today the Microsoft Server and Cloud Platform Blog, had a post about Server Core (and PowerShell’s role) included in Windows Server 8. Last week the Building Windows 8 blog had a post that had a PowerShell focus as well. While the Building Windows 8 blog has focused more on the client and consumer side of things, the Server and Cloud blog has highlighted more of the new back-end features. If last weeks post was the left hook, today’s was the upper cut.

To echo what I posted last week in PowerShell and Windows 8. This is the time to learn PowerShell. The quote that really stuck out to me in the sever post was the following (emphasis mine):

When the graphical user interface is not available, command line installation and administration is the preferred solution for management. Consider deploying PowerShell cmdlets to enable the configuration and control of your application’s services. PowerShell cmdlets inherently support remote invocation, which makes it possible for administrators to configure services remotely and in bulk.

It is the final statement that is the kicker. Unless your the IT guy in a small business you are increasingly going to be dealing “in bulk”.

The nature of the Internet today, the ubiquitous devices, and their attendant access has set peoples expectations. You yourself might not have responsibility for a server farm of internet facing systems. However it is highly likely that you will be responsible for a down stream system. Yours will be expected to deliver data or services upstream. Just as those upstream are expected to deliver to their end users, reliably and forthwith. Their “bulk” today, will translate into your “bulk” tomorrow, if it has not already.

PowerShell is the only,and best, way to handle the “bulk” in your organization. In fact just a couple months ago I was tasked with setting up a new web farm. The farm itself was small, about a dozen or so systems, however the PowerShell that I created for the task completed the job in minutes. Literally, it took less than 5 minutes to go from fresh Windows 2008R2 base to; installing IIS, creating and configuring web sites, the app pools, setting file permissions, copying app content, and starting all the necessary bits. Nothing to very nearly production in 5 minutes. Granted it did take time to test and develop the scripts necessary to do that, but I’ve since deployed additional sets of servers with the same scripts, thereby establishing that everything is consistent and identical. I have spent enough time in MMC snap-ins over the years to know I do not want to go back.

I’m sure I am speaking mostly to the choir on this but PowerShell is not be feared, it is your friend. Learn it. By the way 95% of those scripts I wrote for my server deployment were accomplished using the WebAdministration module that comes with 2008R2 and the IIS role. That combined with PowerShell remoting and viola! No programming necessary.