Introduction
So, your organization has decided to move to Exchange Server 2016 to take advantage of the many exciting new features such as integrated email archiving, discovery capabilities, and high availability functionality. Like it or not, you've realized that PowerShell is now an integral part of Exchange Server management and you need to learn the basics and have a point of reference for building your own scripts. That's what this book is all about. In this chapter, we'll cover some core PowerShell concepts that will provide you with a foundation of knowledge for using the remaining examples in this book. If you are already familiar with PowerShell, you may want to use this chapter as a review or as a reference for later after you've started writing scripts.
If you're completely new to PowerShell, the concept may be familiar if you've worked with UNIX command shells. Like UNIX-based shells, PowerShell allows you to string multiple commands together on one line using a technique called pipelining. This means that the output of one command becomes the input for another. But, unlike UNIX shells that pass text output from one command to another, PowerShell uses an object model based on the .NET Framework, and objects are passed between commands in a pipeline, as opposed to plain text. From an Exchange perspective, working with objects gives us the ability to access very detailed information about servers, mailboxes, databases, and more. For example, every mailbox you manage within the shell is an object with multiple properties, such as an email address, database location, or send and receive limits. The ability to access this type of information through simple commands means that we can build powerful scripts that generate reports, make configuration changes, and perform maintenance tasks with ease.
Note
This book is based on PowerShell version 5.1 using Windows 2016 Server, version 5.1, build 14393.
Performing some basic steps
To work with the code samples in this chapter, follow these steps to launch the Exchange Management Shell:
- Log onto a workstation or server with the Exchange Management Tools installed.
- You can connect using remote PowerShell if you for some reason don't have Exchange Management Tools installed. Use the following command:
$Session = New-PSSession -ConfigurationName Microsoft.Exchange `-ConnectionUri http://servername/PowerShell/ `-Authentication KerberosImport-PSSession $Session
- Alternatively, open the Exchange Management Shell by clicking the windows button and go to
Microsoft Exchange Server 2016
|Exchange Management Shell
.
Note
Remember to start the Exchange Management Shell using Run as Administrator
to avoid permission problems. In the chapter, notice that in the examples of cmdlets, I have used the back tick (`
) character for breaking up long commands into multiple lines. The purpose with this is to make it easier to read. The back ticks are not required and should only be used if needed. Notice that the Exchange variables, such as $exscripts
, are not available when using the preceding method.