Set-AutoDiscoverSiteScopeExchangeServers Part 2
In the part 1 of this function, we covered an option to set all Exchange servers to use every AD site in an organization, minus any 'deployment' ones. But what if you have a very large organization, with multiple data centers hosting Exchange servers, various regions to support, and you want to target specific locations
Set-AutoDiscoverSiteScopeExchangeServers Part 1
In this blog post a few years ago: https://techcommunity.microsoft.com/t5/Exchange-Team-Blog/Exchange-Active-Directory-Deployment-Site/ba-p/604329 was a discussion around Exchange AutoDiscoverSiteScope information. The good news is, it worked perfectly in a lab, however, rarely is any production environment like a lab. Thus, there was some missing information. We're updating the article to include solutions to fix the problem. This post is
Get-DAGDatabaseInformation
The function: Get-DAGDatabaseInformation works in Exchange versions that a DAG (Database Availability Group) exists. From 2010 through 2019, this simple little function presents information to the end user about the status of the databases. In the Exchange Admin Center (EAC), the GUI that is, one must click on each server and each DB to see
Exchange server send/receive limits
Had this question the other day, what are current Exchange on premises limits for messages? And can end users send 10GB file attachments? This site talks about limits, but it also depends on what is available vs. what you can support. By running some PowerShell code, the answers can be provided: Get-ReceiveConnector | Set-ReceiveConnector -MaxMessageSize
Using the same exact time with Get-Date
Many times, when using Get-Date in PowerShell, it is very easy to have start and end times for reporting processes. However, the issue is, the Get-Date cmdlet runs and obtains the time when it is run. If you want to run a specific time, say at exactly midnight every day, there is a way to
Get-Date in UTC
Need to show time in UTC (Universal Time)? There is a 'method' with the Get-Date cmdlet. If you run: Get-Date | Get-Member You'll find that one of the methods is ToUniversalTime() which allows you to output the time of the local machine, converted to the UTC time. Run the code below to show how the
Restart-ExchangeIIS
One issue Exchange engineers run into from time to time, is the need to restart IIS (Internet Information Services). Here is a simple way to restart IIS on all Exchange servers in the organization: Restart-ExchangeIIS I’ve considered scoping this to say just a few servers, but then, that’s easy to remote into a machine and
Connect-ExchangeServer
This Connect-ExchangeServer function runs the PowerShell code to log into an Exchange server on premises using remote PowerShell. Using the -Computer parameter (required), tells the function which Exchange server to connect to. Using the -Prefix parameter (optional), allows a modification to the noun of the imported cmdlets, so that you can have multiple connections in
Exchange links
Here are some handy short links that help Exchange Server engineers keep up with what's happening within the Exchange world. As always, it's best to have some kind of RSS feed notification, using tools such as: Microsoft Flow or IFTTT.com. The Exchange Team blog, you Had Me at EHLO: aka.ms/ehlo Exchange Server build numbers and
Get-DotNETVersion
The Get-DotNETVersion function presents the current .NET version on a machine. This is part of the MO_Module PowerShell code that helps administrators in their daily tasks. From an Exchange Server perspective, .NET support is very sensitive to which version of Exchange and which .NET is allowed to be used. This value also changes based on