Free / Busy issue Troubleshooting – Exchange Server in Hybrid

The issue

Free Busy status is as follows.

OWA

  • Free Busy 365 user to on premise user –  working
  • Free Busy On premise user to 365 user –  working

Outlook Client

  • Free Busy 365 user to on prem user – WORKING
  • Free Busy On prem user to 365 user working –Not  Working

For Troubleshoot Exchange Hybrid calendar availability issue, first option to use tool –

Microsoft Remote Connectivity Analyzer 

It is a very effective online Microsoft tool, Having a lot of troubleshooting options including Free/ busy. You can select Microsoft 365 or Exchange Server as per your direction need.

In my case of, I have checked all settings but found that there was issue with TLS 1.0 & 1.1 version.

On-premises users might not be able to do free/busy requests in calendaring from on-premises mailboxes towards Exchange online mailboxes.

In Event Viewer, The error will logged as below”

Log Name:      Application

Source:        MSExchange Availability

Date:          …………

Event ID:      4001

Task Category: Availability Service

Level:         Error

Keywords:      Classic

User:          N/A

Computer:      server01.contoso.com

The interesting parts of the event above are the following of information:

AutoDiscoverFailedException: Autodiscover failed

Checked with below command on Exchange Servers including Hybrid server with EMS (Since Autodiscover fails, let’s test it from the on-prem server and see if it can reach the server in Exchange online via Powershell):

Invoke-WebRequest -Uri “https://autodiscover-s.outlook.com/autodiscover/autodiscover.svc”

The result now as expect is:

Invoke-WebRequest : The remote server returned an error: (401) Unauthorized.

You now have proof that the TLS settings on-premises are outdated and your on-prem server not using TLS 1.2 prevents your server from connecting to the Exchange online servers.

Microsoft has announced the deprecation of TLS 1.0 and TLS 1.1 already.

Solution:

  So solution will be enabling of TLS 1.2 and you can disable TLS 1.0 and 1.1 since they are not secure anymore.

As free/busy requests from On-Premise are using either TLS 1.0 or TLS 1.1 to connect Exchange Online mailbox, so was failing as per error. So we need to force to use only TLS 1.2 for all requests.

TLS 1.2 can be enabled by Exchange Windows registry settings: You can made changes to below registry settings to enable TLS 1.2 and to disable TLS 1.0 & 1.1. Then restart the server and check free busy. It should sure work, but please verify above errors 1st before proceeding.  

‘HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server’

‘HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client’

Start with the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols registry key. Under that key you can create any subkeys in the set TLS 1.0TLS 1.1, and TLS 1.2. Under each of those subkeys, you can create subkeys Client and/or Server. Under Client and Server, you can create DWORD values DisabledByDefault (0 or 1) and Enabled (0 or 1).

******************************************************

All Other Setting we can check if found that there is no any issue with TLS version –

Identify the certificate for which the authentication configuration is looking. To do this, run the following command (Normally this issue occurs if the on-premises Exchange server cannot obtain an authentication token by using OAuth. Exchange doesn’t try to use the organization relationship if an intraorganization connector exists.):

Get-AuthConfig |fl

In this case, either Certificate expired or not configured well, Certificate expiry you can check by get-exchangecertificate by using ThumbPrint from Get-AuthConfig Command.

More info with below MS URL:

https://docs.microsoft.com/en-US/exchange/troubleshoot/administration/cannot-view-freebusy-information

Sharing More Command, which can be used to check all details which can be used in troubleshooting Free/ Busy in Exchange Hybrid.

Run these commands to gather diagnostic information:

On-Premises Exchange Server side troubleshooting:

Get-FederationTrust | fl

Get-FederatedOrganizationIdentifier | fl

Get-OrganizationRelationship | fl

Get-WebServicesVirtualDirectory | Export-Clixml C:\temp\WebVdir.xml

Get-AutoDiscoverVirtualDirectory | Export-Clixml C:\temp\AutoDVdir.xml

Get-RemoteMailbox bobc_sync | fl

Get-Mailbox “on-premises John Doe User” | fl

Test-FederationTrust -UserIdentity [email protected] | fl

Test-FederationTrustCertificate | fl

Get-IntraOrganizationConnector | fl

Exchange Online side troubleshooting:

Get-FederationTrust | fl

Get-FederatedOrganizationIdentifier | fl

Get-OrganizationRelationship | fl

Get-MailUser “on-premises John Doe User” | fl

Get-Mailbox “Cloud user” | fl

Get-IntraOrganizationConnector | fl

get-OrganizationRelationship | Test-OrganizationRelationship -UserIdentity “cloud user”

********************************************************

If the free/busy problem persists, make sure that the sharing policies in the on-premises Exchange Server environment and in Exchange Online match. To determine this, run the following command in the Exchange Management Shell, and then note the value in the Domains field in the results:

Get-SharingPolicy | FL