Devops is very trendy at the moment. One of the take-ways from this approach to system administration is that Microsoft Windows systems administrators should put their traditional GUI tool in the rubbish bin and only use verifiable, reproducible, scalable, auditable scripts to administer their systems. But which scripting language? I have always regarded Power Shell has yet another scripting language so why should I take the trouble to learn its intricacies when I already have scripting languages like python, PERL, Unix shell scrip and JavaScript available. Especially now that Microsoft have integrated bash into their operating systems user interface. But this was a mistake. These are all text based tools while Power Shell is a much more sophisticated, powerful and effective tool built around a rich set of objects. Now that I have spent my lunch times for the last month working my way through this book I have come the view that this tool should be at the centre of any devops process involving Windows hosts.
This book takes an excellent approach to aid you in picking up the knowledge and skills to allow you integrate this outstanding tool into your administrative processes. By spending an hour or so each day you gradually learn the different features of this product. This accords with the latest neural plasticity based research into learning which tells us that short regular sessions over an extended period of time are many times more effective than concentrated binge learning.
The early chapters introduce the Power Shell product and core components such as the Help system, the object pipeline, add in modules, the object model, Input and Output systems. This knowledge forms the base for the chapters that follow which expose the reader to other facilities such as remote execution, windows management instrumentation interface, scripting, error handling, security, debugging leading through to creating reusable “cmdlets”, functions and modules. At the end of the month of lunches, the reader will have very good understanding of the product.
But this book only really scratches the surfaces of Power Shells capabilities. The book only covers the features in Version 3 of the product. Later features such as Workflow and Desired State Configuration are not covered. However, the author provides an extensive set of references to additional resources that reader can use to research any feature they may need in depth.
I particularly liked the authors writing style and his many words of wisdom. For example, he suggests that if you find yourself writing long complex Power Shell scripts then you are probably making a mistake. This indicates that you have not understood the objects involved. You should be using the power of the object model to keep your scripts short and focused.
So, if you want to move to improve the quality and responsiveness of your system administration by using the principles and practices of devops on your Windows systems then you should consider Power Shell as key tool. And, if you want to increase your understanding of this tool, this book provides an excellent way to achieve this end.