Neue Exchange Reporter Version (3.8: Codename Leslie)

Gerade habe ich die Version 3.8 (Codename Leslie) hochgeladen. Dies ist die erste Version die einen “Codenamen” trägt, da Leslie (der Leslie) so freundlich war, sich durch die vielen Zeilen PowerShell Code zu wühlen und einige Fehler gefunden und gemeldet hat.

Die folgenden Fehlerbehebungen sind in der Version 3.8 enthalten:

  • updatereport.ps1: Das Modul zeigte die falsche Version an. Vielen Dank an Leslie.
  • rblreport.ps1: Tote Blacklist dynip.rothen.com entfernt. Vielen Dank an Leslie.
  • mailreport.ps1: Rechtschreibfehler behoben. Vielen Dank an Leslie.
  • updatereport.ps1: Fehler bei Umlauten behoben / Fehler bei der Bennenung einer Variable behoben. Vielen Dank an Leslie.
  • Ganze viele Rechtschreibfehler behoben. Vielen Dank an Leslie.
  • Include_Functions.ps1: Titel der Diagramme wurden nicht immer korrekt angezeigt. Vielen Dank an Leslie.

Wie man sieht war Leslie sehr fleißig und hat auch gleich den Fix mitgeschickt. Er hat mir hier also ziemlich viel Arbeit abgenommen (nicht nur bei den teils recht merkwürdigen Rechtschreibfehlern). Ebenfalls hat Leslie zwei neue Module beigesteuert, die beiden neuen Module (Lizenzreport und Adresslisten) werden aufgrund von Zeitmangel meinerseits aber erst in der nächsten Version enthalten sein. Ich wollte euch und Leslie aber zumindest nicht mehr länger auf die Fehlerbehebungen warten lassen.

Die aktuelle Version 3.8 kann hier runtergeladen werden:

Mehr Informationen zum Exchange Reporter gibt es hier:

https://www.frankysweb.de/exchange-reporter-2013/

In der kommenden Version 3.9 werden dann voraussichtlich einige Verbesserungen bei den Mailstatistiken einfließen, welche sich schon einige Benutzer gewünscht haben, beispielsweise die Trennung zwischen externen und internen Mails. Ich hoffe dass ich die nächste Version 3.9 noch im November fertig bekomme.

Besonderer Dank für die vielen gefundenen Fehler und deren Behebung an Leslie! Top Arbeit!

Neue Exchange Reporter Version (3.8: Codename Leslie)

