For those that have worked with Exchange for 20 years or are new to Exchange or Exchange Online (Office 365) PowerShell scripting is must have skill. Back in Exchange 2003 and early days you could, and had to do, almost everything from a GUI. Then Exchange 2007 came out and things changed. You still had a GUI, but it had only about ~80% of the administrative features in it, which left ~20% in the new command line scripting interface, PowerShell. Those that had been using VBScript and other languages to carry out bulk task in Exchange were very pleased with PowerShell since it greatly simplified their scripts and work. Administrators for large Exchange implementation were also thrilled to have a much more powerful CLI to carry out bulk tasks. On the other hand, many Exchange admins were not happy about the lack of some feature in the GUI and were reluctant to learn “coding” or scripting to do the rest. Here we are 10 years later and PowerShell is MUST have skill for Exchange, Windows, and many other Microsoft infrastructure administrators. For administrators of Exchange Online\Office 365, this is also a must have skill since there are less feature in the GUI\web admin console (Exchange Admin Center/Exchange Control Panel) for Exchange Online then there are in Exchange 2016, currently. Office 365, or BPOS at the time, was a major driver for PowerShell and why Exchange 2007 was the 1st Microsoft server application to use it. Microsoft needed a way to easily automate task across 10,000s of servers.
The book Practical PowerShell: Exchange Server 2016 was written by Damian Scoles (Blog: https://justaucguy.wordpress.com/) and Dave Stork (Blog: https://dirteam.com/dave/) who are fellow Exchange (or technically Office Servers and Services) MVPs. They ask me in late 2016 to be a technical reviewer of the book, along with Michel De Rooij (Blog: https://eightwone.com/), and I was happy to help since Exchange has been my passion since I installed the beta version of Exchange 4.0 in 1995. There are many different books on PowerShell out there and even on Exchange PowerShell, but one thing with technology and software is that it is contently changing. This book is THE BEST PLACE to get started or to use as a refence for PowerShell for Exchange 2016 or Exchange Online (which uses Exchange 2016). If your organization is still on Exchange 2010 or 2013 this is also an excellent book, but keep in mind that PowerShell cmdlets have changed with each version so not all example will work on previous versions of Exchange.
The book starts out with the basics of PowerShell, covering key features like variables, arrays, loops, functions, working with files, and the various PowerShell tools, like PowerShell ISE. Then it moves to formatting, building your most basic scripts, what’s new and changed in 2016, and using some basic script to connect to Exchange. All aspect of Exchange PowerShell are covered across the book’s eighteen chapters, which are broken out by areas; like Mail Flow, Users, Mobile Devices, Migrations, etc. The structure of the books allows you to pick it up and jump into the chapter that is related to the area you need to learn more about. It contains countless script examples and cmdlets (I check all of them in the 2nd half of the book) that can be the basis for your own scripts and will provides ideas on how to do many things that admins might not have thought of before. Real world examples are used thought the book and it should be on the top of any Exchange admins desk.
On the https://www.practicalpowershell.com/ website you can purchase the PDF and physical copy of the book. I suggest both, I still find having physical copies of technical books beneficial since I like to flip through them looking for things and ideas and then the PDF copy is ideal for search on terms, like cmdlets, and copy and pasting code from.
GET THIS BOOK: https://www.practicalpowershell.com/