Exchange Reporter 3.10 verfügbar

Gerade habe ich die neue Version 3.10 des Exchange Reporters hochgeladen. In der neuen Version habe ich zahlreiche Fehler behoben, welche mir gemeldet wurden. Hier eine Liste der behobenen Probleme:

  • mbxreport.ps1: Mailboxen nahe des Sendelimits werden nicht angezeigt (Danke Mario)
  • mailreport.ps1: Schreibfehler korrigiert (Danke Matthias)
  • Fehler der Modulzuordnung in settings.ini korrigiert
  • HealthChecker.ps1: HealthChecker Script aktualisiert
  • HealthChecker.ps1: Fehler beim Import der XML Daten behoben
  • redirectreport.ps1: Zeigt an ob Regel aktiviert oder deaktiviert ist
  • pfreport.ps1: Der Report liefert nun auch Daten zu Exchange 2019 Public Folders (Danke Mario)
  • easreport.ps1: Liefert zusätzlich Daten der ActiveSync Geräteklassen
  • includefunctions.ps1: Exchange Versionsermittlung liefert nun die aktuellste Exchange Version (während Migrationsphase)

Außerdem gibt es ein neues Modul:

  • clientinfo.ps1: Liefert die eingesetzten Outlook Versionen

Das Modul clientinfo.ps1 gab es bis einschließlich der Exchange Reporter Version 3.5. Ich musste es zunächst leider entfernen, da es keine verlässlichen Daten mehr geliefert hat. Das Modul ist nun zurück und liefert wieder eine Übersicht der Outlook Versionen, welche sich mit den Exchange Server verbinden. Leider lässt sich aber nicht die genaue Outlook Version aus den Logs auslesen, da mitunter unterschiedliche Outlook Versionen die gleiche Build Nummer tragen (Mehr dazu hier: Outlook Version aus Exchange MAPI Log auslesen).

Hier noch ein Screenshot des Moduls clientinfo.ps1:

Exchange Reporter 3.10 verfügbar

Die neue Exchange Reporter Version kann direkt hier runtergeladen werden:

Hier finden sich die Beschreibung der Features und weitere Screenshots:

Für die nächste Version sind zwei weitere Module in der Entwicklung, zum einen werden die AMSI Logfiles (wenn verfügbar) in den Report integriert und auch der durch Exchange Logfiles verbrauchte Speicherplatz wird seinen Platz im Report finden. Aktuell habe ich aber noch keinen Zeitplan für die nächste Version.

