Mit PowerShell-Reporting und cmdlets das Potential von Microsoft Exchange maximal ausschöpfen

Mithilfe der cmdlets in PowerShell können Sie alle möglichen Daten aus Ihrer Exchange-Umgebung abfragen. Auch ein Export in CSV-Dateien ist möglich.

Dieser Artikel behandelt

Exchange-Management

Für Exchange Server gibt es unzählige Reporting-Tools von Drittanbietern. Allerdings sind viele nicht gerade günstig....

Einige dieser Reporting-Tools für Exchange Server sind im Grunde genommen nicht mehr als ein GUI-Frontend für PowerShell. Mithilfe der PowerShell können Sie eine Vielzahl an Informationen über Ihre Exchange-Server-Umgebung ans Tageslicht bringen. Dazu müssen Sie allerdings die entsprechenden Befehle kennen. In diesem Tipp stellen wir einige Möglichkeiten vor, wie Sie PowerShell für das Reporting hinsichtlich Exchange Server verwenden können.

Durch die PowerShell haben Sie Zugriff auf viele statistische Exchange-Informationen. Lediglich Ihr Einfallsreichtum und die PowerShell-Fähigkeiten setzen dem Grenzen. Wir zeigen, wie Sie zum Beispiel an nützliche Mailbox-Daten kommen. Später wenden wir unser Wissen an, um die Daten in eine Reporting-Datei zu schreiben.

Die einfachste Möglichkeit mit der PowerShell an einfache Mailbox-Statistiken zu kommen, ist der folgende Befehl:

Get-Mailbox | Get-MailboxStatistics

Dieser Befehl zeigt den Namen, Anzahl der Objekte, Limit-Status des Storage und die letzte Anmeldezeit an der jeweiligen Mailbox.

Der Befehl ist vor allem nützlich, wenn Sie Exchange zur Herausgabe von bestimmten Attributen zwingen. Der folgende Befehl soll zeigen, was damit gemeint ist. Sie können den Mailbox-Namen durch einen beliebigen ersetzen, falls der Administrator keine Mailbox besitzt.

Get-Mailbox Administrator | Get-MailboxStatistics | Select-Object *

Dieser Befehl gibt eine ungekürzte Liste der Statistiken der gewählten Mailbox aus (Abbildung 1). Die Spalte zur Linken zeigt den Namen des Attributs. Jedes dieser Attribute lässt sich in die PowerShell-Reports aufnehmen. Angenommen Sie wollen einen einfachen Report erschaffen, der den Anzeige-Namen der Mailbox, die Anzahl der Objekte und die komplette Größe enthält. Dies erreichen Sie mit nachfolgendem Befehl:

Get-Mailbox | Get-MailboxStatistics | Select-Object DisplayName, ItemCount, TotalItemSize

Die Ausgabe eines solchen Befehls für die Mailbox des Administrators erscheint nach kurzer Zeit (Abbildung 2).

Abbildung 1: Hier sehen Sie eine nützliche Liste der Mailbox-Statistiken, mit denen Sie weiterarbeiten können.

Abbildung 2: Sie können die PowerShell-Reports so anpassen, dass Sie nur die gewünschten Statistiken erhalten.

Die PowerShell besitzt außerdem einige gute Filter. Angenommen Sie möchten herausfinden, welche beiden Anwender den meisten Platz auf Ihrem Exchange-Server beanspruchen. Dies würden Sie mit folgendem PowerShell-Befehl erreichen:

Get-Mailbox | Get-MailboxStatistics | Select-Object -First 2 TotalItemSize, DisplayName, ItemCount

PowerShell-Reports exportieren

Bisher haben wir die Möglichkeiten des PowerShell-Reportings hinsichtlich Exchange-Server nur für Ausgaben auf den Bildschirm benutzt. In der Realität wollen Sie diese Daten sehr wahrscheinlich in Form einer Datei speichern.

PowerShell ist in der Lage, einige verschiedene Datei-Typen zu erzeugen. Für das Reporting sind allerdings die Formate CSV (Comma-Separated Values) und HTML am Sinnvollsten.

Sie können eine CSV-Datei mithilfe der cmdlet-Export-CSV erstellen. Dazu geben Sie lediglich Dateiname und Pfad an. Nehmen wir an, Sie möchte eine CSV-Datei mit all Ihren Exchange-Mailboxen kreieren. Dafür könnten Sie das cmdlet Get-Mailbox mit den gewünschten Filtern bezüglich der Attribute benutzen. Danach übermitteln Sie die Ausgabe zur Weiterverarbeitung dem cmdlet Export-CSV. Der Befehl würde beispielsweise so aussehen:

Get-Mailbox | Export-CSV C:\Data\Report.csv

Wollen Sie einen HTML-basierten Report erzeugen, ist das komplexer. Sie können dasselbe Prinzip wie für das Erstellen einer CSV-Datei beibehalten. Allerdings müssen Sie mit dem cmdlet Select-Object arbeiten und die Objekt-Attribute für die Ausgabe explizit angeben. Dieses verarbeiten Sie danach mit den cmdlets ConvertTo-HTML und Out-File weiter. Weiterhin geben Sie Pfad und Dateiname an.

Sehen wir uns das in einem Beispiel an, in dem Sie den Anzeige-Namen und die Anzahl der Objekte jeder Mailbox ausgeben möchten. Der Befehl dafür sieht etwa so aus:

Get-Mailbox | Get-MailboxStatistics | Select-Object DisplayName, ItemCount | ConvertTo-HTML | Out-File C:\Data\Report.htm

Das Reporting mit der PowerShell bietet leistungsfähige Optionen. Auch wenn ich in meinen Beispielen die Mailbox-Statistiken verwendet habe, können Sie mithilfe von PowerShell jeden Aspekt Ihrer Exchange-Installation ausgeben lassen.

Über den Autor: Brien M. Posey, MCSE, hat bereits acht Microsofts MVP-Auszeichnung für Exchange Server, Windows Server und Internet Information Server (IIS) erhalten. Brien hat als CIO für eine landesweite Krankenhauskette gearbeitet und war für das Department of Information Management in Fort Knox zuständig. Sie finden weitere Informationen zu seiner Person auf seiner Website unter brienposey.com.

Artikel wurde zuletzt im November 2013 aktualisiert

Pro+

Premium-Inhalte

Weitere Pro+ Premium-Inhalte und andere Mitglieder-Angebote, finden Sie hier.

Erfahren Sie mehr über Exchange-Management

0 Kommentare

Älteste Beiträge 

Passwort vergessen?

Kein Problem! Tragen Sie Ihre E-Mail-Adresse unten ein. Wir werden Ihnen eine E-Mail mit Ihrem Passwort schicken.

Ihr Passwort wurde an die folgende E-Mail-Adresse gesendet::

- GOOGLE-ANZEIGEN

SearchSecurity.de

SearchStorage.de

SearchNetworking.de

SearchDataCenter.de

Close