The essential guide to PowerShell for Windows, Windows Server, and Exchange
Make the most of Microsoft’s command line by mastering the nuances of the PowerShell language

Until recently, a clear delineation existed between system administrators and developers. You’d never catch a system admin writing a single line of code, and you’d never catch a developer bringing up a server. Neither party dared to cross this line in Windows environments. Nowadays, with the devops movement spreading like wildfire, that line is fading away.
A basic premise of devops is automation, which allows us to maintain consistent, repeatable processes while removing the error-prone ways of our being human. The only way to automate is through the command line. If you’re in a Windows environment, the command line to use is PowerShell. Once considered an inferior command-line experience to Linux, Windows now touts a very powerful and functional command line through PowerShell.
PowerShell can be a daunting tool to master for Windows admins used to working with the GUI. But as you will see in this Deep Dive, adding even a little PowerShell to your daily mix can save a ton of effort.
This Deep Dive will concentrate on some of the fundamentals of PowerShell as a language to help you take your PowerShell skills to the next level. We won’t cover technology-specific topics like how to manage Active Directory, Exchange, or IIS, nor will we cover specific PowerShell cmdlets. Instead, we will drill into the semantics of the language to show a few key techniques you can put into your scripts today.
Follow along and let’s make your PowerShell scripts the best they can be.