Столкнулись с проблемой некорректного функционирования Exchange Web Services в инфраструктуре с Exchange 2013 обновленным с Exchange 2010.
PS] C:\Windows\system32>Get-WebServicesVirtualDirectory
Creating a new session for implicit remoting of "Get-WebServicesVirtualDirectory" command...
WARNING: Commands available in the newly opened remote session are different than when the implicit remoting module was
created. Consider recreating the module using Export-PSSession cmdlet.
Name Server InternalUrl
---- ------ -----------
EWS (Default Web Site) ServerExchange2010CAS https://ServerExchange2010CAS.domain....
EWS (Default Web Site) ServerExchange2013_1 https://ServerExchange2013_1.domain....
EWS (Default Web Site) ServerExchange2013_2 https://ServerExchange2013_2.domain....
[PS] C:\Windows\system32>Get-OabVirtualDirectory
Server Name Internal Url External Url
------ ---- ------------ ------------
ServerExchange2010CAS OAB (Default Web Site) https://ServerExchange2010CAS.domain... https://mail.domain/OAB
ServerExchange2013_1 OAB (Default Web Site) https://ServerExchange2013_1.domain... https://mail.domain/OAB
ServerExchange2013_2 OAB (Default Web Site) https://ServerExchange2013_2.domain... https://mail.domain/OAB
[PS] C:\Windows\system32>Get-AutodiscoverVirtualDirectory
Name Server InternalUrl
---- ------ -----------
Autodiscover (Default Web Site) ServerExchange2010CAS
Autodiscover (Default Web Site) ServerExchange2013_1
Autodiscover (Default Web Site) ServerExchange2013_2
[PS] C:\Windows\system32>Get-ActiveSyncVirtualDirectory
Name Server InternalUrl
---- ------ -----------
Microsoft-Server-ActiveSync (Default... ServerExchange2010CAS https://ServerExchange2010CAS.domain....
Microsoft-Server-ActiveSync (Default... ServerExchange2013_1 https://ServerExchange2013_2.domain....
Microsoft-Server-ActiveSync (Default... ServerExchange2013_2 https://ServerExchange2013_2.domain....
[PS] C:\Windows\system32>Test-WebServicesConnectivity -Identity test@domain -MailboxCredential (Get-Credential)
cmdlet Get-Credential at command pipeline position 1
Supply values for the following parameters:
Credential
Source ServiceEndpoint Scenario Result Latency
(MS)
------ --------------- -------- ------ -------
ServerExchange2013_1.domain ServerExchange2010CAS.domain Автообнаружение: поставщик ... Failure 534
ServerExchange2013_1.domain EWS: GetFolder Skipped 0
При этом IIS на каждой системе успешно отдавал autodiscover.xml при непосредственном обращении к ней.
Ознакомится с принципом работы Autodiscover в Exchange 2013 можно и рекомендовано из официального источника с доступным для понимания описанием и красивыми иллюстрациями.
Сам приведу только полезные выдержки касающиеся решения возникшей проблемы. При подключении клиента происходит запрос и предоставление SCP (service connection point)
Клиент выбирает "понравившейся" ему сервер (в случае заказчика им всегда оказывался ServerExchange2010CAS.domain).
В настройках Autodicovery для каждого CAS сервера есть параметр в ActiveDirectory serviceBindingInformation в котром ссылка на xml на сервере.
Для почтовых серверов параметр serviceBindingInformation был https://ServerExchange2010CAS.domain/autodiscover/autodiscover.xml и соответственно использовал Exchange 2010. Несмотря на то, что SCP от Exchange 2010 CAS должна отрабатывать и для Exchange 2013 есть свои ньюансы.
Соответственно, решением было изменение для сервера ServerExchange2010CAS.domain параметра serviceBindingInformation в ActiveDirectory для https://autodiscover.domain/autodiscover/autodiscover.xml, ссылающийся в DNS на Exchange 2013.
[PS] C:\Windows\system32>Test-WebServicesConnectivity -Identity test@domain -MailboxCredential (Get-Credential)
Source ServiceEndpoint Scenario Result Latency
(MS)
------ --------------- -------- ------ -------
ServerExchange2013_1.domain autodiscover.domain Автообнаружение: поставщик ... Success 283
ServerExchange2013_1.domain mail.domain EWS: GetFolder Success 799