Tools: MBReport

Dieses VBSkript wird nicht weiter gepflegt. Heute würde ich Exchange Web Services (EWS) und IEWS und Impersonation nutzen. Glen Scales hat hier aber schon ein Sample bereit gestellt https://gsexdev.blogspot.com/2013/09/exchange-attachment-statistics.html

Achtung:
Dieses Skript steht nur unseren Kunden (Consulting, Fernwartung, Supportcall, Angebotsphase) zur Verfügung. Es ist nicht "downloadbar". Siehe auch Nicht public.
MBREPORT ist kein Plug'n Play Skript, sondern ein Werkzeugkasten für dessen Einsatz VBScript Kenntnisse zwingend erforderlich sind. Die Ausgaben sind ebenfalls nur mit Excel und anderen Tools zu verarbeiten.
Wenn sie eine "einfache" grafische Software zur Ermittlung von Exchange Belegungen suchen, dann ist der Exchange Profile Analyzer (EPA) besser geeignet.

Mit Exchange 2007 können Sie in gewissem umfang einen Teil der Informationen über das Commandlet "Get-MailboxStatistics" oder den Exchange Performance Analyzer erhalten.
Zudem hat das Exchange Team ein PowerShell Skript erstellt:
Finding High Item Count Folders using the Exchange Management Shell
http://blogs.technet.com/b/exchange/archive/2009/12/07/453450.aspx

