Kleines Script um den Exchange Server Status zu ermitteln

In diesem Beitrag gibt es mal wieder ein kleines Script welches den Status zu wichtigen Exchange Parametern anzeigen kann. Das Script zeigt den Status zu den Datenbanken, Warteschlangen, Diensten und Speicherplatz übersichtlich an. So kann man sich bei Problemen einen ersten schnellen Überblick über den Exchange Zustand machen. Das Script kann bei GitHub runtergeladen werden:

Ich lasse das Script direkt beim Starten der Exchange Shell ausführen, so dauert der Start der Shell zwar ein klein wenig länger, aber ich habe direkt einen Überblick über die wichtigsten Parameter. So sieht der Start der Exchange Shell auf auf meinen Test Exchange Server aus:

Kleines Script um den Exchange Server Status zu ermitteln

Läuft beispielsweise einer der Exchange Dienste nicht, bekomme ich den Status direkt beim Start der Exchange Server Management Shell angezeigt:

Kleines Script um den Exchange Server Status zu ermitteln

Um das Script direkt beim Starten der Management Shell auszuführen, muss nur die Verknüpfung im Startmenü etwas angepasst werden. Dazu muss der Speicherort der Verknüpfung aus dem Startmenü geöffnet werden:

Verknüpfung bearbeiten

Das Ziel der Verknüpfung kann nun bearbeitet werden:

Verknüpfung bearbeiten

In der Standardeinstellung sieht das Ziel der Verknüpfung etwas so aus:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noexit -command ". 'D:\Exchange Server\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto -ClientApplication:ManagementShell"

Am Ende lässt sich nun einfach das Script anhängen, welches beim Start der Shell ausgeführt werden soll:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noexit -command ". 'D:\Exchange Server\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto -ClientApplication:ManagementShell; . 'C:\Install\Get-ExchangeStatus.ps1'"

Beim Hinzufügen den Status Scripts muss auf die Syntax geachtet werden: Semikolon, gefolgt von Punkt und dem Pfad in Hochkomma. Natürlich kann das Script auch manuell ausgeführt werden. Dazu kann der folgende Befehl verwendet werden:

.\Get-ExchangeStatus.ps1
Kleines Script um den Exchange Server Status zu ermitteln

Ihr könnt mir gerne eure Vorschläge schicken, welche Daten ihr auf den ersten Blick sehen wollt, denn das Script lässt sich ja beliebig erweitern. Ihr könnt euch auch gerne auf GitHub direkt beteiligen.

