[Update]: This post was updated on January 27, 2021.
Once you have completed a hybrid configuration in your company, it turns out that the job is not done yet. After a quick verification whether the hybrid is set up correctly, you notice that some of the users are not synchronized properly. And if that is the case, you need to do some additional adjustments. If you hit the roadblock during the synchronization it is most probable that the problem will be related to user synchronization between local Active Directory and Azure AD. Common causes for this are:
- Lack of rights to Organizational Units (OU) or AD objects (users, groups or computers) for a service account used by Azure AD Connect (AAD Connect)
- The improper scope of objects synchronized with Office 365. In other words, perhaps an OU that contains a certain user object, group or computer was not selected in the AAD Connect configuration wizard.
You can encounter these problems when you run the synchronization from on-premises AD to Office 365. But this can also happen the other way round when you run the synchronization from Office 365 to on-premises AD or in both directions. Look at the most common scenarios here:
- A user has an Office 365 account and no local AD account;
- A user has an account in Office 365 and in local AD (this user had two accounts before the hybrid configuration was implemented to have access to services offered by Office 365);
- A user has an account in Office 365 with an Exchange Online license assigned as well as an account in local AD with an on-premises Exchange mailbox (a single user has two separate mailboxes).
In this article, I will show you how to manage these situations in an environment with hybrid configuration and Centralized Mail Transport enabled.
A user has an account in Office 365 but not in local Active Directory
In this scenario, a user account is created in Office 365 in a hybrid setup. It is worth mentioning that this scenario is correct and supported by Microsoft. However, it causes problems for an Office 365 user when he or she wants to access public folders being on the on-premises Exchange. This means that the user will not be able to access local public folders (legacy public folders) and any attempt of connection will throw an error:
Cannot expand the folder. The set of folders cannot be opened. Network problems are preventing connection to Microsoft Exchange
How to solve this problem
To solve the problem you need to run SMTP matching. This means that you need to create a local AD object with SMTP address that matches primary SMTP address of a user object in Office 365. Unfortunately, there are some limitations highlighted by Microsoft related to SMTP matching:
- A user account that you want to run SMTP matching on needs to have an Exchange Online email address (the Exchange Online license is not required).
- A user account that was originally authored in Office 365 can be SMTP-matched only once.
- During the SMTP matching process, the primary address of an Office 365 user can’t be updated.
- Every SMTP address needs to be unique, otherwise, the synchronization will fail and you may see this error:
Unable to update this object because the following attributes associated with this object have values that may already be associated with another object in your local directory services: [ProxyAddresses SMTP:firstname.lastname@example.org;]. Correct or remove the duplicate values in your local directory.
To match users in Office 365 with AD users, follow the steps below:
- Log in to Office 365 and go to Exchange admin center.
- Write down the primary SMTP address for a selected user in Exchange Online (if you do not have an Exchange Online license, you can take this address from user’s Office 365 login – in most cases it’s the same).
- Create a user object in your local Active Directory with the same attributes (first name, last name, UPN, etc.) as they are in Office 365.
- Set up the primary SMTP address for a new AD object using the address from step 2. In Active Directory, look for the proxyAddresses attribute.
- Force the synchronization of AD objects with Office 365 on the server with Azure AD Connect. Use the following cmdlet:
Start-ADSyncSyncCycle -PolicyType Delta
- After a successful user synchronization, you should see that the Sync type section shows Synced with Active Directory instead of In cloud.
Once the synchronization is finished, an Office 365 user should have access to on-premises public folders.
A user has both Office 365 and local AD accounts
Sometimes a company uses both environments to have access to different services offered by these two platforms. For example, the company decides to use Office 365 to have access to SharePoint Online and Skype for Business services. At the same time, the company maintains the on-premises Exchange Server.
However, when you set up a hybrid environment and synchronize directories via Azure AD Connect, this may duplicate user accounts or cause other sync issues. A single user can end up having two accounts – one in Office 365 and one in local Active Directory. If the company uses Skype for Business (Lync) in an on-premises environment, the synchronization can be even more complicated.
If that is the case, you should carefully plan the synchronization before using Azure AD Connect for the first time. By verifying attributes, UPNs and SMTP address, make sure that all AD objects correspond to Office 365 objects. Additionally, when you have Skype/Lync on-premises you should think over what results you expect to achieve. For example, you may decide to migrate to Skype for Business Online and stop using the on-premises solution.
Generally speaking, if any problems appear in this scenario, you can run SMTP matching as well. If there are duplicates of user accounts, you need to remove them from Office 365 using the following cmdlet in Azure Active Directory Module for Windows PowerShell:
Remove-MsolUser -UserPrincipalName email@example.com Remove-MsolUser -UserPrincipalName firstname.lastname@example.org -RemoveFromRecycleBin
For a user who has a duplicated account, you should check and correct attributes either in Office 365 or in local AD. In Azure AD Connect, you can find more details on fixing synchronization problems.
To get more information on Skype/Lync migrations, visit this Microsoft website.
A user has one mailbox in Office 365 and one in an on-premises Exchange
It is one of those weird situations when a single user has one AD account but is connected to two mailboxes – one mailbox is in Office 365 and the second one is on on-premises Exchange (practically, it will be connected to on-premises via Autodiscover). This situation is very similar to the one described in the second scenario above, with the only difference that an Office 365 user has the Office 365 license assigned (including a license for Exchange Online). As you can imagine having two mailboxes in hybrid settings causes complications in email flow for that user. When the MX record points to Office 365, an email will get stuck in Office 365 mailbox and will not be delivered to an on-premises mailbox.
How to solve the problem
Unfortunately, in this case, SMTP matching will not help. The only result you would achieve after running the SMTP matching is having Office 365 and the on-premises accounts matched – this will not merge mailboxes though. Removing a license from an Office 365 user will not solve the problem either.
Note: Keep in mind that although no SharePoint or OneDrive data should be deleted during the process, the duplicate cloud mailbox will be purged. If there is any additional Exchange Online content in this mailbox, you should back it up before performing the clean up. If you need to repeat this procedure for a number of users, you may consider using a third party tool like CodeTwo Backup, which will also help you restore data to on-premises mailboxes.
The best solution is to clean up the problematic Exchange Online object. To do so, simply follow the steps below:
- Connect to Exchange Online:
Connect-ExchangeOnline (learn more about connecting to Exchange Online remotely)
- Then, clean up the object using the following cmdlet:
Set-User email@example.com -PermanentlyClearPreviousMailboxInfo
As soon as you confirm the action and PowerShell finishes this task, you are left with a clean object which can be re-licensed correctly. Once you assign the Office 365 license, you should see the following information:
If you backed up the data from this mailbox, as noted earlier, you can now restore it.
There is a second method you can use to solve the duplicate mailbox problem. Before the option to clean up the Exchange Online object was available, the only solution was to remove the Office 365 user and recreate it using Azure AD Connect. While this method can still be used, it will result in deleting the whole user object, together with their SharePoint and OneDrive data.