Quand normalement rime avec rarement !

Exchange 2016 CU2 and CU3 Configure External access domain server list empty

I just made a fresh install Of Exchange 2016 CU3.
I wanted to configure External access domain from Exchange Admin Center but Server picker didn't return any server.

It seems the problem started with CU2 (https://social.technet.microsoft.com/Forums/office/en-US/d9920875-dd18-4329-9413-f2b432953df6/no-server-displayed-in-configure-external-access-domain-window?forum=Exch2016GD)

After some investigations with IE Developer tools, i found that two filters are not defined in Query String of Server picker page request (/ecp/CertMgmt/ServerPicker.aspx)

I compared binaries from RTM and CU3, i found a difference in "C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\ecp\VDirMgmt\EditExternalCASDomain.aspx"  

The following lines between </Columns> and </ecp:EcpCollectionEditor><br /> are missing in CU3 version.

                                    <var data-control="Parameter" data-key="ServerRole" data-value="ClientAccess" ></var>
                                    <var data-control="Parameter" data-key="MinMajorVersion" data-value="14" ></var>

 I copied them from RTM file and pasted to CU3 file but it didn't help.

Then, i compared Get-ExchangeServer | fl ServerRole result on an Exchange 2013 (as it's a fresh install of 2016 CU3, i don't have 2016 RTM installed) and on my Exchange 2016 CU3 Lab.

On Exchange 2013 (probably the same on Exchange 2016 RTM and CU1), i get the following result:
ServerRole : Mailbox, ClientAccess

On Exchange 2016 CU3 (probably the same on Exchange 2016 CU2), i get this one:
ServerRole : Mailbox

As you can see, ClientAccess is no more present.

So, i implemented the following workaround to get the server list picker working properly:
Add the following lines in "C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\ecp\VDirMgmt\EditExternalCASDomain.aspx" between between </Columns> and </ecp:EcpCollectionEditor><br />

                                    <var data-control="Parameter" data-key="ServerRole" data-value="Mailbox" ></var>
                                    <var data-control="Parameter" data-key="MinMajorVersion" data-value="15" ></var>

You have to close "Select a Server" and "configure external access domain". After that, you should have your Exchange 2016 servers in the list.

Be careful if you have an 2013/2016 environment. Do not add Exchange 2013 servers with mailbox role only. Setting virtual directories will fail.
No problem because you installed Multirole servers of course ;)