Book Image

Microsoft Exchange Server 2016 PowerShell Cookbook - Fourth Edition

By : Jonas Andersson, Nuno Mota, Mike Pfeiffer
Book Image

Microsoft Exchange Server 2016 PowerShell Cookbook - Fourth Edition

By: Jonas Andersson, Nuno Mota, Mike Pfeiffer

Overview of this book

We start with a set of recipes on core PowerShell concepts. This will provide you with a foundation for the examples in the book. Next, you'll see how to implement some of the common exchange management shell tasks, so you can effectively write scripts with this latest release. You will then learn to manage Exchange recipients, automate recipient-related tasks in your environment, manage mailboxes, and understand distribution group management within the Exchange Management Shell. Moving on, we'll work through several scenarios where PowerShell scripting can be used to increase your efficiency when managing databases, which are the most critical resources in your Exchange environment. Towards the end, you'll discover how to achieve Exchange High Availability and how to secure your environment, monitor the health of Exchange, and integrate Exchange with Office Online Server, Skype for Business Server, and Exchange Online (Office 365). By the end of the book, you will be able to perform administrative tasks efficiently.
Table of Contents (17 chapters)

Monitoring transaction logs

In environments that do not use Circular Logging for their mailbox databases, an issue with Exchange backups can cause the number of transaction logs to keep increasing. If the issue persists for several days, databases might start running out of disk space. As such, it is crucial to keep an eye on the number of transaction logs not yet committed for each database.

In this recipe, you will see how to use the Shell to check and monitor the number of transaction logs across all Exchange servers in the environment.

How to do it...

To monitor the number of transaction logs in the environment and alert if these go above a set limit for any database, use the following code:

[Array] $DBcol = @() 
[Bool...