Site icon Frankys Web

Exchange 2016: Virtuelle Verzeichnisse im IIS neu erstellen

Zwar können die virtuellen Verzeichnisse für die verschiedenen Exchange Webservices über das “Exchange Admin Center” neu erstellt werden, jedoch gibt es Fälle, wo diese Funktion an ihre Grenzen stößt.

Für diesen Artikel habe ich so einen Fehler simuliert. Auch nach dem Zurücksetzen des Verzeichnisses für OWA mit dem Exchange Admin Center funktioniert OWA nicht:

Nicht alles lässt sich eben mit der GUI erledigen.

Einleitung

Exchange 2016 verfügt über zwei Webseiten im IIS. Unter der Webseite “Default Web Site” befindet sich der Client Access Dienst, den es zwar nicht mehr als eigenständige Exchange Rolle gibt, aber immer noch vorhanden ist. Exchange Clients, wie zum Beispiel Outlook und Smartphones, verbinden sich zu den virtuellen Verzeichnissen innerhalb der “Default Web Site”. Die virtuellen Verzeichnisse innerhalb der “Default Web Site” bilden also das Front-End für die Clients/Protokolle.

Das Front-End dient den Clients dabei als Proxy für das “Exchange Back End”, welches seine eigene Webseite innerhalb des IIS besitzt. Im Back-End steckt dabei die eigentliche Logik, das Front-End dient nur als statusloser Proxy. Im folgenden Screenshot sind die beiden Webseiten zu sehen:

Die virtuellen Verzeichnisse lassen sich auch in der Exchange Management Shell anzeigen, der folgende Befehl zeigt zum Beispiel das virtuelle Verzeichnis für OWA:

Get-OwaVirtualDirectory -Server TEX1

Der Befehl zeigt allerdings nur das Front-End an, dies ist am Parameter “Name” zu erkennen: Default Web Site. Damit auch das entsprechende Gegenstück im Back-End angezeigt wird, kann der folgende Befehl verwendet werden:

Get-OwaVirtualDirectory -Server TEX1 -ShowMailboxVirtualDirectories

Um eine Liste aller entsprechenden Befehle für das Auflisten der virtuellen Verzeichnisse zu erhalten, kann der folgende Befehl verwendet werden:

get-command get-*VirtualDirectory

So viel erst einmal zur Theorie. Verschiedene Probleme können es erforderlich machen, dass ein oder mehrere der virtuellen Verzeichnisse neu erstellt werden müssen.

Virtuelle Verzeichnisse neu erstellen

Dieses kleine Beispiel zeigt das Neuanlegen des virtuellen Verzeichnisses für Outlook Web Access (Outlook on the Web, OWA). Um einen Fehler zu simulieren, habe ich für diesen Artikel einfach das virtuelle Verzeichnis für OWA in der “Default Web Site” und in der Webseite “Exchange Back End” gelöscht:

Das Löschen der beiden Verzeichnisse führt dann zum HTTP 404 Fehler:

In meinem Fall muss ich nun also Front-End und Back-End Verzeichnis für OWA neu anlegen. Ich habe allerdings nur die Verzeichnisse im IIS gelöscht. Exchange geht also immer noch davon aus, dass Front-End und Back-End existieren. Dies lässt sich mit folgendem Befehl prüfen:

Get-OwaVirtualDirectory -Server TEX1 -ShowMailboxVirtualDirectories

In diesem Screenshot ist zu erkennen, dass das Verzeichnis OWA im IIS fehlt, aber in der Exchange Shell immer noch angezeigt wird:

Exchange speichert seinen Teil der Konfiguration im Active Directory, wie hier zu erkennen ist:

Damit die OWA Front-End und Back-End neu erstellt werden können, müssen nun zunächst die Verzeichnisse auch aus der Exchange Konfiguration gelöscht werden. Dazu kann der folgende Befehl genutzt werden:

Get-OwaVirtualDirectory -Server TEX1 -ShowMailboxVirtualDirectories | Remove-OwaVirtualDirectory

Im Prinzip könnte man jetzt das Verzeichnis für OWA neu anlegen, wäre da nicht die IIS Metabase. Hier gibt es ebenfalls Einträge, die das Neuerstellen des virtuellen Verzeichnisses verhindern.  In der Regel tritt der folgende Fehler auf, wenn versucht wird, das OWA Verzichnis neu zu erstellen und es Reste in der IIS Metabase gibt:

Fehler beim Erstellen des virtuellen IIS-Verzeichnisses ‚IIS://TEX1.frankysweb.local/W3SVC/1/ROOT/owa‘ auf ‚TEX1‘.
+ CategoryInfo          : InvalidOperation: (TEX1\owa (Default Web Site):ADObjectId) [New-OwaVirtualDirectory], In
validOperationException
+ FullyQualifiedErrorId : [Server=TEX1,RequestId=a96fe949-f9e2-48b1-977d-e7a5f8cbc600,TimeStamp=18.10.2017 18:43:5
1] [FailureCategory=Cmdlet-InvalidOperationException] 5812692E,Microsoft.Exchange.Management.SystemConfigurationTa
sks.NewOwaVirtualDirectory
+ PSComputerName        : tex1.frankysweb.local

Um die Leichen in der IIS Metabase zu bereinigen, kann das ziemlich alte Tool “IIS Metabase Explorer” verwendet werden. Das Tool gibt es hier zum Download:

Der “IIS Metabase Explorer” benötigt .NET Framework 3.5 Funktionen, diese müssen ggf. nachinstalliert werden:

Im IIS Metabase Explorer müssen unter “LM –> W3SVC –> 1 –> ROOT” und “LM –> W3SVC –> 2 –> ROOT” die Einträge “OWA” gelöscht werden:

Hinweis: Der Eintrag unter “LM –> W3SVC –> 1 –> ROOT” steht hierbei für das Front-End, “LM –> W3SVC –> 2 –> ROOT” ist das OWA Back-End.

Beide Einträge für OWA können in der IIS Metabase gelöscht werden:

Jetzt kann das OWA Verzeichnis mit der Exchange Management Shell neu erstellt werden:

New-OWAVirtualDirectory -WebSiteName 'Default Web Site' -Server TEX1

Und auch das Back-End lässt sich jetzt wieder erstellen:

New-OWAVirtualDirectory -WebSiteName 'Exchange Back End' -Server TEX1 -Role "Mailbox"

Die OWA Webseite lädt jetzt bereits wieder:

Allerdings müssen die URLs wieder eingetragen werden:

In meinem Fall ist dies “https://outlook.frankysweb.com/owa”

Auch die restlichen Einstellungen, zum Beispiel für die Authentifizierung müssen entsprechend der Wünsche angepasst werden:

Wie schon eingangs erwähnt, gibt es auch die Möglichkeit die virtuellen Verzeichnisse via EAC zurückzusetzen. Jedoch wird dabei immer nur das Front-End neu erstellt. Sollte es, wie hier beschrieben zu Fehlern im Back-End kommen, hilft der Weg über das Exchange Administrative Center nicht weiter.

Auf dem hier beschriebenen Weg können auch die restlichen Verzeichnisse neu erstellt werden (EWS, Active Sync). Das Vorgehen ist gleich und es müssen nur die entsprechenden CMDLets für die weiteren Verzeichnisse benutzt werden. Eine kleine Ausnahme ist allerdings das PowerShell Verzeichnis. Dies ist im nächsten Artikel an der Reihe.

Exit mobile version