Exchange 2010 liefert weitere PowerShell-Befehle wie Get-MailboxFolder (http://technet.microsoft.com/en-us/library/dd351164.aspx)

Exchange Server Large MailItem Script
http://blogs.technet.com/b/mikehall/archive/2013/06/27/large-mail-item-script.aspx

Ich wette, dass alle Firmen, die Microsoft Exchange einsetzen, auch die Funktion der Postfächer exzessiv nutzen. für eine Firma kann es da schon einmal interessant sein, wie die Mitarbeiter die Postfächer nutzen. Der Exchange System Manager erlaubt zwar einen ersten Blick auf die Postfächer aber Sie sehen dabei im wesentlichen nur die Größe und die Anzahl der Elemente aber keine Details über Ordnerstrukturen und Elementarten. Zur Auswertung von öffentlichen Ordnern gibt es PFReport.

Hier ein paar Fragen, die sich ein Administrator oder Geschäftsführer schon mal stellen kann:

  • Replikationsbedarf
    Gerade vor der Einführung des Outlook 2003 Cached Mode ist es für die Abschätzung der Belastung ein gutes Hilfsmittel, mehr Daten über die Inhalte zu haben.
  • Wie intensiv nutzen die Mitarbeiter die Kontakte ?
    Sind "Probleme" eher daraus zurückzuführen, dass jemand 50.000 Kontakte in einem Ordner hat ?
  • Gibt es "zusätzliche" Kontaktordner im Postfach ?
    Das ist wichtig, wenn Sie über Fremdtools eine zentrale Pflege oder einen Abgleich von Kontakten erreichen möchten
  • Wer nutzt sehr intensiv die Kalenderfunktion
    Das ist besonders für Stellvertreter etc. wichtig, um einen Eindruck über Datenmengen bei Replikationen zu erhalten
  • Bei wem wurde das "Journal" noch nicht abgeschaltet.
    Viele Firmen deaktivieren das Journal, weil es Office verlangsamt und der Nutzen fraglich ist. Da kann es schon eine sinnvolle Prüfung sein, ob es bei Benutzern einen Ordner "Journal" mit Inhalten gibt
  • Wie viele Mails haben sich mittlerweile in "Junk-Mail" angesammelt
    Zwar erlaubt der Mailboxmanager ein Aufräumen des Ordners, aber auch statistische Daten hierzu sind wichtig. Ebenso wie Aussagen, wer überhaupt noch keinen Ordner "Junk-Mail" hat.
  • "Verbotene Ordner"
    Es kann erforderlich werden, z.B.: mal Ordnern wie "Musik", "Witze" aber auch "PocketSync" etc. zu fahnden, speziell wenn Mitarbeiter auf mobilen PCs Fremdsoftware installiert, die solche Ordner anlegt.
  • Ausspüren von "Kopien"
    Wie im Dateisystem passiert es doch schon mal einfach, dass eine komplette Ordnerstruktur "kopiert" wird. Wie kann man solche Dubletten finden ? Besonders für große Anlagen ist dies eine interessante Option.
  • Lohnt sich Archivierung ?
    Ein Überblick über die Altersstruktur zeigt ihnen auch, wie viel Platz Sie durch eine Archivierung älterer Nachrichten gewinnen könnten.
  • Analyse von Anlagen
    Seit Version 2.5 werden auch die Anlagen in einer separaten XML-Datei geschrieben. Entsprechend kann man nun auch hier das Alter, die Größe und Namen von Anlagen vergleichen oder bestimmte Inhalte (MP3.  AVI, EXE, VBS o.ä.) ausfindig machen.
  • Sitzenbleiber in der Outbox
    Speziell mit der Outook 2003 "Vorschau" ist folgendes unschöne Verhalten möglich: Sie sind in Outlook auf dem Postausgang, der natürlich leer ist und die Vorschau hat nichts anzuzeigen. Nun senden Sie eine neue Mail, die nach dem Versand sofort in der Vorschau "gelesen" wird. Leider ist die Mail dann nicht mehr "Fett/Kursiv", sondern bleibt im Postausgang liegen. Sie müssen Sie Mail wieder öffnen und noch einmal auf "Senden" drücke. Achten Sie aber darauf, dass Sie diesmal den Fokus z.B. auf den Posteingang gelegt habe. Outlook 2007 verhindert dieses Fehlverhalten derart, dass die Vorschau auf dem Postausgang nicht mehr aktiviert werden kann. Besonders "Offline"-Benutzer haben zudem das Problem, dass Sie solche Mails gar nicht mal sehen. (Siehe auch unterwegs mit Outlook: Offline und Replikation) MBReport kann helfen, solche Sitzenbleiber zu finden.
  • Replikationsfehler
    Seit Outlook 2003 gibt es neue Ordner im Postfach, die Fehler bei der Replikation (Offline, CachedMode, OAB etc.) protokolliert. Der Ordner Synchronisationsprobleme/Serverfehler wird leider nicht repliziert, so dass hier "offline Benutzer" gar keine Chance haben, solche Fehler zu erkennen.

Sie sehen also, dass es jede Menge Gründe gibt, mehr über die Inhalte von Postfächern zu wissen. Das Ziel dieses Programms liegt nicht darin, die Inhalte selbst zu analysieren, sondern nur statistische Mengen zur weiteren Auswertung zu erfassen.

Funktionsweise

Das VBScript sollten Sie am einfachsten auf einem Exchange Server starten. Es liest aus dem Globalen Katalog alle Postfächer ihrer Organisation aus und verbindet sich dann mittels CDO1.21 mit jedem einzelnen Postfach. Damit dies funktioniert, muss der ausführende Anwender natürlich die erforderlichen Berechtigungen (Siehe Mailboxrechte) besitzen.

Das Script durchläuft dann rekursiv die Ordnerstruktur des kompletten Postfachs und extrahiert pro Ordner die Anzahl der Elemente, die Größe des Ordners und die Nachrichtenklasse. Zukünftig könnte auch ein Export der Berechtigungen, Formulare und Skripte interessant sein, aber ist aktuell nicht implementiert.

All diese Daten werden wie von vielen MSXFAQ-Skripten schon gewohnt, als XML-Datei niedergeschrieben. Diese XML-Datei können Sie mit dem passenden Stylesheet einfach im Internet Explorer anzeigen lassen oder mit einem anderen Stylesheet auch als CSV-Datei zur Weiterverarbeitung in Excel überführen. für die eigentliche Auswertung eignet sich dann z.B.: die Pivot-Tabellen-Funktion von Excel.

Wenn Sie das Script auf bestimmte Postfächer oder Server eingrenzen wollen, ist aktuell der LDAP-Suchfilter im Script selbst zu editieren. Es gibt keine grafische Konsole oder Kommandozeile.

Download

Dieses Skript ist kein öffentlicher Download
Informationen, warum diese Skripte nicht öffentlich sind, finden Sie auf nicht public.
Aufgrund negativer Erfahrungen beim Einsatz durch andere Personen binde ich den Einsatz von MBReport an die Zustimmung des IT-Leiter oder Geschäftsführer der Exchange Organisation und meine Mithilfe. Eine Abgabe an Dienstleister, externe Berater oder Administratoren ist leider nicht mehr möglich.

Das Skript kann, mit entsprechenden Rechten aufgerufen, rekursiv durch alle (oder eine Auswahl) von Postfächern laufen, rekursiv die Ordner durchscannen und jedes einzelne Element entsprechend anschauen und je nach Rechten alles damit machen. Das Skript ist aber nur der "Rahmen" und die Auswertefunktionen sind natürlich vorab zu definieren, damit Sie in eine CSV-Datei o.ä. geschrieben werden.
Es hängt also etwas davon ab, was sie wie auslesen wollen. Die Basisfunktion ist schon, einfach das Alter und die Größe der Elemente (anlagen bzw. Mails) in CSV-Dateien zu bringen und damit dann eine Auswertung zu erlauben.

Sie sollten aber:

  1. Die erforderlichen Exchange Berechtigungen haben
  2. VBScript "können", denn das Skript muss sicher angepasst werden
  3. Mit CSV-Dateien umgehen können (also mindestens Excel Pivot-Tabellen Funktion
    Und wenn es VIELE Elemente sind mit anderen Reporttools arbeiten

Wenn die Anforderungen aber z.B. heißt, "Was spare ich, wenn ich alles älter 90 Tage und >100 KB archiviere" dann ist es besser das gleich im Skript als Abfrage zu codieren und einfach am Ende die Summer auszugeben. Auch aus Datenschutzaspekten, weil man dann gar nicht erst die Liste aller Anlagen mit Alter (die ja durchaus auch auf "*.MP3, *.FLV, *.AVI" etc. durchsucht werden kann, erhält.

Ich denke Sie verstehen spätestens jetzt auch meine Datenschutzbedenken und warum das Skript nicht einfach als Download auf der MSXFAQ steht. Ich kann ihnen das Skript gerne zukommen lassen, wenn Sie sich an VBScript "ran trauen". Die meisten Anfragen laufen dann aber so, dass ein Kollege von NetatWork oder ich selbst  vor Ort oder per Fernwartung das Skript mit dem Kunden gemeinsam umsetzen.

Wie kann ich sicherstellen, dass Sie "berechtigt" sind, so eine Datenanalyse zu machen ?.  Wenn Sie IT-Leiter sind, dann werden sie meine Vorsicht sicher verstehen und wenn Sie Azubi sind, dann sollten Sie das Vorgehen mit ihrem IT-Leiter/Datenschutzverantwortlichen besprechen.

Sie können das Skript gerne als Administrator oder anderweitig verantwortliche Person erhalten. Schreiben Sie einfach eine Mail von ihrem Firmenaccount an mit dem Betreff "MSXFAQ: MBReport" und vergessen Sie nicht die Angabe ihres Namens der Adresse und ihrer Funktion. Bitte haben Sie Verständnis, dass ich diese Skript nur an IT-Leiter o.ä. abgebe, damit man mir keine Vorwürfe machen kann, ich würde Hackerwerkzeuge verteilen.

Download und Aufruf

Achtung:
MBREPORT ist kein Plug'n Play Skript, sondern ein Werkzeugkasten für dessen Einsatz VBScript Kenntnisse zwingend erforderlich sind. Die Ausgaben sind ebenfalls nur mit Excel und anderen Tools zu verarbeiten.
Wenn sie eine "einfache" grafische Software zur Ermittlung von Exchange Belegungen suchen, dann ist der Exchange Profile Analyzer (EPA) besser geeignet.

Sammeln der Daten

Der erste Schritt ist das Sammeln der Daten von allen Postfächern. Eventuelle Einschränkungen auf Postfächer müssen Sie im Source direkt vornehmen.

cscript mbreport.vbs

Die Laufzeit des Scripts hängt direkt von der Größe der Postfächer, der Performance ihres Servers und des ausführenden PCs ab. Das Script zeigt den Fortschritt in einem Internet Explorer Fenster an, welches sie nicht beenden dürfen. Anhand der Gesamtanzahl der Postfächer, und der für die bisher abgeschlossenen Postfächer verbrauchte Zeit wird eine Schätzung der Endezeit vorgenommen, die natürlich bei ungleich verteilen Mailboxen und Servern nicht sehr genau sein kann.

Im Hintergrund arbeitet das Script in einer Dos-Box und protokolliert seine Arbeit zusätzlich in einer Protokolldatei. Lassen sie sich durch kleinere Warnungen wie "Error getting MAPI Property" nicht erschrecken. Nicht alle Ordner haben eine Message-Class.

Anzeige im Internet Explorer

Klicken Sie einfach direkt die XML-Datei an. In der XML-Datei ist das passende Stylesheet hinterlegt, welches vom VBScript auch bei jedem Lauf wieder angelegt wird.

Konvertierung zu CSV

Die Anzeige in einem Browser ist zwar ganz nett aber bei vielen Mailboxen müssen andere Auswerteprogramme herhalten. Excel oder Access sind dazu gute Startpunkte. Viele Programme bevorzugen dazu eine CSV-Datei, die problemlos aus der XML-Datei zu erstellen ist. Sie benötigen nur das Stylesheet und einen entsprechenden Konverter.

MBReport2csv.xsl
Stylesheet für die Umsetzung nach CSV

Die Konvertierung übernimmt die MSXSL.EXE. Sollten Sie MSXSL.EXE auf ihren PC noch nicht haben, dann helfen ihnen folgende beiden Links weiter

Starten Sie nach der Analyse der Postfächer einfach MSXSL.EXE mit der erzeugten XML-Datei als Quelle, dem Stylesheet und der gewünschten Ausgabedatei

msxsl.exe MailboxReport.xml MBReport2csv.xsl -o MailboxReport.csv

Diese CSV-Datei kann in Excel dann als Liste importiert werden.

Auswertung mit Excel Pivot Tabellen

Excel selbst ist aber auch sehr leistungsfähig und kann direkt XML-Dateien importieren und über die Listen und AutoFilter-Funktion können Sie direkt auf die Daten filtern. Hier am Beispiel, dass ich z.B.: alle Kontaktordner aller Mailboxen anzeigen will.

Das Ganze kann man natürlich noch in eine Pivottabelle überführen und damit sehr viel detaillierter Daten untersuchen. Hier habe ich in einer Pivot-Tabelle links den Pfad aufgelistet und die Anzahl der Mailboxen als Daten. Man sieht sehr gut, dass z.B.: vier Mailboxen einen Ordner für Notizen (IMP.Note) auf ihrer obersten Hierarchie haben. Klicke ich nun auf die "4" doppelt drauf, dann öffnet Excel ein neues Tabellenblatt, mit den Details zu diesen vier Einträgen

Natürlich können Sie hier auch nach bestimmten Ordnernamen o.ä. fahnden, Inhalte aufsummieren, Ordnertiefen analysieren oder auch Namensgleichheiten suchen. Folgende Auswertung zeigt z.B. die Größe und Anzahl in "Junk-Mail" aller Postfächer an:

So können Sie schnell einen Überblick über den Speicherbedarf und die Junk-E-Mail Belastung erhalten.

Anlagen seit 2.5

Seit der Version 2.5 werden nun auch die Namen, Erweiterung und Größe der Anlagen in Verbindung mit dem Postfach und en Pfad in eine separate XML-Datei gespeichert, welches z.B. in Excel dann problemlos ausgewertet werden kann, z.B.: nach Kriterien wie:

  • Summer alle MP3-Dateien, Platzbedarfs aller AVI-Dateien
    Es ist völlig normal, dass ein Mitarbeiter von extern "witzige" Dinge erhält. Das ist in den meisten Firmen zwar nicht gerne gesehen aber auch nicht gleich eine Abmahnung wert. für die Speicherplatzanalyse hingegen ist es schon wichtig, solche Platzfresser zu erkennen
  • Wer hat EXE-Dateien als Anlagen
    Kaum eine Firme möchte gerne, dass ausführbare Komponenten per Mail übertragen werden. Die meisten Virenscanner erkennen dies und können die Dateien auch blockieren. Wenn Sie keinen entsprechenden Schutz aktiv haben, dann sollten Sie vielleicht doch einmal auch eine Auswertung dazu durchführen können
  • Auswertung nach "doppelten" Anlagen
    Eine Gruppierung nach Dateiname und Größe ist oftmals ausreichend um zu sehen, welche Anlagen den "Weg" durch die Instanzen gemacht haben und nun vielfach in Postfächern kostbaren Platz "verschwenden".

Alter mit Version 2.92

Seit Version 2.92 schreibt MBreport auch eine CSV-Datei mit, in der für jedes Datum die Summer der Mails mit diesem Alter abgelegt sind. Wird diese CSV-Datei z.B. in Excel geöffnet, sortiert und aufaddiert, dann kann als Diagramm schön die Größenverteilung und das Einsparungspotential durch Archivprodukte aufgezeigt werden.

Archivauswertung

Meine Testdaten sind natürlich nicht repräsentativ. Man kann also gut sehen, an welchen Tagen diese Test-VM Nachrichten übertragen hat. Werden nur die Anlagen archiviert, dann ist die Anlagediagnose schon ausreichend.

Weiterentwicklung

Aktuell ist das Skript auf einem Stand, der für meine Einsätze ausreichend ist. Aber eine kleine Wunschliste gibt es trotzdem:

  • Berechtigungen
    Benutzer können anderen Anwendern "Rechte" geben. Dies kann gewollt und erlaubt sein, aber Missbrauch oder Falscheinstellungen sind auch möglich. Das Script könnte die Rechte mit extrahieren und z.B. auch ein "Change Management" mitführen. Es ist relativ einfach, z.B. XML-Dateien zu vergleichen um Änderungen zwischen zwei Durchläufen zu erkennen.
    Beispielcode: Changing the default permissions on a calendar to Reviewer
    http://gsexdev.blogspot.com/2005/05/changing-default-permissions-on.html
  • User-Reporting, Benachrichtigungen, Regeln und Quota
    Als Exchange Administrator kann ich zwar die maximale Größe des Postfachs vorgeben aber als Mitarbeiter habe ich es nicht ganz so einfach, die Größe von Ordner zu finden. Nett wäre, wenn die Auswertung z.B.: über eine Webseite für den Anwender selbst erreichbar wäre, so dass er selbst seine Ordner und die Größen schnell erkennen kann.
    Beispielcode: Reporting on forwarding rules in Mailboxes and Public Folders via a script
    http://gsexdev.blogspot.com/2005/10/reporting-on-forwarding-rules-in.html
  • Fehlerbehandlung
    VBScript ist leider etwas limitiert und da Ordner in einem Postfach auch sehr "Fremde" Zeichen enthalten können, die dann als UNICODE-String zurück und als Ausgabe ausgegeben werden, kann es schon passieren, dass das Script dabei abbricht. Hier ist sicher noch Optimierungspotential.

Vielleicht benötigen Sie ja eine Funktion, die ich bei ihnen vor Ort im Rahmen einer Dienstleistung für Sie weiter entwickle.

Exchange 2007

Das Commandlet "Get-MailboxStatistics" von Exchange 2007 erlaubt zumindest eine Auswertung bezüglich der Ordnergröße. Hier ein Auszug meiner Mailbox

Get-MailboxStatistics

Diese Daten können natürlich auch mit eigenen Programm ausgelesen aber auch weiter verarbeitet werden. Ein Beispiel hat das Exchange Team Blog schon veröffentlicht.

Get-Mailbox | Get-MailboxFolderStatistics `
| Where {$_.ItemsInFolder -gt 5000} `
| Sort-Object -Property ItemsInFolder -Descending `
| fl Identity, ItemsInFolder

Auf dem Eintrag gibt es auch einen Link zu einem umfangreicheren PowerShell-Skript.

Alternativen

Wenn Sie lieber eine ASP-Seite für Informationen über eine Mailbox nutzen wollen, dann ist der Beispielcode von Lee Derbyshire vielleicht eine gute Startplattform

Diese ASP-Seite könnten Sie auf einem Intranet natürlich für Support/Helpdesk bereitstellen. Das Skript selbst könnte mit "privilegierten Rechten" die Größe der Mailboxen auslesen, während der Zugriff auf die IIS-Seite dann über eine Sicherheitsgruppe nur für einen bestimmten Personenkreis zugelassen wäre. Allerdings ermittelt diese Beispielskript aktuell nicht die Quota-Einstellungen und eignet sich nicht für die Archivierung der ermittelten Daten für spätere Vergleiche.

Weitere Links