Powershell is a recent development in the Microsoft operating system world that has great potential for control and automation of many operating system processes. It supersedes the older batch file methods and previous scripting languages. However, it is a notable departure from the previous languages and has a much higher level of complexity. It takes a careful approach to introduce this complex subject successfully and this book falls short in a few ways. Still, I say with a few reservations that this book is a good introduction to the Powershell world and is virtually the only one that deals thoroughly with Powershell management of SQL Server databases. As with many other complex subjects, getting the complete viewpoint from a number of books is much more revealing and productive in mastering the material. I recommend Manning's "Powershell in Action" to complete your training in this material.
The first four chapters of the book are almost a classic introduction to Powershell itself. The scripts are shown in the Powershell window which gives the reader the best understanding of how the overall commands and programs should look. Several other books provide only code fragments and show developments in disconnected text which leaves the reader confused as to how the final program should be formed.
Chapters five through ten introduce Powershell control over the file system, Registry and the operating system WMI reporting on processes and configuration management. Although, this is wonderful support material, it lacks a topside explanation of why and how this control should be used. The author is very competent in his design of these control scripts but he seems too close to the subject and doesn't explain at all how they fit into the overall remote management philosophy of servers and client computer clusters. Since Powershell was developed with this primarily in mind, it is a puzzling aspect of this introduction. However, I did find a supporting culture at Microsoft that didn't know how to teach its philosophy of design and use well that might explain this oversight. In that culture it is simply expected that a final mastery will happen by osmosis and nothing more should be said about that matter. I believe that attitude is incorrect for books that are meant for the general public. Since the book is probably the only source for the reader to achieve competence, it should be required to have the philosophy of this software tool well explained.
Finally, in chapter eleven, the book introduces the two methods that Powershell can use to affect SQL Server databases. By chapter thirteen the real capabilities of Powershell are displayed in the use of SMO. My favorite chapter in this series is chapter sixteen. I expect that many of the readers are interested in Powershell so that they can build installation scripts that automatically create and configure SQL Server databases. A number of well formed complex scripts are introduced here to give the reader some excellent ideas of how to use Powershell to manage the database configuration.
However, and as before, the real value of this is not explained by the author. So I will fill in for him instead. Many highly rated database authors have stated that databases exist for applications and that application control and access to databases is why tools like Powershell exist. I believe that manual administration of databases is a form of primitive technology. If you go to the CodeProject, you will be able to see how a program can provide the external intelligent management that will allow for Powershell automation. Take the Powershell introduction here and build an intelligent program wrapper around it.
The last few chapters of the book discuss SQL Server monitoring and managing system policies. This is an important area for DBAs, but lacks the sexy pote3ntial of the middle chapters. Here the book winds down into mundane matters that IT gurus need in order to complete the administrative knowledge that allows large groups of computers to work together reliably.
I recommend this book because it lays in the bottom layer of instruction needed to master Powershell in the area of databases. The reader will have to supply the imagination to see that this knowledge can be easily extended to design software programs that can provide automation of database installation and management. The 21st century is already here, let's link our minds as well as our computers and provide intelligent results to increase the productivity and reliability of computer systems.