alchemy
Goto Top

Problem Autodiscover XML external URL

Hallo,

folgende Situation:

Domain mit diversen Servern, alle 2016/2019, 2 DCs usw.
Server 2016 mit Exchange 2016 migriert von Exchange 2003->2007->2010->2016 (über die Jahre)

Ex 2010 war internal=external URL

Im neuen EX 2016 sind alle virtuellen Verzeichnise sauber hinterlegt, Zertifikate passen

Die Verzeichnisse werden auch im ADSI Edit alle sauber angezeigt

Fehler:

In der Autodiscover XML wir die external URL für MAPI nicht mitgegeben. Die Zeilen fehlen einfach. Damit klappt natürlich die Anbindung des Outlook von extern nicht weil der nicht weiß wohin.

Änderungen an der internal URL werden in die XML sauber übernommen

Frage:

Gibt es ein Powershell Befehl welcher auf den alten Exchange Servern ausgeführt wurde evtl, der brutal ext=int bewirkt und uns jetzt auf die Füße fallen könnte?

Andere Ansätze was hier schief laufen könnte?

Workaround:

Natürlich könnte ich wieder als interne URL die externe eintragen und das öffentliche Zertifikat dem Exchange überhelfen. Aber ich würde gern das Problem richtig lösen.

Danke fürs lesen

Content-ID: 546365

Url: https://administrator.de/forum/problem-autodiscover-xml-external-url-546365.html

Ausgedruckt am: 24.12.2024 um 19:12 Uhr

LeeX01
LeeX01 13.02.2020 um 04:35:37 Uhr
Goto Top
Könnten fehlende DNS Einträge sein. Was sagt denn https://testconnectivity.microsoft.com/ ?

Grüße
StefanKittel
StefanKittel 13.02.2020 um 06:54:14 Uhr
Goto Top
Moin,

Franky hat auf seiner Homepage so ein Skript welches alle virtuellen Verzeichnisse neu schreibt.
https://www.frankysweb.de/exchange-2019-die-basiskonfiguration/

$servername = "LABEX1"  
$internalhostname = "outlook.frankysweblab.de"  
$externalhostname = "outlook.frankysweblab.de"  
$autodiscoverhostname = "autodiscover.frankysweblab.de"  
$owainturl = "https://" + "$internalhostname" + "/owa"  
$owaexturl = "https://" + "$externalhostname" + "/owa"  
$ecpinturl = "https://" + "$internalhostname" + "/ecp"  
$ecpexturl = "https://" + "$externalhostname" + "/ecp"  
$ewsinturl = "https://" + "$internalhostname" + "/EWS/Exchange.asmx"  
$ewsexturl = "https://" + "$externalhostname" + "/EWS/Exchange.asmx"  
$easinturl = "https://" + "$internalhostname" + "/Microsoft-Server-ActiveSync"  
$easexturl = "https://" + "$externalhostname" + "/Microsoft-Server-ActiveSync"  
$oabinturl = "https://" + "$internalhostname" + "/OAB"  
$oabexturl = "https://" + "$externalhostname" + "/OAB"  
$mapiinturl = "https://" + "$internalhostname" + "/mapi"  
$mapiexturl = "https://" + "$externalhostname" + "/mapi"  
$aduri = "https://" + "$autodiscoverhostname" + "/Autodiscover/Autodiscover.xml"  
Get-OwaVirtualDirectory -Server $servername | Set-OwaVirtualDirectory -internalurl $owainturl -externalurl $owaexturl -Confirm:$false
Get-EcpVirtualDirectory -server $servername | Set-EcpVirtualDirectory -internalurl $ecpinturl -externalurl $ecpexturl -Confirm:$false
Get-WebServicesVirtualDirectory -server $servername | Set-WebServicesVirtualDirectory -internalurl $ewsinturl -externalurl $ewsexturl -Confirm:$false
Get-ActiveSyncVirtualDirectory -Server $servername | Set-ActiveSyncVirtualDirectory -internalurl $easinturl -externalurl $easexturl -Confirm:$false
Get-OabVirtualDirectory -Server $servername | Set-OabVirtualDirectory -internalurl $oabinturl -externalurl $oabexturl -Confirm:$false
Get-MapiVirtualDirectory -Server $servername | Set-MapiVirtualDirectory -externalurl $mapiexturl -internalurl $mapiinturl -Confirm:$false
Get-OutlookAnywhere -Server $servername | Set-OutlookAnywhere -externalhostname $externalhostname -internalhostname $internalhostname -ExternalClientsRequireSsl:$true -InternalClientsRequireSsl:$true -ExternalClientAuthenticationMethod 'Negotiate'  -Confirm:$false  
Get-ClientAccessService $servername | Set-ClientAccessService -AutoDiscoverServiceInternalUri $aduri -Confirm:$false
Get-OwaVirtualDirectory -Server $servername | fl server,externalurl,internalurl
Get-EcpVirtualDirectory -server $servername | fl server,externalurl,internalurl
Get-WebServicesVirtualDirectory -server $servername | fl server,externalurl,internalurl
Get-ActiveSyncVirtualDirectory -Server $servername | fl server,externalurl,internalurl
Get-OabVirtualDirectory -Server $servername | fl server,externalurl,internalurl
Get-MapiVirtualDirectory -Server $servername | fl server,externalurl,internalurl
Get-OutlookAnywhere -Server $servername | fl servername,ExternalHostname,InternalHostname
Get-ClientAccessService $servername | fl name,AutoDiscoverServiceInternalUri
sabines
sabines 13.02.2020 aktualisiert um 07:06:18 Uhr
Goto Top
Zitat von @Alchemy:

Workaround:

Natürlich könnte ich wieder als interne URL die externe eintragen und das öffentliche Zertifikat dem Exchange überhelfen. Aber ich würde gern das Problem richtig lösen.


Moin,

aber genau das ist BP. Interne=externe URL und die entsprechenden Anpassungen im DNS.
https://www.frankysweb.de/exchange-2016-zertifikate-konfigurieren/
https://www.frankysweb.de/exchange-2016-zertifikate-konfigurieren-teil-2 ...

Gruss
Alchemy
Alchemy 13.02.2020 um 09:40:14 Uhr
Goto Top
Hallo,

SSL Tests und Microsoft Autodiscover Test sind beide grün. Der MS Test geht auch nicht weit genug, weil er den Inhalt der XML nicht umfassend prüft (warum auch, ist nicht Bestandteil des Test).

Das Script von Franky hab ich schon laufen lassen. Wie geschrieben, die Pfade stimmen alle.

Ob int = ext BP ist, darüber könnte man jetzt ewig diskutieren. Aber ich möchte gern das Problem an sich lösen, weil auch Folgeschäden nicht auszuschließen sind.

Danke für die Tipps bis hierher
Alchemy
Alchemy 15.02.2020 um 17:35:58 Uhr
Goto Top
Problem ist gelöst.

Der Exchange stellt nicht nur die XML aktuell zusammen wenn ein Outlook anfragt, sondern auch individuell. Aus den alten Installationen haben wir vermutlich Userparameter mitgeschleppt, welche diese Zeilen einfach mal weglassen.

Hier sieht man unten die Matrix unter welchren Umständen die Einträge fehlen:

https://docs.microsoft.com/en-gb/exchange/clients/mapi-over-http/configu ...

Bei uns war es zusätzlich der Parameter MAPIBlockOutlookRpcHttp welcher auf $true gesetzt war.