Home > Microsoft, Office 365 > Hybrid Modern Public Folders not working for some users

Hybrid Modern Public Folders not working for some users

November 4, 2016

Hey! Ran into a strange issue where certain users were not able to access modern public folders on-premise and some users had no issues at all.
The users that had no issues were users that had a mailbox on-premise and then later migrated to the cloud.
The users that had issues were users that were created via the New-RemoteMailbox PowerShell cmdlet.

I was familiar with this issue on Legacy Public Folders but not on Modern Public Folders.

The fix for Legacy Public Folders is that it’s missing the cloud LegacyExchangeDN as an X500 address on-premise
Solution in a simple 1 liner PowerShell script:

Get-Mailbox user@domain.com | foreach {Set-ADUser -Identity $_.Alias -Add @{Proxyaddresses="X500:"+$_.LegacyExchangeDN}}

So after some digging around and talking to the product engineering team and other peers we came to this conclusion:

The issue for the Modern Public Folders is that it’s missing the ExchangeGUID attribute. And how O365 does a lookup for the modern public folders on-premise.
This seems to have been fixed in Exchange 2013 SP1 CU14 (CU 13 and below are still affected) Additionally there were Free/Busy issues as well due to it looking for a non-existing ExchangeGUID.

So there are two solutions here either upgrade all your Exchange 2013 servers to CU14 or run the following PowerShell cmdlet to add the ExchangeGUID property to the users:

$cred = get-credential
$session = New-PSsession -configurationname microsoft.exchange -connectionuri https://outlook.office365.com/powershell -allowredirection -authentication basic -credential $cred -verbose
Import-PSSession $Session -Prefix EXO
$formatenumerationlimit = -1

Get-RemoteMailbox -ResultSize Unlimited -filter {ExchangeGuid -eq "00000000-0000-0000-0000-000000000000"} | foreach {Get-EXOMailbox -Identity $_.Alias} | foreach {Set-RemoteMailbox -Identity $_.Alias -ExchangeGuid $_.ExchangeGuid}

Or if you don’t like one liners and like an output into CSV:

$cred = get-credential
$session = New-PSsession -configurationname microsoft.exchange -connectionuri https://outlook.office365.com/powershell -allowredirection -authentication basic -credential $cred -verbose
Import-PSSession $Session -Prefix EXO
$formatenumerationlimit = -1

Get-RemoteMailbox -ResultSize Unlimited -filter {ExchangeGuid -eq "00000000-0000-0000-0000-000000000000"} | Export-CSV C:\temp\RemoteMailboxesWithNoGUIDS.csv
$i = Import-CSV C:\temp\RemoteMailboxesWithNoGUIDS.csv
$i | foreach {Get-EXOMailbox -Identity $_.Alias} | foreach {Set-RemoteMailbox -Identity $_.Alias -ExchangeGuid $_.ExchangeGuid}

Advertisements
Categories: Microsoft, Office 365
%d bloggers like this: