Windows PowerShell Cookbook by Lee Holmes is the latest in the Cookbook series by O’Reilly Publishing.  I have been a huge fan of the Cookbook series of books.  The Cookbooks are set up in the Problem/Solution/Discussion format, where the author proposes a common problem, shows a code/configuration solution to that problem, and then discusses why/how this solves the problem. 

The Cookbook series has covered many technical topics and, in my opinion, covered the topics quite well.  My current favorite is the IOS Cookbook, which set the bar quite high for the level of content for this series.

When I heard that there was going to be a Cookbook focused on PowerShell, I eagerly watched for it to appear on the bookshelf at my local bookstore (and to be available online).  My first impression was that, for an O’Reilly Cookbook, it was rather skinny (584 pages).  Being skinny does not doom a book to being a poor resource, so I picked it up and began to read. 

In scanning the table of contents, it appeared that the book covered a wide array of common, not-so-common, and quite interesting tasks.  After five minutes of reviewing the enclosed scripts and instructions, I was extremely disappointed.  While the problems covered a good amount of ground and the scripts to solve the problems were elegant (better than anything I could come up with), the discussion was lacking. 

In the IOS Cookbook, one could gain a working understanding of many of the protocols, services, and features offered in Cisco devices through the discussion portion of the solutions.  I did not see that same ability reflected in the Windows PowerShell Cookbook. 

The most disappointing to me was the coverage of how to create a PowerShell Cmdlet and how to add PowerShell scripting to  your own programs.  While Mr. Holmes provides examples of how to do each of the tasks, the discussion could be summed up as “check out the SDK documentation”.  The book would have been better if he had not broached these topics.

The Windows PowerShell Cookbook will stay on my shelf as a reference book (for the code samples), but I would look to other resources first (e.g. Windows PowerShell In Action by Bruce Payette), if you need a resource to help learn PowerShell.

If you have read this book, please let me know what you thought.

Powered by ScribeFire.


  1. 1
    Lee Holmes
    November 20th, 2007 at 10:57 pm

    Thanks for the comments, Steven, and for the review on Amazon.

    You are absolutely correct — the PowerShell cmdlet / PowerShell hosting were out of scope for the book. However, a lot of learning is through serendipity — somebody picks up the book, and rembers in the back of their head that they can use PowerShell in their own program. When they want to learn more, they can dig into that topic. Most programmers can trace their interest in programming back to a chance occurrence like that, and a few pages of writing is a small price to pay for the chance to tune somebody in to the power that is available to them.

    More comments here:

    Thanks again,

  2. 2
    Steven Murawski
    November 21st, 2007 at 12:29 pm


    Thank you for taking the time to address my review. I absolutely love the power, range, and versatility of PowerShell and really
    have enjoyed the O’Reilly Cookbook series. I’m not very eloquent and perhaps I came across incorrectly, but the point I was heading
    for was that I would use PowerShell In Action to learn PowerShell and the Windows PowerShell Cookbook for the excellent example
    scripts, not as only owning one or the other.

    The other point I tried to make was that I missed the level of content I previously enjoyed in other Cookbooks in the Discussion
    part of the solution. It could be unfair of me to expect that level of content in all topics, but I’m human and am prone to having
    high expectations.

    What did not fail to meet my expectations was the script solutions. Thank you for some masterful examples on using PowerShell to
    accomplish various tasks. My favorite is how to invoke a PowerShell expression on a remote PC. I have had trouble getting a
    PowerShell session started using PSExec (it would hang), but your solution seems to cover that problem.

Leave a Comment

You must be logged in to post a comment.