PowerShell Not Your Father’s Command Line Part 23 of 31: HUGE Announcements, Disagreements, Best Practices and A Party…Oh My!


083Happy Monday!  Alright this post will be a bit out of the usual, but how many times do you get tell folks you have a book and it is publicly available?  (Technically this is my second but who is counting lol 🙂   So here goes:

Available  NOW: Automating Microsoft Windows Server 2008 R2 with Windows PowerShell 2.0 

That is right I am proud to announce that Automating Microsoft Windows Server 2008 R2 with Windows PowerShell 2.0 is out (and even in electronic form), and we are elated (check out Sarah’s Post from Last week!

Sarah and I worked long and hard on the book.  The number of people to thank is long as well.  Writing a book is certainty a blessing and a lot of work.  First I cannot say thank you enough  to Sarah Dutkiewicz for being a fantastic technical editor as well as co-author, and most importantly a friend.  In a word Sarah you Rock.  I cannot wait to see you and Kevin on Friday (speaking of Friday we are having a PARTY, see below for more details).  Secondly thanks go to Dick Margulis, our developmental editor who was simply fantastic to work with and I  am pretty sure I drove to drink with all of my commas and great new features.  Thanks Dick!  Last and not least I want to thank my good friend Agatha Kim, for believing me not only for the first book, but also for the second book, you rock and have a safe move! 

A few folks have come up and asked me why did I want to write a second book and more importantly why a book on PowerShell.  The answer is pretty simple boils down to one word: awareness.  As a whole I do not think there has been enough broad communication on what PowerShell can do for the IT Pro.  More importantly I see a lot of misunderstand on what this language is and what it can do for you from an IT Pro perspective.  This is also what has been driving the 31 day posts this month.  Sarah and I wanted to take a practical approach to this great language, and if you liked the posts we feel you will love the book!  I personally believe this PowerShell is designed to make our life easier as IT Professionals.  The reason I mention this is when I saw this recent article, IT Pros are not feeling the love from Microsoft by Debra Littlejohn Shinder, it really reaffirmed my reasoning for writing the book.  It also told me there is still a lot of work to be done.  The article does make some interesting thought provoking points and if you have read the article I would love to hear from you on what your opinion is.  However, there is one part on the article I had a issue with.  In the article Mrs. Shinder makes this statement:

“For several years now, I’ve been listening to IT pros complain that Microsoft seems to be trying to turn them into programmers. They’ve felt this pressure build as deploying and managing Windows products has become more and more dependent on programming knowledge and scripting skills. Examples include the advent of Examples include the advent of PowerShell, which some IT pros refer to as “PowerHell,” and Server Core….”

As you may have imagined I was a bit surprised by this and more to the point I passionately disagree

PowerShell was designed for IT Pro’s who have ever worked with scripts at anytime.  PowerShell is an easier language to use and in a more powerful.  In fact a majority of the tasks you do in PowerShell are directly geared at working with Server administration.  For example if you take a look at the Windows Server 2008 R2 best practice analyzers (BPA’s) in PowerShell.   This is a toolset designed for the IT administrator to verify the overall configuration of the server.  To work with the BPA in PowerShell you need to load the module, and if you are going to continue working with the tool make sure you are running PowerShell as an administrative:

Import-Module BestPractices

To see what scans you can run based on the roles installed on the server run the following cmdlet:

Get-BPAModel

5-22-2011 2-07-25 PM

To run a BPA scan you will use the Invoke-BPAModel cmdlet.  Now you can do this 1 at a time, which you can do in Server Manger.  However in PowerShell you can all the BPA scans on the server at the same time (which you cannot do in Server Manager) with the following command:

Get-BPAModel | Invoke-BPAModel

After he scans are run you can view the results in Server Manager or you can use Get-BPAResult cmdlet in PowerShell to them individually you can also use Get-BPAModel | Get-BPAResult  to get all the reports at once!  You have just got to love the pipe operator “|” and how easy it is use!

PowerShell is not about turning IT Pro’s into developers, but turning IT Pro’s into more efficient and consistent IT Pro’s. If you have ever scripted anything from  batch file, Unix shell, VBScripts, WScripts, or JScripts, you have a little developer in you.  I do not care it may have taken you 10 times to write ‘Hello World’  (mine was mostly due to spelling errors).  PowerShell will make your life easier to manage and work with your infrastructure.   Eventually PowerShell will turn you into lean mean scripting machines, which in the end will turn you into better IT administrators.  I joke with my friend Bill Steele all the time about the relationship between developers and IT Pro’s.  The conversation goes like this, “without my servers you have no place for your code, and as Bill reminds me without his code I have no server”   So we really live in a symbiotic relationship and PowerShell can help us to speak the same language providing a much needed bridge for us.  The line in IT departments beteen IT Pros and developers  is no  longer a bright and shiny line, but kinda blurry. Successful IT shops are learning to break this barrier down to better get IT done..Even if this server is in the cloud, I still have to monitor and manage the server, and BTW PowerShell can do that (look for this around part 30 of this series).

To see Sarah’s thought on the article  take a look at Sarah’s post here: “Scripting – It’s Not Just for Developers!”

Get-PartyInfo –OnToTheFunStuff

Did someone say party.  Yup and if you are around May 27 and in Cleveland.  Come out and meet Sarah and myself.  All the details are here: Matt & Sarah’s Book Signing / Meet & Greet   Here is the shortened version:  We are having a PowerShell Book Signing party (so bring your books) at the Buckeye Beer Engine in Lakewood, Ohio on Friday, May 27th from 4-7 p.m. . All are welcome to attend the book signing. We will have food and a few books and authors to sign the books. We will also be giving away some swag to those who RSVP online and attend the event. If you’re interested in RSVP’ing, see:

 Matt & Sarah’s Book Signing / Meet & Greet for your ticket.

The event is FREE!  We hope you can come out and celebrate our book release, as Sarah and I will be happy to sign books and greet all who attend!

Thanks for reading and if you missed any of the previous posts you can find a master list of series postings located here: PowerShell Not Your Father’s Command Line: 31 Days of PowerShell or on Sarah’s blog here: PowerShell Not Your Father’s Command Line: 31 Days of PowerShell. Lastly Sarah and I want to hear from you email either of us with your comments or suggestions for future postings let us know, we look forward to hearing from you. Have a great day!

P.S Did I mention this  🙂 : Available NOW: Automating Microsoft Windows Server 2008 R2 with Windows PowerShell 2.0

Comments (1)

  1. Peter says:

    I think the focus on PowerShell highlights the fact that Microsoft's product development has become geared almost entirely towards large enterprises.  A small company with 1-5 servers has pretty much no use for PowerShell or lots of other things Microsoft is pushing. Microsoft gives us examples of using PowerShell like "I can write a script that lets me create 100 new users in a few seconds based on an Excel file I get from HR."  That's great, but only the largest of organizations would be adding 100 users on a regular basis. At a small company I would get a handwritten note from someone saying "This [single] person is starting on Monday, please set up an account for them."  They also say I can use PowerShell to do things like script the rollout of web servers so my entire clustered web farm is identical.  At small company, I would have a single web server so I really have no use for that functionality.

    When Exchange 2010 came out, one of the things Microsoft pushed very hard as a great new feature was the discovery and legal hold features. Only the largest of companies are getting sued so often that those features are really useful. Most small and medium companies don't even have a "compliance officer" or see lawsuits often enough to care about features like that.

    It feels to me like Microsoft is designing products and features THEY need to run their business and then trying to market them to everyone else, when only a very small number of companies are of the same scale as Microsoft and have similar business problems.  Most companies are not running highly redundant, geographically distributed data centers. The small companies I have worked at run a single SBS server, or maybe up to 5 individual servers.  They have no redundancy, no high availability, no clustering, no product specific administrators, no change control processes and no automated user or machine provisioning, and no need for the products that support these technologies.

    Even a product like Intune which is supposed to be geared towards smaller organizations misses the mark by including upgrade rights to Windows 7 in the price. Upgrading a desktop OS is something only large companies do.  Small companies do not upgrade their operating systems, they get a new OS when they buy new hardware.  Microsoft should remove that benefit from Intune and lower the price, which would make it a much more attractive product to small companies.

    PowerShell is part of Microsoft's idea that organizations should strive to make their IT organizations (what they call) "dynamic".  However, only the largest of organizations would realistically strive to reach that.  Smaller organizations would never dedicate the resources to create an IT system that can allow department heads to request and deploy servers automatically and dynamically distribute computing power depending on seasonal demand.  These things happen so infrequently in small companies that it would be a waste of time to even try to become a "dynamic" IT organization.  Spending time learning PowerShell and writing scripts to automate something that has to be done once a year is generally a waste, no matter how monotonous the once a year task.

    It would be great if Microsoft would focus more on the needs of smaller organizations because there are far, far more of them out there than the huge global organizations they seem to be currently focused on.