Exchange Healthcheck Script– Unable to Connect to Server

Below is a repro of a customer situation where the Exchange Healthcheck script was unable to connect to a remote Exchange server.  The Healthcheck script would run locally with no issues, and reported a clean bill of health.

Note that the expected output log was not present after running the script.

In the command below, we are trying to remotely assess sever Exch-2019-1

.\HealthChecker.ps1 – Server Exch-2019-1

Exchange Healthcheck Script - Unable to Connect to Server

Troubleshooting Thoughts

It was already known that the Healthcheck script was running locally on server Exch-2019-1.  It also did not report issues.

You could try Wireshark and review the traffic, but that gets messy quickly even in a small environment as Exchange is very chatty.  What we can easily do is to add the –SaveDebugLog parameter.  As the name implies this will save the debug log to the same location as the script file.

The updated command used:

.\HealthChecker.ps1 – Server Exch-2019-1 –SaveDebugLog

Running Exchange Healthcheck Script With DaveDebugLog Parameter

Note that a log file was saved.  If we scroll down there are some interesting entries.  Note that some exceptions are expected in the log file.  For example there are no public folders so that lookup errors out.

The below log entry provides an insight:

Exception calling "OpenRemoteBaseKey" with "2" argument(s): "The network path was not found.

Exception calling "OpenRemoteBaseKey" with "2" argument(s): "The network path was not found.

For the benefit of search engines, the relevant section is below:

Position Message: At C:\Scripts\Healthcheck\HealthChecker.ps1:15297 char:13
+             $reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey(" ...
+             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Script Stack: at TestComputerName, C:\Scripts\Healthcheck\HealthChecker.ps1: line 15297

From reading the above it indicates an issue access the remote server’s registry.   Let’s look at the Healtchecker.ps1 script file line 15297 and see what it does.

Open the debug file in Notepad, and then GoTo line 15297.  You can use the menu or Ctrl +G as a keyboard shortcut.  This is indicated with the red arrow to show that we are on line 15297.
The line is highlighted.  As suspected, the line is trying to access the registry.

Contents Of Line 15297 In Exchange Healthcheck Script

Why are we not able to get to that server’s registry remotely?  Anything wrong with the Remote Registry service on that machine?

Issue Identified

If we look at the remote registry service on that server, it is disabled.  That was probably due to an Exchange update failing to install properly and the service was not reverted

Remote Registry Service Disabled

After we set the start-up type to automatic and start the service, we are back in business.

Exchange Healthcheck Script - Sucesfully Connected to Remote Server


Rhoderick Milne [MSFT]

Leave a Reply

Your email address will not be published. Required fields are marked *