Mobile-Menu

Probleme im Mail-Server ermitteln und gezielt beheben So geht die schnelle Exchange-Diagnose im Fehlerfall

Autor / Redakteur: Thomas Joos / Dipl.-Ing. (FH) Andreas Donner |

Sobald Exchange Probleme macht, äußert sich das in vielfältigen Symptomen. Administratoren müssen den Fehler daher so schnell wie möglich eingrenzen, um die Ursache zu beheben und die Umgebung wieder lauffähig zu machen. Wir zeigen welche Vorgehensweisen dabei helfen.

Anbieter zum Thema

Mit speziellen Tools vereinfacht Microsoft die Fehlersuche in Exchange-Umgebungen sowohl für Admins als auch für Anwender.
Mit speziellen Tools vereinfacht Microsoft die Fehlersuche in Exchange-Umgebungen sowohl für Admins als auch für Anwender.
(Bild: Microsoft)

Wenn Exchange nicht mehr korrekt funktioniert, ist der erste Schritt der Fehlerermittlung immer die Erstellung einer Liste aller Exchange-Server und der verschiedenen Domänencontroller, die von Exchange verwendet werden. Exchange arbeitet eng mit Active Directory zusammen und häufig liegt ein Fehler in den Verbindungen einzelner Server.

Die Exchange-Server in der Organisation lassen sich Administratoren in der Exchange-Verwaltungsshell mit dem Befehl "get-exchangeserver" anzeigen, die Domänencontroller mit "get-domaincontroller". Die Liste kann mit der Zusatzoption "|out-printer" auch ausgedruckt werden.

Domänencontroller und Exchange-Server in der PowerShell testen

Wenn die Liste der Domänencontroller und Exchange-Server verfügbar ist, besteht der nächste Schritt darin, von einem Rechner aus alle Server anzupingen. So wird sichergestellt, dass die beteiligten Server im Netzwerk auch zur Verfügung stehen. Dazu verwenden Administratoren am besten den Rechnernamen, damit auch gleich die Namensauflösung getestet werden kann. Verbindungstests nimmt man ebenfalls am besten in der PowerShell mit dem Befehl "Test-Connection" vor (siehe Abbildung 1). Hier müssen alle Exchange-Server und Domänencontroller überprüft werden. Oft lassen sich schon hier Fehler eingrenzen.

Exchange-Dienste kontrollieren

Exchange braucht für einen stabilen Betrieb einige Systemdienste auf den Servern. Diese Dienste überprüfen Sie ebenfalls am schnellsten mit der PowerShell oder der Exchange-Verwaltungsshell. Der Vorteil bei der Überprüfung in der PowerShell ist, dass Sie die Dienste auch über das Netzwerk anzeigen lassen können. Dazu verwenden Sie auf einem Rechner im Netzwerk den Befehl:

get-service *exchange* -ComputerName <Exchange-Server>

Testen Sie alle Dienste auf allen Exchange-Servern und stellen Sie sicher, dass die notwendigen Dienste, den Status "Running" besitzen. Auf diesem Weg erkennen Sie recht schnell, auf welchen Exchange-Servern im Netzwerk einzelne Exchange-Dienste nicht mehr funktionieren und welche Dienste das sind. Mit dem CMDlet können Sie natürlich auch andere Systemdienste testen und anzeigen. Sie können den Zustand der Exchange-Dienste in der Exchange-Verwaltungsshell mit dem Befehl "Test-Servicehealth" überprüfen. Mit diesem Befehl lässt sich erkennen, ob die Exchange-Dienste und -Rollen funktionieren und ob auch die abhängigen Dienste gestartet und funktionsfähig sind (siehe Abbildung 2).

Datenbanken und Verbindungen in der Exchange-Verwaltungsshell testen

Haben Sie die generelle Serververfügbarkeit und die Systemdienste überprüft, testen Sie als nächstes die Exchange-Datenbanken. Dazu verwenden Sie die Exchange-Verwaltungsshell. Sie haben auch hier die Möglichkeiten den Status für alle Server schnell in Erfahrung zu bringen:

Get-MailboxDatabase | Get-MailboxDatabaseCopyStatus