19 Gedanken zu „Neue Exchange Reporter Version (3.8: Codename Leslie)“

  1. Hallo Frank,

    sehr schönes Tool. Wäre es möglich das bei den „größten Mailboxen“ auch die Anzahl an Mails dabei steht?
    Also es ist bestimmt möglich ;)
    Aber vielleicht kannst du das in der nächsten Version ja mit einbringen.

    Antworten
  2. Vielen Dank,

    für die Bereitstellung deines Tools was mir und vielen anderen Admins eine große Hilfe bei der Übersicht ihrer Umgebungen ist.

    Ich hätte ein paar Wünsche auch wenn Weihnachten noch 2 Monate dauert ;-)

    1. in der settings.ini würde ich mir eine Option wünschen, wonach man die Tage der Inaktivität von ActiveSync Geräten angeben kann ($daysinactive -gt 60). Wenn möglich mit gleichzeitiger Anpassung der Überschrift im Report (easreport.ps1 > „$l_eas_t1header“)

    2. Hinterlegung von AM oder PM bei der Angabe von einem DB-Schwenk -> siehe Kommentar vom 20. August 2020 um 09:55
    https://www.frankysweb.de/neue-exchange-reporter-version-exchange-reporter-3-7/

    3. Hinterlegung des Absender Anzeigenamen in der settings.ini | Derzeit „Exchange Reporter – http://www.FrankysWeb.de

    4. Sortierung der Datenbanken nach Namen in der „Datenbank Übersicht“

    Vielen Dank und bleib gesund

    Antworten
    • Hi Paul und Frank,

      das Problem bei der Anzeige der Uhrzeit beim Datenbankschwenk lässt sich schnell lösen.

      Da das Datum im deutschen Format ist würde ich auch die Uhrzeit im deutschen Format darstellen also ersetzen (in der dagreport.ps1) von
      $failovertime = $failovertime | get-date -format „dd.MM.yy hh:mm:ss“
      durch
      $failovertime = $failovertime | get-date -format „dd.MM.yy HH:mm:ss“

      falls es englisch bleiben soll muss man mit culture arbeiten also ersetzen von
      $failovertime = $failoverevent.TimeCreated
      $failovertime = $failovertime | get-date -format „dd.MM.yy hh:mm:ss“
      durch ($culture am besten außerhalb von foreach setzen)
      $culture = [System.Globalization.CultureInfo]::CreateSpecificCulture(‚en-US‘)
      $failovertime = $failoverevent.TimeCreated.ToString(‚dd.MM.yy hh:mm:ss tt‘, $culture)

      Grüße Leslie

      Antworten
      • Hallo Leslie,

        ich habe es erstmal mit folgendem Vorschlag probiert.
        $failovertime = $failovertime | get-date -format „dd.MM.yy HH:mm:ss“

        Danke

        Antworten
  3. Hallo Jonas,

    das kannst du erstmal schnell mit ein paar kleinen Änderungen an der mbxreport.ps1 im Module Ordner machen.

    Ich wusste nicht genau was du magst, deswegen habe ich es dir mit Recoverable Items gebaut.

    Zeile 5 ändern in (statt ItemsCount kannst du natürlich auch Anzahl Elemente oder sowas schreiben)
    $cells=@(„$l_mbx_name“,“$l_mbx_size“,“$l_mbx_database“,“ItemsCount“)

    in Zeile 23 einfügen
    $mbxItemsCount = (Get-MailboxFolderStatistics -Identity $mailbox.displayname | measure -Property itemsinfolder -sum).sum

    Zeile 28 ändern in
    $cells=@(„$mbxname“,“$mbxsize“,“$db“,“$mbxItemsCount“)

    Grüße Leslie

    Antworten
  4. Hallo Frank,

    vielen Dank für die neue Version.
    Ich will nur den Office 365 Report. Ist das mit Exchange Reporter möglich?
    In der settings.ini habe ich „OnlyUseOffice365“ auf yes gesetzt und im Abschnitt „Office365“ die Zugangsdaten eingegeben und alle andere Module außer o365report.ps1 auskommentiert.
    Wenn New-ExchangeReport ausgeführt wird, tritt bei Loading global Variables ein Fehler auf.

    In ErrorLog wird Folgendes protokolliert:
    Die Benennung „Set-ADServerSettings“ wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern enthalten), und wiederholen Sie den Vorgang.

    Hat jemand eine Idee, woran es scheitert?

    Danke und viele Grüße
    Ziva

    Antworten
  5. Hi Ziva,

    ich versuche dir mal zu helfen aber kann das nur begrenzt weil mir kein Office365 zum Testen zur Verfügung steht. Das Set-ADServerSettings stammt aus den Exchange on Premise Verwaltungstools womit der Scope der Session definiert wird und das du bei reinem Office365 nicht hast aber auch nicht nötig sein sollte. Verschieb mal die Zeile 377 in die Zeile 367 in der New-ExchangeReport.ps1. Damit sollte dieser Fehler verschwinden und ich drücke dann mal die Daumen, dass auch der Bericht läuft.

    Grüße Leslie

    Antworten
    • Hi Leslie,

      Danke! In der Tat, daran lag es.
      Allerdings scheint noch etwas zu fehlen da ich nur einen leeren Bericht bekomme. Muß noch etwas Office 365 seitig konfiguriert werden?

      Grüße Ziva

      Antworten
      • Hi Ziva,

        habe das Script mal überflogen, weil ich es wie gesagt nicht testen kann ohne Office365. Dass der Bericht leer bleibt spricht dafür dass sich da vielleicht was geändert hat. Benutzt du MFA? Gibt es eine Fehlermeldung?

        Grüße Leslie

        Antworten
  6. Hallo,
    ich habe einen Exchange Server2013, neuster Patchstand, bei dem ich den Exchange Reporter einsetze.
    Ich habe aber das Problem (bei der Version 3.5 und auch jetzt nach dem Update auf 3.8), dass bei der E-Mails Statistik der letzten 7 Tage immer einige Tage, manchmal auch alle fehlen. Das ist bei den gesendeten, als auch bei den empfangenen E-Mails der Fall.
    Woran kann das liegen?

    Antworten
    • Hi Peter,

      das hatte ich bisher noch nicht. Sind die Logs von den Tagen vorhanden? Prüf mal unter %ExchangeInstallPath%TransportRoles\Logs\MessageTracking ob Loginformationen zu dem Zeitraum vorhanden sind. Nicht dass Backupsoftware oder Bereinigungen die Logs beseitigt haben oder die Einstellungen nicht stimmen.
      Was sagt ein „Get-TransportService | select -Property messagetr*“ ?

      Grüße Leslie

      Antworten
    • Hi Ziva,

      dann führe mal das folgende in der Powershell aus und schau mal ob überhaupt was ankommt (User und Passwort noch eintragen). Das was direkt in der nächsten Zeile kommt gehört zusammen ist also ein Befehl und hier nur umgebrochen.

      $O365User = „USER“

      $O365Pass = „Passwort“

      $O365passpassword = $O365Pass | ConvertTo-SecureString -AsPlainText -Force

      $o365Creds= New-Object System.Management.Automation.PSCredential -ArgumentList $O365User, $O365passpassword

      $PSsession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $o365creds -Authentication Basic -AllowRedirection

      Import-PSSession $PSsession -wa 0 –Prefix o365

      Get-o365MessageTrace

      Grüße
      Leslie

      Antworten
      • Hi Leslie,

        der Test hat funktioniert nur die Anmeldedaten habe ich mit:
        $o365Creds = Get-Credential
        initialisiert da sonst bei:
        $O365passpassword = $O365Pass | ConvertTo-SecureString -AsPlainText -Force
        folgender Fehler auftrat:
        ConvertTo-SecureString : Das Argument kann nicht an den Parameter „String“ gebunden werden, da es sich um eine leere Zeichenfolge handelt.

        Cmdlet Get-o365MessageTrace liefert dann eine Übersicht der zuletzt empfangenen / gesendeten E-Mails.

        Danke für deine unermüdliche Unterstützung.

        Grüße
        Ziva

        Antworten
      • Hi Leslie,

        sorry aber ich habe doch etwas übersehen.
        Wenn New-ExchangeReport.ps1 ausgeführt wird tritt in der Konsole folgender Fehler auf:
        Working on Module ‚o365report.ps1‘:2020-11-03T20:47:00.266Z Comms ErrErrorable to open async communications port – error 0x800704D6

        und im ErrorLog.txt wird folgendes protokolliert:
        -Start– 11/03/2020 21:46:51 ———————————————————————————-
        o365report.ps1
        Die Benennung „Get-O365MessageTrace“ wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern enthalten), und wiederholen Sie den Vorgang.
        -End— 11/03/2020 21:47:02 ———————————————————————————-

        Grüße
        Ziva

        Antworten
        • Hey Ziva,

          dann hat er die Session nicht importiert. Ändere mal
          $connect = Import-PSSession $PSsession -ea 0 -wa 0 –Prefix o365 *>$null
          in
          Import-PSSession $PSsession –Prefix o365
          dann siehst du mehr, sonst werden alle Meldungen unterdrückt.

          dann startest du den new-exchangereport.ps1 aus der (admin)powershell

          VG Leslie

  7. Hallo Leslie,
    wir habe die Messagetracking Log auf eine andere Partition gelegt und sie werden für 30 Tage aufbewahrt und sind auch vollständig da.
    Get-TransportService | select -Property messagetr* bringt:

    MessageTrackingLogEnabled : True
    MessageTrackingLogMaxAge : 30.00:00:00
    MessageTrackingLogMaxDirectorySize : 1000 MB (1,048,576,000 bytes)
    MessageTrackingLogMaxFileSize : 10 MB (10,485,760 bytes)
    MessageTrackingLogPath : E:\TransportRoles\TransportRoles\Logs\MessageTracking
    MessageTrackingLogSubjectLoggingEnabled : True

    Antworten
  8. Hallo,

    Danke für die neue Version.
    Lese den Report meistens am Ipad. Dort werden die Grafiken nun nicht mehr in den Report eingebunden, sondern befinden sich alle am Ende.
    Liegt das am neuen Report oder an einem IOS Update? Wie kann das behoben werden?

    Danke und Grüsse

    Jojo

    Antworten

Schreibe einen Kommentar