11 Gedanken zu „Kleines Script um den Exchange Server Status zu ermitteln“

  1. Hallo ,

    ich bekomme beim ausführen des Scriptes folgende fehler Meldung : The File C:\…….Get-ExchangeStatus.ps1 is not digitally signed. You cannot run this script on the current system.

    Danke im Vorfeld für die Hilfe

    Antworten
  2. Hy ,

    ich würde gerne den Inhalt in eine Datei umleiten oder als Mail verschicken.
    Die foreach abfragen bekomme ich nicht geschrieben.

    hat einer eine Lösung dafür ?

    VG

    Sascha

    Antworten
  3. Moin Frank,

    erstmal danke für das Skript ;)
    Beim Ausführen auf einer 2-Knoten-DAG bekomme ich nicht ganz schlüssige Ergebnisse.
    Ist das Skript nur für Standalone-Exchange-Server gedacht?

    Danke und Gruß
    Bent

    Antworten
  4. bei mir ptasselt esd nur von Fehlermeldungenm was mache ich da falsch, hier ein ausschnitt:
    PS] C:\temp>./Get-ExchangeStatus.ps1
    In C:\temp\Get-ExchangeStatus.ps1:202 Zeichen:17
    + Sign up
    + ~
    Das kaufmännische Und-Zeichen (&) ist nicht zulässig. Der &-Operator ist für eine zukünftige Verwendung reserviert.
    Verwenden Sie das kaufmännische Und-Zeichen in doppelten Anführungszeichen („&“), um es als Teil einer Zeichenfolge zu
    übergeben.
    In C:\temp\Get-ExchangeStatus.ps1:207 Zeichen:209
    + … k Button–medium Button d-lg-none color-fg-inherit p-1″> <span cla …
    + ~
    Der Operator "<" ist für zukünftige Versionen reserviert.
    In C:\temp\Get-ExchangeStatus.ps1:425 Zeichen:13
    + CI/CD & Automation
    + ~
    Das kaufmännische Und-Zeichen (&) ist nicht zulässig. Der &-Operator ist für eine zukünftige Verwendung reserviert.
    Verwenden Sie das kaufmännische Und-Zeichen in doppelten Anführungszeichen ("&"), um es als Teil einer Zeichenfolge zu
    übergeben.
    In C:\temp\Get-ExchangeStatus.ps1:1364 Zeichen:96
    + … ="" data-disable-with="" data-dropdown-tracking="{"type":&q …
    + ~
    Das kaufmännische Und-Zeichen (&) ist nicht zulässig. Der &-Operator ist für eine zukünftige Verwendung reserviert.
    Verwenden Sie das kaufmännische Und-Zeichen in doppelten Anführungszeichen ("&"), um es als Teil einer Zeichenfolge zu
    übergeben.
    In C:\temp\Get-ExchangeStatus.ps1:1364 Zeichen:103
    + … a-disable-with="" data-dropdown-tracking="{"type":"blo …
    + ~
    Das kaufmännische Und-Zeichen (&) ist nicht zulässig. Der &-Operator ist für eine zukünftige Verwendung reserviert.
    Verwenden Sie das kaufmännische Und-Zeichen in doppelten Anführungszeichen ("&"), um es als Teil einer Zeichenfolge zu
    übergeben.
    In C:\temp\Get-ExchangeStatus.ps1:1364 Zeichen:146
    + … "type":"blob_edit_dropdown.more_options_click",&q …
    + ~
    Das kaufmännische Und-Zeichen (&) ist nicht zulässig. Der &-Operator ist für eine zukünftige Verwendung reserviert.
    Verwenden Sie das kaufmännische Und-Zeichen in doppelten Anführungszeichen ("&"), um es als Teil einer Zeichenfolge zu
    übergeben.
    In C:\temp\Get-ExchangeStatus.ps1:1364 Zeichen:153
    + … type":"blob_edit_dropdown.more_options_click","co …
    + ~
    Ausdruck fehlt nach dem unären Operator ",".
    In C:\temp\Get-ExchangeStatus.ps1:1364 Zeichen:153
    + … ype":"blob_edit_dropdown.more_options_click","con …
    + ~
    Unerwartetes Token "&" in Ausdruck oder Anweisung.
    In C:\temp\Get-ExchangeStatus.ps1:1364 Zeichen:166
    + … ot;blob_edit_dropdown.more_options_click","context":{& …

    Antworten
  5. Skripte, die auch korrekte Zustände ausgeben, im Autostart(!) sind mMn gefährlich: man gewöhnt sich sehr schnell daran, dass da eine Menge Text durchrauscht, und schaut gar nicht mehr richtig hin… (bei uns müsste ich z.B 21 DBs in 6 Volumes und in einer DAG sowie drei Knoten prüfen, das wären dann mehrere Seiten Text :-O )

    Ausgaben sollten mE nur im WARN oder CRIT Fall erfolgen: dann fallen sie sofort auf ;-) Und ganz streng genommen sollte man eigentlich ein ordentliches Monitoring haben: wer Exchange betreibt hat ja mindestens auch ein AD, und dann ist man eigentlich schon an dem Punkt, dass man seine Infrastruktur überwachen sollte :-)

    Ich habe übrigens schon länger ein eigenes Startskript für die EMS, weil ich es immer schon doof fand, dass die Default-EMS eine Remote-PS-Verbindung zum lokalen Server aufbaut: das erschwert die Auswertung von Exceptions in eigenen Skripten deutlich.

    Antworten
  6. Hi Frank,

    die Idee find ich super, überhaupt haben mir deine Skripts schon oft das Leben erleichtert. Kurze Frage zu diesem: Kann ich das auch mit einer Exchange Shell auf einer Client Workstation verwenden, oder muss das zwingend auf dem Exchange selbst ausgeführt werden?

    Antworten

Schreibe einen Kommentar