Achten Sie darauf, dass die produktiven Datenbanken den Status "Mounted" besitzen. Der nächste Schritt besteht darin, dass Sie überprüfen, ob Outlook-Clients noch mit HTTP und TCP auf die Exchange-Clientzugriffserver zugreifen können. Auch dazu verwenden Sie die Exchange-Verwaltungsshell und die beiden Befehle:

  • Test-OutlookConnectivity -Protocol HTTP
  • Test-OutlookConnectivity -Protocol TCP

Bevor Sie den Test mit dem Cmdlet ausführen können, müssen Sie mit dem Exchange-Skript "New-TestCasConnectivityUser.ps1" einen Testbenutzer erstellen. Um das Skript auszuführen, wechseln Sie in der Exchange-Verwaltungsshell in das Verzeichnis "C:\Program Files\Microsoft\Exchange Server\V15\Scripts". Geben Sie den Befehl ".\New-TestCasConnectivityUser.ps1" ein. Anschließend fragt Sie das Skript nach einem sicheren Kennwort für den neuen Testbenutzer. Den Namen des Benutzers legt das Skript selbst fest.

Bestätigen Sie das Anlegen mit der (Eingabe)-Taste. Sie können das Skript auch so starten, dass ein bestimmter Postfachserver automatisch verwendet wird. Die Syntax dazu lautet "get-mailboxServer | .\new-TestCasConnectivityUser.ps1". Achten Sie darauf, den Befehl am besten direkt im Verzeichnis "C:\Program Files\Microsoft\Exchange Server\V15\Scripts auszuführen" (siehe Abbildung 3).

Sie erhalten auch hier das Ergebnis, ob die Verbindung erfolgreich war, oder eben nicht. Alle Clientzugriffserver filtern Sie übrigens mit "Get-ClientAccessServer". Ob Exchange ActiveSync funktioniert, testen Sie in der Exchange-Verwaltungsshell mit "Test-ActiveSyncConnectivity -ClientAccessServer <Servername>".

Zusätzlich stehen noch mehr CMDlets für die Analyse zur Verfügung. Die Syntax ist jeweils ähnlich:

  • Test-OwaConnectivity
  • Test-EcpConnectivity -
  • Test-WebServicesConnectivity
  • Test-PopConnectivity
  • Test-ImapConnectivity

Microsoft Stellt überdies ein Tool zur Verfügung, mit dem Anwender Probleme bei der Verbindung von Clients zu Exchange beheben können. Das Microsoft-Verbindungsuntersuchungs-Tool laden Anwender auf der Seite des Remote Connectivity Analyzers herunter. Die Installationsdatei lässt sich auch direkt herunterladen.

Nach der Installation können Anwender mit dem Tool Verbindungsprobleme mit Outlook lösen. Über diverse Assistenten können sich Anwender dabei auch selbst helfen (siehe Abbildung 4).

E-Mail-Fluss testen

Sie können in der Exchange-Verwaltungsshell auch den E-Mail-Fluss testen. Dazu verwenden Sie das CMDlet "test-mailflow -SourceMailboxServer <Postfach-Server>". Sie erhalten auch hier das passende Ergebnis und können feststellen, ob der E-Mail-Fluss auf dem entsprechenden Postfach-Server funktioniert.

Zusammen mit dem E-Mail-Fluss auf den Exchange-Servern sollten Sie auch die Abarbeitung der Warteschlangen auf den Transportservern überprüfen. Auch hier stehen CMDlets in der Exchange-Verwaltungsshell zur Verfügung: "Get-TransportServer | Get-Queue". Die Warteschlangen sollten möglichst leer sein. So ist sichergestellt, dass die Transport-Server die E-Mails auch weiterleiten können.

Die einzelnen Ports auf den Servern sollten Sie ebenfalls testen. Dazu verwenden Sie das CMDlet "test-port" und die entsprechende Port-Nummer. Vor allem die Ports 25 (Transport-Server), 135 (Clientzugriff-Server und Postfach-Server), 443 (Clientzugriff-Server) und 587 (Transport-Server) müssen offen sein und kommunizieren können.

(ID:42516835)