As a long time server and Microsoft Exchange Server administrator, I fully believed and bought into the belief that "command-line" was the old way of doing things and graphical the only way to go. It certainly made my life easier and things easy to grasp and understand. So it was with deep trepidation that I met the news back in 2007 that Microsoft was turning its back on that line of thinking and going into command line interface with something called PowerShell.
At first glance and use, my feelings went from anxiety to despair. I could not make sense of it and worst of all, there was next to zero useful information about it. So much so that I seriously wondered how they were going to make it work in the real world if the only people who knew it were inside Microsoft itself. Ironically, I found myself working at Microsoft last year and I went into full panic mode. I needed to learn Powershell quickly or at least how to use it and be productive and while I paid for a few classes, bought a number of books and even videos, it remained a black art for me to this day. A big reason for it being that PowerShell FOR Exchange was even harder to understand for someone like me, coming from so many years of graphical interface. Still keen to understand it, I can say one does not *need* to know PowerShell to use Exchange 2010.... But it does make your life a whole lot easier!
After completing a migration to Exchange 2010 I needed to transfer knowledge quickly to the administrator and more importantly, spare her my anxiety over understanding PowerShell and embracing how it simplifies administration of Exchange 2010. So I can truly and without fear of exaggeration say that Mike Pfeiffer's book "Microsoft Exchange 2010 PowerShell Cookbook" may be the most important book on the matter for the hundreds of thousands of IT professionals out there simply trying to make things work and keep them running on a day-to-day basis. I shared it with one person and her reaction was as gratifying to me as it was enlightening for her (and productive to the company). Dollar for dollar, probably their best investment the whole year!
Nowadays, I consider PowerShell THE most important skill than an Exchange administrator can learn. One can do a lot in Exchange 2010 using the graphical console, but sooner or later one will have to face the shell to perform higher level administration or simply to save time on the more tedious tasks. I can think of no better way to do it than being prepared with what may be my favorite feature in a technical book: the format of "How to Do It" followed by the explanation of "How It Works" and the "There's More" to let one dig deeper or (truly) learn more about a task, command or subject.
Given that background and all the money I spent on other resources that really were not Exchange-focused I have been looking for something like this for the longest time. As someone who thought he hated PowerShell I can truly appreciate the value of Mr. Pfeiffer's book and recommend it to anyone who may have thought he was at wit's end when it comes to understanding PowerShell for Exchange. I can go no further than admitting it is the only technical book I have read cover to cover in the last two years and enjoyed it for the way it explained things without assuming I already knew the black art of PowerShell like so many others or not explaining how things were happening so that I could anticipate unexpected outcomes. That alone makes it worth the price.
PowerShell Key Concepts
The first chapter of the book deals with the fundamentals of PowerShell and how they apply to Exchange Server 2010 in an elegant, simple manner. Like I mentioned before, I spent a lot of time and money trying to learn PowerShell on books that were about the topic in general, rather than being specifically about Exchange. That is one huge reason I was immediately turned off about PowerShell, because I wasn't learning anything that I could use immediately to make MY life easier and only marginally getting a foggy notion of it having anything to do with my work.
Mr. Pfeiffer introduces PowerShell for the reader in an interesting way and keeps it focused on Exchange through the entire first chapter, which personally, I really liked.
PowerShell Common Tasks and Day-to-Day Administration
Chapters 2 - 8 of Microsoft Exchange 2010 PowerShell Cookbook go through the use of PowerShell to perform what I would consider the everyday tasks of running and maintaining an Exchange Server 2010 environment, regardless of size: mailboxes, distribution groups, public folders, transport servers, client access, public folders, etc.
The way Mr. Pfeiffer drills into the Exchange 2010 server roles is very informative, especially from the perspective of PowerShell. Each section of these chapters delivers a useful command or sample script, such as detecting and fixing corrupt mailboxes, dealing with ActiveSync devices and reports, managing and reporting on OWA and RPC connections and clients, managing transport rules and reporting on tracking or anti-spam agent logs. A favorite of mine became the section on "Implementing a Header Firewall".
Once again, for someone with limited time to "play with it" the simple but effective "What we want to do", "How to do it" and "How it works" style of delivery is PERFECT for these chapters.
Advanced Exchange Server Administration
Chapters 9 - 13 of Microsoft Exchange 2010 PowerShell Cookbook go into what I consider more advanced territory. Mr. Pfeiffer delves in-depth advice on topics such as:
' Scripting the deployment of Exchange Server 2010 high availability.
' Exchange Security and RBAC (in my opinion, one of the more complex features of Exchange 2010).
' Monitoring and troubleshooting (by Exchange server role and a very useful section on "Verifying Certificate Health").
The closing chapter on "Scripting With the Exchange Web Services API" will be of great help to those seeking to do serious development work with the EWS API although it is not something that an administrator would have to do on an everyday basis in most environments.
As mentioned before, I have looked for a long time for a solid resource to really use (in the sense of it helping me accomplish what I need to do) but ALSO to understand PowerShell with Exchange Server 2010. After reading Microsoft Exchange 2010 PowerShell Cookbook I believe that book has arrived and I am grateful for it. If, like me, you are an Exchange Server administrator looking to be more efficient/productive in everyday situations but also to truly learn the skills to either consult on or move up to a job in a bigger or more sophisticated Exchange Server environment, then I absolutely recommend Microsoft Exchange 2010 PowerShell Cookbook.