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-Key: 546365

Url: https://administrator.de/contentid/546365

Printed on: July 24, 2024 at 06:07 o'clock

Member: LeeX01
LeeX01 Feb 13, 2020 at 03:35:37 (UTC)
Goto Top
Könnten fehlende DNS Einträge sein. Was sagt denn https://testconnectivity.microsoft.com/ ?

Grüße
Member: StefanKittel
StefanKittel Feb 13, 2020 at 05:54:14 (UTC)
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
Member: sabines
sabines Feb 13, 2020 updated at 06:06:18 (UTC)
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
Member: Alchemy
Alchemy Feb 13, 2020 at 08:40:14 (UTC)
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
Member: Alchemy
Alchemy Feb 15, 2020 at 16:35:58 (UTC)
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.