8 Gedanken zu „Exchange Reporter 3.10 verfügbar“

  1. Hi. hab mal das Modul POPconReport.ps1 für die aktuelle Version 4.5.1 angepasst:

    $POPconInstallPath = „C:\Program Files\Servolutions\POPcon“
    $popconreport = Generate-ReportHeader „POPconReport.png“ „$l_pc_header“

    #Übersicht

    $cells=@(„$l_pc_servicedname“,“$l_pc_servicename“,“$l_pc_state“)
    $popconreport += Generate-HTMLTable „$l_pc_header2“ $cells

    $pcservice = Get-Service POPconService
    $pcprocess = Get-Process POPconService

    $pcservicedname = $pcservice.DisplayName
    $pcservicename = $pcservice.name
    $pcstate = $pcservice.status

    $cells=@(„$pcservicedname“,“$pcservicename“,“$pcstate“)
    $popconreport += New-HTMLTableLine $cells
    $popconreport += End-HTMLTable

    #Verzeichnisse

    $pcbadmailcount = (Get-ChildItem $POPconInstallPath\BADMAIL | where {$_.name -notmatch „was_ist“}).count
    $pcpickupcount = (Get-ChildItem $POPconInstallPath\PICKUP | where {$_.name -notmatch „was_ist“}).count
    $pctoolargecount = (Get-ChildItem $POPconInstallPath\TOOLARGE | where {$_.name -notmatch „was_ist“}).count

    $cells=@(„$l_pc_dirName“,“$l_pc_dirItems“)
    $popconreport += Generate-HTMLTable „$l_pc_header3“ $cells
    $cells=@(„$l_pc_dirBadmail“,“$pcbadmailcount“)
    $popconreport += New-HTMLTableLine $cells
    $cells=@(„$l_pc_dirPickup“,“$pcpickupcount“)
    $popconreport += New-HTMLTableLine $cells
    $cells=@(„$l_pc_dirToolarge“,“$pctoolargecount“)
    $popconreport += New-HTMLTableLine $cells
    $popconreport += End-HTMLTable

    #Konfiguration

    $cells=@(„$l_pc_settingname“,“$l_pc_value“)
    $popconreport += Generate-HTMLTable „$l_pc_header4“ $cells

    $pclizenz = (Get-ItemProperty HKLM:\Software\Wow6432Node\POPcon\registration).Name
    $pcpostmaster = (Get-ItemProperty HKLM:\Software\Wow6432Node\POPcon\SMTP).Postmaster
    $pcserver = (Get-ItemProperty HKLM:\Software\Wow6432Node\POPcon\SMTP).Server

    $pcerr1 = (Get-ItemProperty HKLM:\Software\Wow6432Node\POPcon\SMTP).React_on_Exchange_Err1
    $pcerr2 = (Get-ItemProperty HKLM:\Software\Wow6432Node\POPcon\SMTP).React_on_Exchange_Err2
    $pcerr3 = (Get-ItemProperty HKLM:\Software\Wow6432Node\POPcon\SMTP).React_on_Exchange_Err3

    $pcwait = (Get-ItemProperty HKLM:\Software\Wow6432Node\POPcon\Schedule).Schedule_Waittime

    $pcwait = switch ($pcwait)
    {
    0 {„$l_pc_continusly“}
    1 {„$pcwait $l_pc_minute“}
    default {„$pcwait $l_pc_minutes“}
    }

    $pcerr1 = switch ($pcerr1)
    {
    0 {„$l_pc_action2“}
    1 {„$l_pc_action1“}
    2 {„$l_pc_action3“}
    3 {„$l_pc_action4“}
    }

    $pcerr2 = switch ($pcerr2)
    {
    0 {„$l_pc_action2“}
    1 {„$l_pc_action1“}
    2 {„$l_pc_action3“}
    3 {„$l_pc_action4“}
    }

    $pcerr3 = switch ($pcerr3)
    {
    0 {„$l_pc_action2“}
    1 {„$l_pc_action1“}
    2 {„$l_pc_action3“}
    3 {„$l_pc_action4“}
    }

    $cells=@(„$l_pc_license“,“$pclizenz“)
    $popconreport += New-HTMLTableLine $cells

    $cells=@(„$l_pc_postmaster“,“$pcpostmaster“)
    $popconreport += New-HTMLTableLine $cells

    $cells=@(„$l_pc_exserver“,“$pcserver“)
    $popconreport += New-HTMLTableLine $cells

    $cells=@(„$l_pc_userunknown“,“$pcerr1″)
    $popconreport += New-HTMLTableLine $cells

    $cells=@(„$l_pc_msgrefued“,“$pcerr2″)
    $popconreport += New-HTMLTableLine $cells

    $cells=@(„$l_pc_addrmissing“,“$pcerr3″)
    $popconreport += New-HTMLTableLine $cells

    $cells=@(„$l_pc_wait“,“$pcwait“)
    $popconreport += New-HTMLTableLine $cells

    $popconreport += End-HTMLTable

    #Postfächer

    $cells=@(„$l_pc_mbxdname“,“$l_pc_mbxsmtp“,“$l_pc_mbxuser“)
    $popconreport += Generate-HTMLTable „$l_pc_header5“ $cells

    $popmbxcount = (Get-ItemProperty HKLM:\Software\Wow6432Node\POPcon\POP3).nPOP3

    $i = 1
    do
    {
    $mbxdname = (Get-ItemProperty HKLM:\Software\Wow6432Node\POPcon\POP3\$i).displayname
    $mbxsmtp = (Get-ItemProperty HKLM:\Software\Wow6432Node\POPcon\POP3\$i).server
    $mbxuser = (Get-ItemProperty HKLM:\Software\Wow6432Node\POPcon\POP3\$i).username

    $cells=@(„$mbxdname“,“$mbxsmtp“,“$mbxuser“)
    $popconreport += New-HTMLTableLine $cells

    $i++
    }
    while ($i -le $popmbxcount)

    $popconreport += End-HTMLTable

    #Log

    $cells=@(„$l_pc_logentry“)
    $popconreport += Generate-HTMLTable „$l_pc_header6“ $cells

    #$pclogfile = get-content $POPconInstallPath\POPconSrv.log | select -last 50
    $pclogfile = get-content $POPconInstallPath\POPconService.log | select -last 50
    foreach ($pclogentry in $pclogfile)
    {
    $pclogentry = $pclogentry.replace(„-„,““)
    $cells=@(„$pclogentry“)
    $popconreport += New-HTMLTableLine $cells
    }
    $popconreport += End-HTMLTable

    $popconreport | set-content „$tmpdir\pfreport.html“
    $popconreport | add-content „$tmpdir\report.html“

    Antworten
  2. Vielen Dank Frank für die Pflege und das erneute Update Deines Exchange Reporter.

    Ich bin leider auf der Suche nach der Dokumentation zu den Modulen ;28=PRTGReport.ps1und ;29=UTMMailreport.ps1 nicht fündig geworden. Wo kann ich diese finden? Lieben Dank.

    Mir ist aufgefallen, dass der deutsche HTML Bericht zu den Modulen der eingesetzten Outlook Versionen und des Health Checkers keine Umlaute verwendet.

    Des weiteren bekomme ich bei der Erstellung eines neuen Berichtes zu den Modulen folgende Meldungen:

    dmarcreport.ps1
    Der Parameter „Path“ kann nicht an das Ziel gebunden werden. Ausnahme beim Festlegen von „Path“: „Der Pfad „C:\Program Files\Microsoft\Exchange\Web Services\2.2\Microsoft.Exchange.WebServices.dll“ kann nicht gefunden werden, da er nicht vorhanden ist.“

    SSLLabsReport.ps1 und updatereport.ps1

    Der Antwortinhalt kann nicht analysiert werden, da das Internet Explorer-Modul nicht verfügbar ist, oder die Konfiguration beim ersten Start von Internet Explorer ist nicht abgeschlossen. Geben Sie den UseBasicParsing-Parameter an, und wiederholen Sie den Vorgang.

    Liebe Grüße
    Michael

    Antworten
    • Hallo Micha,

      hatte auch den Fehler „Der Antwortinhalt kann nicht analysiert werden, da das Internet Explorer-Modul nicht verfügbar ist…“.

      Bei mir lag es daran dass die Aufgabe von einem User ausgeführt wurde, welcher sich noch nie selber am Server angemeldet hatte.
      Einfach als dieser Benutzer anmelden, 1x Internet Explorer starten und Meldung zur Konfiguration (Vorgeschlagene Werte verwenden / nicht verwenden) bestätigen. Dann hat’s bei mir funktioniert…

      Schöne Grüße,
      Micha

      Antworten
      • Klasse Micha

        Der Tipp mit dem Anmelden auf der entsprechenden Maschine hat geholfen. SSLLabsReport.ps1 und updatereport.ps1 laufen nun einwandfrei.

        Geblieben ist mir nun noch Meldungen zum DMARC Report Modul:

        dmarcreport.ps1
        Der Parameter „Path“ kann nicht an das Ziel gebunden werden. Ausnahme beim Festlegen von „Path“: „Der Pfad „C:\Program Files\Microsoft\Exchange\Web Services\2.2\Microsoft.Exchange.WebServices.dll“ kann nicht gefunden werden, da er nicht vorhanden ist.“

        sowie die fehlerhafte Zeichendarstellung für die Outlook Versionen und dem Health Checker, bei dem bspw. die Umlaute nicht korrekt dargestellt werden. Vermutlich wird hier noch keine UTF-8 formatierter HTML Code für den Report verwendet?!

        Last, but not least … fehlt mir die Dokumentation zu den Modulen PRTGReport.ps1 und UTMMailreport.ps1.

        Hat jemand eine Idee? Frank?

        Antworten
  3. Hallo Frank und alle anderen :-)

    Danke für das Reporting tool aber leider funktioniert es bei mir nicht so wie es muss.

    Ich habe eine Peinliche Frage :-)
    Bei ausführen des Skript erhalte ich bei den Module folgender Fehlermeldung. (Working on Module Mailreport.ps1: Error)

    Wenn ich das Skript per PowerShell Manuel ausführe um zu schauen was nicht stimmen könnte. bekomme ich das gewisse CMDLET-Befehle nicht recognized sind.

    Beispiel:
    Generate-ReportHeader : The term ‚Generate-ReportHeader‘ is not recognized as the name of a cmdlet, function, script file,
    or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try
    again.
    At C:\Exchange Reporter 3.10\Modules\mailreport.ps1:2 char:15
    + $mailreport = Generate-ReportHeader „mailreport.png“ „$l_mail_header“
    + ~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : ObjectNotFound: (Generate-ReportHeader:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

    Da ich nicht so versiert bin mit Skripten dachte ich frage lieber nach bevor mehrere Tagen verloren gehen.

    Antworten
    • Hallo

      Ich habe jetzt alles zum funktionieren gebracht und habe jetzt nur ein problem der Mailreport liefert mir Null Daten und im Error Log steht nichts alles ok. Alle Module die ich einsetze liefern mir Daten und Informationen aber den MailReport hat nichts. Der Intervall habe ich auch schon von 7 auf 1 gestellt und der MessageTracking ist auch aktiv. Wir haben Exchange2019 CU10 im Einsatz.

      Was kann ich noch versuchen?

      Besten Dank für das Feedback

      Antworten
  4. Hallo Frank,

    vielen Dank für das Tool, ich habe von einer älteren Version upgedatet und die neuen Module aktiviert, alles Funktioniert, bis auf daß der Healthchecker nicht in die Mail eingebunden ist, die Überschrift ist da mit einem Fragezeichen als Icon aber darunter ist kein Inhalt.

    Gruß
    Dreas

    Antworten

Schreibe einen Kommentar