Exchange Reporter

Exchange Server: Statistiken und Reports per Mail

Wie auch der Exchange Reporter 2010 versendet das Script „New-ExchangeReport.ps1“ einen Report per Mail. Exchange Reporter ist kompatibel zu Exchange 2010, 2013, 2016, 2019 und benötigt die PowerShell mindestens in Version 4.

  • Anzahl gesendete Mails pro Wochentag
  • Anzahl empfangene Mails pro Wochentag
  • Empfangene/Gesendete Mails pro Wochentag
  • Volumen gesendete Mails pro Wochentag
  • Volumen empfangene Mails pro Wochentag
  • Volumen Empfangene/Gesendete Mails pro Wochentag
  • Durchschnittliche Anzahl Mails je Postfach
  • Durchschnittliche Volumen je Postfach
  • Durchschnittliche Größe einer Mail
  • Top 10 Empfänger
  • Top 10 Sender
  • Top 10 Empfänger (Volumen)
  • Top 10 Absender (Volumen)
  • Postfächer mit Um- oder Weiterleitungen die Benutzer eingerichtet haben
  • Postfächer mit Um- oder Weiterleitungen die am Exchange Server konfiguriert wurden
  • Freier und belegter Speicherplatz auf allen Volumes aller Exchange Server und Domain Controller
  • Größe der Datenbanken
  • DAG Übersicht
  • Die 10 größten Postfächer
  • Inaktive ActiveSync Geräte
  • Active ActiveSync Geräte
  • Exchange Versionsnummern und Rollenverteilung aller Exchange Server
  • Datum der letzten vollen Datenbanksicherung
  • Report über Postfächer die sich nahe dem Sendelimit bewegen (Auch Postfach und Datenbanklimit)
  • Benachrichtigung über neue Reporter Version
  • Übersicht der IIS Zertifikate der Exchange Server
  • Exchange Fehler im EventLog
  • Betriebssystem Infos der Exchange Server (Version und Service Pack)
  • Übersicht der Offline Adressbücher
  • Windows Update Bericht
  • Übersicht über die VMs (Snapshots, Datastore) bei VMware Umgebungen
  • F5 BigIP LTM Unterstützung
  • Kemp Loadmaster Unterstützung
  • Übersicht über ActiveSync und Outlook Clients
  • Übersicht über die Zertifizierungsstelle
  • Statistiken zu Öffentlichen Ordnern
  • Übersicht ungenutzte Verteilerlisten
  • Übersicht zu dynamischen Verteilergruppen
  • Übersicht zum Hardware Status von HP Servern
  • Übersicht zu Cisco Ironport (ESA)
  • Übersicht Postfachberechtigungen
  • Anzeige von getrennten Postfächern
  • Anzeige von Exchange Back Pressure Events
  • Unterstützung für Office 365
  • Abfrage von 78 Blacklisten, ob die eigene IP gelistet ist
  • Prüfen der MX-Einträge mit Verbindungstest
  • Unterstützung für DMARC
  • Auswertung von Exchange Audit Logs
  • Unterstützung für PRTG, POPcon und Sophos UTM
  • Integration des Qualsys SSL Labs Reports
  • Upload des Reports auch per FTP möglich
  • Unterstützung für NoSpamProxy
  • NEU: Exchange Health Checker Bericht auch im Exchange Reporter verfügbar
  • NEU: Exchange Emergency Mitigation Report

Die Daten für gesendete und empfangene Mails, sowie die Daten zur Speicherplatz Nutzung werden grafisch durch Diagramme dargestellt. Im Gegensatz zu Exchange Reporter 2010 (alte Version) habe ich auf eine fehleranfällige Installationsroutine verzichtet. Eine Installationsanleitung liegt bei (Geplanten Task erstellen, INI Datei anpassen)

Hier sind ein paar Screenshots eines Reports:

Exchange Reporter Exchange Reporter Exchange Reporter

Exchange Reporter

Die Screenshots zeigen nicht den vollständigen Report. Getestet habe ich den Reporter mit Server 2012R2 und Exchange 2013 SP1.

Installation:

Siehe „Exchange Reporter Handbuch (DE).pdf“ im ZIP-Archiv.

Change Log:

Version 3.0:

  • Neue Funktionen (Major Update)
    • Erste Mehrsprachige Version (Deutsch und Englisch)
    • Optische Anpassung der Grafiken, angelehnt an Windows 10 / Server 2016
    • Ausfiltern von Empfängern und Absendern möglich
    • Support für Exchange 2016 und Outlook 2016
    • Möglichkeit zum Ausblenden bestimmter Postfächer, Absender und Empfänger
    • Mailreport.ps1: Statistik gesendete / empfange Mails je Exchange Server bei mehr als einem Server
    • Mit dem Parameter –ConfigFile kann Exchange Reporter in unterschiedlichen Konfigurationen gestartet werden
  • Bugfixes
    • Bpreport.ps1: Hinweis, wenn keine Back Pressure Events aufgetreten sind
    • Spacereport.ps1: WMI Abfrage geändert um zuverlässiger die entsprechenden Volumes zu identifizieren
    • Oabreport.ps1: Fehler behoben wenn Exchange auf einem anderen Laufwerk als C: installiert ist
    • New-ExchangeReport.ps1: Logging verbessert
    • Clientinfo.ps1: Outlook for MAC wird gesondert angezeigt
    • Easreport.ps1: Anzeige der Outlook Mail App
    • Server 2012 Wiederherstellungspartitionen werden ausgeblendet
    • Dokumentation überarbeitet
  • Neues Modul:
    • dmarcreport.ps1: Zeigt die DMARC Einträge an und wertet die DMARC Reports aus
    • auditlogtreport.ps1: Zeigt Exchange Konfigurationsänderungen und Mailbox Audit Logs an

Version 3.1:

  • Bugfixes
    • O365report.ps1: Der Report lieferte nur die ersten 1000 Ergebnisse zurück, Dank Kaari behoben
    • Mbxreport.ps1: Bug in der Auflistung der Limits behoben, wenn mehr als 1000 Postfächer in einer Datenbank gespeichert sind (Danke, Mario)
    • Clientinfo.ps1: Abfrage der Outlook Versionen innerhalb des gewählten Intervalls
    • Rightsreport.ps1: Verweigern Berechtigungen werden ausgefiltert (Danke, Daniel)
    • Mailreport.ps1: Anzahl und Volumen empfangener Mails bei mehr als einem Transportserver/dienst wird nicht angezeigt (Danke, Martin)
    • Mailreport.ps1: Fehlerbehandlung verbessert
  • Neues Modul
    • KempReport.ps1: Unterstützung für Kemp Loadbalancer

Version 3.2:

  • Bugfixes
    • Erkennung Exchange Version verbessert
    • Kemp Einstellungen in Settings.ini eingefügt
    • Keine Daten bei mehreren AD-Domains
    • Office365Report: Keine Sortierung der größten Postfächer (Danke Kaari)
    • DGreport: Probleme bei Gruppen mit mehr als 1000 Mitgliedern behoben (Danke Marcel)
    • MXreport: Probleme beim SMTP Verbindungstest (Danke Ajdin)
    • RBLreport: In manchen Konfigurationen wurden nicht alle IPs geprüft (Danke Ajdin)
    • CAreport: Fehlerbehandlung verbessert
    • Exchange Reporter Temp Verzeichnis wird bei Start gelöscht
    • DMARC und RBLReport verwenden gleiche Varibale „UseExchangeDefaultDomain“ behoben (Danke Mario)
  • Neues Modul:
    • SSLLabsReport.ps1: Prüft Webserver und Exchange externe URLs mittels Qualys SSL Labs Test
    • POPconReport: Übersicht für Servolutions POPcon
    • PRTGReport: Ruft die Sensoren der Server aus Paessler PRTG ab und bindet sie in den Report ein (Siehe Modul Doku)
    • UTMReport: Extrahiert die AntiSPAM Übersicht der Sophos UTM Firewall aus den E-Mail Reports und bindet sie in den Exchange Report ein (Siehe Modul Doku)
  • Neue Funktionen:
    • UpdateReport: Zeigt neue Blogbeiträge von FrankysWeb innerhalb des Reportintervalls

Version 3.3

  • Bugfixes:
    • HPiLOreport.ps1
      • Bugfixes und Fehlerbehandlung (Vielen Dank an Timbo)
      • Link zum Download der HPE iLO PowerShell Module korrigiert
    • UpdateReport.ps1
      • Umstellung auf HTTPS
      • UTF8 Encoding Problem behoben
    • Clientinfo.ps1:
      • Bugfix bei der Darstellung der ActiveSync Devices (Vielen Dank an Timbo)

Version 3.4

  • Neue Funktionen
    • Unterstützung für Server 2016 (AD) und Exchange 2019
  • Bugfixes
    • Link in der Doku zu PSPKI korrigiert
    • DBReport: Anzeige freier Speicherplatz in der Datenbank (Danke an Anton)
    • MBXReport: Fehlermeldung bei Postfächern an denen sich nie angemeldet wurde korrigiert (Danke an Florian)
    • UpdateReport: Fehler beim Suchen der Updates behoben, wenn Exchange Reporter auf einem Exchange Server ausgeführt wird
    • UpdateReport: Verbindung zum Exchange Reporter Update Check erfordert nun mindestens TLS1.0
    • DGReport: Fehlermeldung beim Ermitteln von Verteilerlisten behoben
    • CAReport: Modul wird jetzt abgebrochen wenn das Modul PSPKI nicht gefunden wurde
    • SSLLabsReport: Für die Verbindung zur SSLLabs API wird nun mindestens TLS1.0 vorausgesetzt

Version 3.5

  • Neue Funktionen
    • FTP Upload Funktion (Danke an Daniel)
  • Bugfixes
    • Rblreport: Blacklist bl.spamcannibal.org entfernt, da nicht mehr existent
    • VmwareReport: PowerCli wird nun als Modul geladen (Dank an Steffen)
    • SSLReport: Falsche Zeile wurde in bestimmten Fällen in den SSLReport eingefügt, da eine Variable doppelt verwendet wurde
    • KempReport: Der KempReport wurde überarbeitet und funktioniert nun mit den aktuellen Loadmaster Versionen (getestet mit Version 7.2.46)
    • Dokumentation angepasst
  • Hinweise
    • Es gab Änderungen an der settings.ini (FTP Upload), bitte die aktuelle Version anpassen und nutzen

Version 3.6

  • Neues Modul
    • ps1 – Liefert Statistiken zu NoSpamProxy
  • Bugfixes
    • ps1
      • Wiederherstellungslaufwerk wird nicht mehr angezeigt
      • Einheit wird angezeigt
      • Warnung bei knappem Speicherplatz wird angezeigt
      • Server wird nur noch einmal aufgelistet, wenn Exchange auf einem DC installiert wurde
    • PowerShell Version angepasst
    • Neues Exchange Logo eingefügt
    • Diverse kleine Verbesserungen und Bugfixes
  • Das Modul „clientinfo.ps1“ wurde vorerst entfernt, da keine korrekten Daten ermittelt wurden

Version 3.7

  • Bugfixes
    • vmwarereport.ps1
      • An neuere PowerCLI Version angepasst (Danke Steffen)
    • careport.ps1
      • Kleiner Bugfix beim prüfen den PSPKI Moduls (Danke Steffen)
    • dmarcreport.ps1
      • Neue Features (Danke an Timbo)
    • rblreport.ps1
      • Tote Blackliste bl.emailbasura.org entfernt (Danke an Andy)
    • mbxreport.ps1
      • kleiner Bugfix für die Mailbox Statistik (Danke an Thomas)
    • nospamproxy.ps1
      • Status der NSP Dienste wird angezeigt
      • Lizenz Status wird angezeigt
    • o265report.ps1
      • Modul für das ExhangeOnline PowerShell Modul angepasst

Version 3.8 (Codename Leslie)

  • Bugfixes
    • 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_Functionsps1
      • Titel der Diagramme wurden nicht immer korrekt angezeigt. Vielen Dank an Leslie.

Version 3.11

  • Bugfixes
    • Health Checker Bericht wird nun korrekt dargestellt
    • Fehlerbehandlung im AD Bericht verbessert
  • Neues Modul:
    • Exchange Mitigations: Zeigt angewendete EM Regeln und den Status

Bekannte Bugs

  • Derzeit keine Bugs bekannt

Bug melden:

    Dein Name (Pflichtfeld)

    Download:

    Es kostet viel Freizeit “Exchange Reporter” weiterzuentwickeln. Wenn Sie mich unterstützen möchten, dann machen Sie Verbesserungsvorschläge oder Wünsche zu neuen Funktionen. Sie können auch einen kleinen Betrag spenden. Ich freue mich über jegliche Art der Unterstützung.

    400 Gedanken zu „Exchange Reporter“

    1. Hallo zusammen, gigantisches Tool! Einfach Super um den Überblick zu behalten. Leider habe ich mit denn ILO Part das Zertifikat Problem…
      —-
      HPiLOreport.ps1
      Ausnahme beim Aufrufen von „Load“ mit 1 Argument(en): „Die zugrunde liegende Verbindung wurde geschlossen: Für den geschützten SSL/TLS-Kanal konnte keine Vertrauensstellung hergestellt werden..“

      Stehe da leider etwas auf dem Schlauch, der Versuch den Aufruf mit dem Parameter ‚ -DisableCertificateAuthentication ‚ zu ergänzen läuft leider auch ins leere.

      Antworten
    2. Wir haben das Tool seit gestern und haben uns schonmal unsere Berichte zusammen gestellt und ausgeführt.

      Soweit funzt auch alles, doch bei der Anzahl der Mails (eingehend, ausgehend und Volumen eingehen und ausgehend) steht immer 0

      Ansonsten haben wir aktuell noch folgende Module laufen

      dagreport
      dbreport
      dgreport
      easreport
      mbxreport
      spacereport
      LicenceReport

      und alle bringen vernüftige und plausible Werte

      Wir haben Exchange 2019 CU13 im Einsatz und den Exchange Reporter 3.12

      Im Errorlog, steht nur start und stop des Programms

      Grüße
      Lars

      Antworten
    3. Hallo!

      Ich bin aktuell dabei den Exchange Reporter in der Version 3.12 unter Exchange Server 2019 CU13 mit aktivierter Extended Protection zu testen. Leider kommt es beim Ausführen des Moduls Addresslistreport.ps1 zu nachfolgendem Fehler:

      Das Argument für den Parameter „RecipientPreviewFilter“ kann nicht überprüft werden. Das Argument ist NULL oder leer. Geben Sie ein Argument an, das nicht NULL oder leer ist, und führen Sie den Befehl erneut aus

      Die nachfolgenden Module werden dann auch nicht weiter ausgeführt.

      Ist das Problem bereits bekannt?

      VG, Maik

      Antworten
    4. Hallo Zusammen,
      ich nutze schon einige Zeit den Reporter, und wollte mir hier auch auf jeden Fall nochmal dafür bedanken. Nun habe ich eine Frage bezüglich der Berechtigungen für den Account mit dem der geplante Task ausgeführt wird. Welche Berechtigungen werden benötigt damit er den Report erfolgreich erstellen kann. Hatte ihm damals unterschiedliche Rechte vom Exchange gegeben, aber ohne Erfolg. Hinterher mit Domänen-Admin Rechten hat es funktioniert, was ich aber nur sehr ungern so lassen würde.

      Vielleicht kann mir da jemand weiterhelfen.

      Mit freundlichen Grüßen
      Henrik Klemp

      Antworten
    5. Hallo Frank,

      der DAG Report liefert leider falsche Ergebnisse. Bei dem Status „Healthy“ gibt er aktuell Error aus. Liegt wohl an folgender Funktion aus dem dagreport.ps1:
      #Index Status
      $indexstates = $dbstates
      $dbindexstate = „OK“
      foreach ($state in $indexstates)
      {
      $state = $state.ContentIndexState
      if ($state -match „NotApplicable“)
      {
      $dbindexstate = „Not Applicable“
      }
      elseif ($state -match „Healthy“)
      {
      $dbindexstate = „Error“
      }
      }

      Ich habe die Funktion mal ein wenig angepasst -> so Funktioniert es bei uns:
      #Index Status
      $indexstates = $dbstates
      $dbindexstate = „OK“
      foreach ($state in $indexstates)
      {
      $state = $state.ContentIndexState
      if ($state -match „NotApplicable“)
      {
      $dbindexstate = „Not Applicable“
      }
      elseif ($state -match „Healthy“)
      {
      $dbindexstate = „Healthy“
      }
      elseif ($state -match „Failed“)
      {
      $dbindexstate = „Failed“
      }
      elseif ($state -match „FailedAndSuspended“)
      {
      $dbindexstate = „Failed And Suspended“
      }
      elseif ($state -match „Crawling“)
      {
      $dbindexstate = „Crawling“
      }
      }

      Gruß Pascal

      Antworten
    6. Hallo Frank,
      sollte das Script grunsätzlich auch mit Exchange 2019 unter Server-Core funktionieren, oder sind da umfangreichere Anpassungen erforderlich?
      Bei mir klappte das so stante pede erst einmal nicht.

      Antworten
    7. Guten Abend Frank,
      ich habe einen Exchange Online und erhalte beim Start des Skriptes in der PS den Fehler „Loading global variables: Error“

      Im Error Log findet sich folgender Eintrag:
      „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.“

      Hast du eventuell einen Lösungsansatz für mich?

      Antworten
      • Kannst vergessen, hab versucht das manuell zu fixen indem ich die Befehle im Skript auskommentiert habe, allerdings kommen dann weitere Fehler, das Skript kann nicht mal das Modul „o365report.ps1“ finden/laden bei manueller Ausführung in der PowerShell. Darüber hinaus kann der Exchange Reporter nur die Authentifizierung via Username/Password ohne MFA in der Cloud, nicht empfehlenswert. Eine Option zur Authentifizierung via Zertifikat wie von MS empfohlen bietet das Skript nicht. Alles in allem nicht brauchbar für eine Exchange Online Umgebung.

        Antworten
    8. Guten Morgen in die Runde,
      erst einmal vielen Dank an dich Frank für dein Tool :)

      Leider tritt bei uns seit kurzer Zeit der Fehler auf, dass die Aufgabe sich nicht beendet und somit auch keine E-Mail, wie früher, an die entsprechende Adresse gesendet wird. Die Aufgabe wir durch den Manager ganz normal gestartet und wird auch durchgeführt, da im TEMP Ordner die ensprechenden Dateien abgelegt werden. Die Aufgabe wird dann aber nicht beendet. Wenn wir eine feste Zeit wie 2 Stunden hinterlegen steht in der Verlaufsanzeige Aktion abgeschlossen, Aufgabe abgeschlossen und Aufgabe beendet, aber wie gesagt kommt leider keine Mail an.
      Habt ihr vielleicht eine Idee warum die E-Mail plötzlich nicht mehr verschickt wird und die Aufgabe sich nicht selbstständig beendet?

      Antworten
      • Guten Morgen Sascha,
        starte doch das Skript einmal manuell. Dazu eine Powershell auf dem Server öffnen, in das Skript Verzeichnis wechseln und anschließend den selben Befehl wie in der geplanten Aufgabe ausführen. Wichtig, falls die geplante Aufgabe in Kontext eines anderen Benutzers läuft, die PowerShell in dessen Konext auch starten. So siehst du erst einmal, ob und was für ein Fehler auftritt.

        Antworten
      • Das Problem haben wir auch.
        Das Script möchte immer am Ende ein Update durchführen und deshalb bleibt es im Aufgabenplaner hängen.

        Wenn man das ganze manuell startet sagt er Update erfolgreich, aber beim nächsten Durchlauf möchte er wieder updaten :-(

        Antworten
        • Als Ergänzung, die Meldung lautet:
          Working on Module ‚HealthChecker.ps1‘:
          Bestätigung
          Möchten Sie diese Aktion wirklich ausführen?
          Ausführen des Vorgangs „Update script to latest version“ für das Ziel „HealthChecker.ps1“.
          [J] Ja [A] Ja, alle [N] Nein [K] Nein, keine [H] Anhalten [?] Hilfe (Standard ist „J“):

          Antworten
          • Ja, der Healthcheck „stoppt“ scheinbar auch bei uns die eigentliche Ausführung (die Frage nach dem Update) – das Script läuft hier nicht weiter.

            Der MS-Healthcheck bringt sehr oft ein Update. Hat man das Update durchgeführt, muss man die Powershell-Sitzung eigentlich neu starten, um ihn dann auszuführen.

            Hier könnte der Hase begraben liegen.

      • Der Problematik würden wir uns anschließen wollen. Selbiges „Fehlerbild“ findet bei uns auch statt.
        Ist hier evtl. ein Update/eine Anpassung in geraumer Zeit in Sicht?

        Antworten
        • Als Ergänzung, die Meldung lautet:
          Working on Module ‚HealthChecker.ps1‘:
          Bestätigung
          Möchten Sie diese Aktion wirklich ausführen?
          Ausführen des Vorgangs „Update script to latest version“ für das Ziel „HealthChecker.ps1“.
          [J] Ja [A] Ja, alle [N] Nein [K] Nein, keine [H] Anhalten [?] Hilfe (Standard ist „J“):

          Antworten
    9. Genialer Script…
      Folgende Korrekturen:
      Addsinfo.ps1:65
      if ($schemaversion -eq „88“)
      {
      $schemaname = „Windows Server 2019/2022“
      }

      PRTGReport.ps1 hat auch ein paar Fehler.
      Hier meine Version:

      $PRTGreport = Generate-ReportHeader „PRTGReport.png“ „$l_prtg_header“

      $PRTGsettingshash = $inifile[„PRTG-Report“]
      $PRTGsettings = convert-hashtoobject $PRTGsettingshash

      $prtgserver = ($PRTGsettings| Where-Object {$_.Setting -eq „PRTGServer“}).Value
      $prtguser = ($PRTGsettings| Where-Object {$_.Setting -eq „PRTGUser“}).Value
      $prtgpassword = ($PRTGsettings | Where-Object {$_.Setting -eq „PRTGPassword“}).Value

      $serverlist = ($PRTGsettings | Where-Object {$_.Setting -match „Node“}).Value

      $edate = $end | get-date -Format „yyyy-MM-dd-00-00-00“
      $sdate = $start | get-date -Format „yyyy-MM-dd-00-00-00“

      #$sensorlist = (invoke-webrequest -uri „$prtgserver/api/table.csv?content=sensors&columns=device,sensor,objid&username=$prtguser&passhash=$prtgpassword“).content | ConvertFrom-Csv

      $devicelist = (invoke-webrequest -uri „$prtgserver/api/table.csv?content=devices&username=$prtguser&passhash=$prtgpassword&columns=device,objid“).content | ConvertFrom-Csv

      $serverid = 1
      foreach ($server in $serverlist)
      {
      $cells =““
      #$PRTGreport += Generate-HTMLTable „$server“ $cells
      $device = $devicelist | where {$_.gerät -match „$server“}
      $serversensors = (invoke-webrequest -uri „$prtgserver/api/table.csv?id=$($device.id)&content=sensors&columns=device,sensor,objid&username=$prtguser&passhash=$prtgpassword“).content | ConvertFrom-Csv

      foreach ($serversensor in $serversensors)
      {

      $sensorid = $serversensor.id
      $sensorname = $serversensor.Sensor
      $filename = „$tmpdir\“ + „PRTG_“ + „$serverid“ + „_“ + „$SensorID“ + „.png“
      #$sensordata = (invoke-webrequest -uri „$prtgserver/api/historicdata.csv?id=$sensorid&avg=86400&sdate=$sdate&edate=$edate&username=$prtguser&passhash=$prtgpassword“).content | ConvertFrom-Csv | select -Property * -ExcludeProperty *RAW* | ConvertTo-Html -Fragment -PreContent „$sensorname“
      #$PRTGreport += $sensordata

      $sensordata = (invoke-webrequest -uri „$prtgserver/api/historicdata.csv?id=$sensorid&avg=86400&sdate=$sdate&edate=$edate&username=$prtguser&passhash=$prtgpassword“).content | ConvertFrom-Csv | select -Property * -ExcludeProperty *RAW*

      $cells = $sensordata | Convertto-csv -NoTypeInformation | select -First 1
      [array]$cells = $cells.Replace(„`““,““).split(„,“) #“
      $PRTGreport += Generate-HTMLTable „$sensorname“ $cells

      $cells = $sensordata | Convertto-csv -NoTypeInformation
      $last = $cells.Length
      $cells = $cells[1..$last]
      foreach ($cell in $cells)
      {
      [array]$cell = $cell.Replace(„`““,““).split(„,“) #“
      $PRTGreport += New-HTMLTableLine $cell
      }

      $img = (invoke-webrequest -uri „$prtgserver/chart.png?type=graph&id=$sensorid&avg=0&sdate=$sdate&edate=$edate&width=850&height=270&graphstyling=baseFontSize=’12’%20showLegend=’1’&graphid=-1&username=$prtguser&passhash=$prtgpassword“).content | Set-Content $filename -Encoding Byte
      $PRTGreport += Include-HTMLInlinePictures „$filename“
      }

      $serverid++

      $PRTGreport += End-HTMLTable
      }

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

      Antworten
    10. ## Comment SPAM Protection: Shield Security marked this comment as „Pending Moderation“. Grund: Menschlicher SPAM-Filter hat „, .“ in „comment_content“ gefunden ##
      Hallo Frank,

      nachdem ich das Skript in Version 3.1 das erste Mal mit unserer Exchange 2013 Umgebung genutzt habe, wollte ich die 3.10 jetzt in der aktuellen Umgebung (Ex2016) ans laufen bringen. Dazu möchte ich eine abgesetzte Maschine und nicht einen der 3 Exchangeserver benutzen (Auslastung).
      Ich habe mir einen 2016-Server vorbereitet und die VMware-PowerCLI, .Net und die Exchange-Management-Tools installiert.
      Allerdings bekomme ich in der Powershell beim händischen Durchlauf eine Menge Fehler angezeigt (z.B. Cannot process argument transformation on parameter ‚Identity‘.)
      Wie ist denn die Vorgehensweise wenn ein abgesetzter Server verwendet werden soll?

      Gruß Bernd

      Antworten
      • Habe es jetzt geschafft :-)
        Mir haben die alten Exchange Server (2008 ohne DB) das Ergebnis verrissen.
        Die wurden heute deinstalliert und jetzt klappt auch fast alles.
        Der vmwarereport bringt noch den Fehler „Error loading PowerCli“.
        Dabei wird die PowerCLI geladen (die Anzeige geht bis zum Copyright) aber dann geht etwas schief.
        Hat dazu noch jemand eine Idee?

        Gruß Bernd

        Antworten
        • Moin Alle zusammen,

          Tja „wer lesen kann ist klar im Vorteil“ ;-)
          Der Beitrag vom Markus vom 26.07.2019 war die Lösung für mein VMware-Problem.

          Jetzt läuft alles.

          Gruß Bernd

          Antworten
    11. Hi Frank,

      erstmal auch von mir vielen Dank für dieses tolle Script!!!!!!!

      Nachdem ich es nun seit längerem im Einsatz habe, tritt bei mir leider ein Fehler auf. Lasse ich das Script durchlaufen bleibt es bei serverinfo.ps1 stehen und es passiert auch nichts mehr. Ich hab nun im Install Path alles bereinigt und die Scripte dort neu hineinkopiert und die RemoteWMI auch überall neu eingerichtet, leider ohne Erfolg. Im Error.log sieht man auch nur den Start vom Reporter, mehr nicht.

      Hättest du noch eine Idee woran das liegen könnte?

      Viele Grüße

      Peter

      Antworten
    12. ;)
      ist noch niemandem aufgefallen, dass in der Settings.ini ein Tippfehler ist…?

      unter [modules] 02=esareports.ps1 muß easreports.ps1 stehen… wenn man die inaktiven Actvesyncgeräte sehen möchte.

      Antworten
    13. Wie sind hier eigentlich so die Laufzeiten?

      Ich nutze auf einem DAG Cluster (2x EX2016) nur die Module:

      01=mailreport.ps1
      15=dbreport.ps1
      16=dagreport.ps1
      18=mbxreport.ps1
      35=HealthChecker.ps1

      + PDF Generierung für die Mailnachricht.

      Bei fast 3000 Postfächern und 26 Datenbanken, dauert das Skript gut 30 Minuten ausserhalb der Lastzeiten, und tagsüber 45-60 Minuten.
      Hardwareseitig ist der Server sehr gut ausgestattet und auch die ganzen Optimierungsempfehlungen haben wir durch (zeigt ja auch der HealtChecker an).
      Ist das „normal“?

      Antworten
    14. Bekomme den Reporter mit Office 365 überhaupt nicht zum Laufen. Einige Befehle aus den Skripten gibt es überhaupt nicht (mehr), nach Anpassung dieser (meistens solche, die mit Get-O365(…) beginnen), läuft das Skript zwar durch, wirft aber noch einige Fehler aus.

      Im Errorlog finde ich nur:

      —–
      o365report.ps1
      Ausnahme beim Aufrufen von „DataBindXY“ mit 2 Argument(en): „Der Wert darf nicht NULL sein.
      Parametername: yValues“
      —–

      Hat jemand einen Tipp für mich, wie man das in einer O365 Umgebung (ohne lokalen Exchange) zum Laufen bekommt? Versuche das Skript bei mir auf dem Client auszuführen.

      Antworten
      • Wenn es keine lokale Exchange Installation gibt, kann der Wert für „OnlyUseOffice365“ in der settings.ini auf „ja“ gestellt werden, dann wird keine Exchange Management Shell benötigt.
        Zusätzliche Module die die Exchange Management Shell erfordern können dann nicht mehr benutzt werden.

        Antworten
    15. Hallo,

      kann man das Modul vielleicht durch folgende Zeile beschleunigen?

      Get-TransportService | Invoke-Command { Get-MessageTrackingLog … }

      Gerade in großen Umgebungen sorgt das für einen massiven Geschwindigkeitsvorteil…

      Antworten
    16. 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
    17. Hallo

      Ich habe mir gerade das Tool eingerichtet. Es Funktioniert Funktioniert grundsätzlich aber wen ich das Skript Ausführe ist alles Done bis er auf die einzelne Skripts zugreifen muss erhalte ich Fehlermeldung. Working on Module ‚mailreport.ps1:Error.

      Danach wieder beim Sending Report:Done und die E-mail ist Leer.

      Kann das mit Berechtigung zu tun haben oder wo ist hier das Problem?

      Besten dank schon für die Hilfe
      Gruss Vincenzo

      Antworten
    18. Moin,
      scheinbar gibt es in der Version 3.10 im Modules\HealtChecker.ps1 einen kleinen Fehler, die erzeugten XML-Dateien werden nur „HealthCheck-*.xml“ genannt und nicht „HealthCheckER-*.xml“. Somit werden die Dateien zwar angelegt aber nicht im Report inkludiert (es wird auch kein Fehler im Log erzeugt).

      #Get HealthChecker XMLs
      $HealthCheckerXMLs = Get-ChildItem „$tmpdir\HealthChecker-*.xml“ | foreach {$_.fullname}

      Gruß
      Karsten

      Antworten
    19. Hallo zusammen,
      ich habe mir grade das Tool installiert bzw. eingerichtet. Es funktioniert soweit alles bis auf die report.html Seite. Die Reports werden erstellt, jedoch werden keine Bilder (Grafiken) im HTML anzeigt. Auch wenn ich den Report als PDF generiere besteht das Problem.

      Hat jemand eine Idee, was ich falsch mache?

      Vielen Dank im Voraus

      Mit freundlichen Grüßen
      lebelflash

      Antworten
    20. Hallo,
      Vielen Dank für deine ganze Arbeit und dieses geniale Tool.

      Bei dem Modul „Datenbank Übersicht“ bekommen wir falsche Meldungen, dass nur noch 1 GB Speicher frei sei und das letzte Backup 2 Monate her sei, obwohl wir täglich sichern.

      Wo kann ich da schauen?

      Beste Grüße

      Antworten
    21. Hallo Zusammen,

      ich habe ein noch nicht nachvollziehbares Problem. Wir führen den Report über einen Managment Server mit ExchangeShell aus (Exchange 2016)
      Bei dem Modul mbxreports.ps1 erhalten wir einen Fehler :
      Beim Senden von Daten für einen Remotebefehl ist folgender Fehler aufgetreten: Der WinRM-Client hat eine Anforderung
      an den Remote-WS-Verwaltungsdienst gesendet und wurde benachrichtigt, dass die Anforderungsgröße die im Kontingent
      „MaxEnvelopeSize“ konfigurierte maximale Größe überschritten hat. Weitere Informationen finden Sie im Hilfethema

      Ich bekomme den Fehler reproduziert über den Befehl
      $mailboxes = get-mailbox -ResultSize unlimited | Get-MailboxStatistics -ea 0 -wa 0

      Wenn ich diesen Befehl auf dem Exchange direkt eingebe (Nicht Remote) erhalte ich diese Meldung nicht.
      Ich habe bereits die MaxEnvelopeSizeKB angepasst über diesen Befehl:
      Set-Item -Path WSMan:\localhost\MaxEnvelopeSizeKb -Value 8192

      Das Problem besteht weiterhin.

      Antworten
    22. Hallo Frank,

      gibts eine Möglichkeit, um mal auszuwerten, welche Dateianhänge in welcher Anzahl etc. in der Datenbank vorhanden sind?
      Hintergrund ist der, dass wir zwar schon sehr restriktiv am NoSpamProxy-GW filtern, jedoch das Ganze noch mehr, aus Sicherheitsgründen, einschränken möchten. Gibts da was?

      Danke

      Antworten
      • Hi Fabian,
        bist du damit damals weitergekommen? Wir stehen vor dem gleichen Punkt und würden das gerne auslesen.
        Vielleicht hast du ja damals eine Lösung dafür gefunden.
        LG
        Thimo

        Antworten
    23. Hallo Frank,

      finden den Exchange Reporter extrem interessant und würde diesen gerne implementieren.
      Das Thema Rechte der verschiedenen Modulen erschließt sich mir nicht und ich möchte nur die absolut nötigsten Rechte zuweisen (SICHERHEIT).

      Können die jeweiligen Module um die Information Rechte ergänzt werden?
      Kann der o365 Part mit OATH und MFA kombiniert werden?

      Danke und Grüße

      E.

      Antworten
    24. Bei uns läuft die 3.8 ebenfalls super… Per geplantem Task bekomme ich morgentlich eine Info.

      Ich freu mich schon auf das angekündigte Feature, das Mail Volumen in Intern/Extern aufgeteilt zu sehen.

      Wir haben extrem viel Mails und da würde es mich stark interessieren, wieviel davon wirklich nach Extern geht… Viel wird ja heute in CC/BCC an einen Riesenverteiler geschickt ;-)

      Vielleicht wäre das auch eine Vorlage, ein oder zwei weitere Exchangeserver einzuplanen, bei deutlich steigendem Volumen….

      Vielen Dank schon mal

      Antworten
    25. Moin,

      erstmal vielen Dank für das Tool.

      Ich versuche es seit gestern zum Laufen zu kriegen, allerdings laufen sich einige Module wie mailreport, rightsreport und pfreport gefühlt tot. Ich kommentiere eines nach dem anderen aus, damit es überhaupt mal durchläuft. Bisher leider immer noch ohne Erfolg, weil ich nicht weiß, ob er noch lebt oder sich dann doch wieder aufgehangen hat.

      Gestern habe ich zudem noch folgenden Eintrag im Log gesehen:
      Das Modul „bin“ konnte nicht geladen werden. Wenn Sie weitere Informationen wünschen, führen Sie „Import-Module bin“ aus.

      Mich würde einmal interessieren, wie lange so ein Durchlauf normalerweise dauern sollte mit ca. 250 Postfächern, wobei einige leider sehr groß (bis zu 50GB) sind.

      Antworten
    26. Hi,

      ich habe den Fehler beim Laden der PowerCLI.

      Nach dem manuellen Ausführen dieses Scripts:
      C:\Program Files (x86)\VMware\Infrastructure\PowerCLI\Scripts\Initalize-PowerCLIEnvironment.ps1
      habe ich folgendes Ergebnis:

      PS C:\Users\Administrator.xxxx> Get-Module -ListAvailable VM*

      Verzeichnis: C:\Program Files (x86)\VMware\Infrastructure\PowerCLI\Modules

      ModuleType Version Name
      ———- ——- —-
      Binary 6.0.0.0 VMware.DeployAutomation
      Binary 6.0.0.0 VMware.ImageBuilder
      Binary 6.5.0.4… VMware.VimAutomation.Ci
      Binary 6.5.0.4… VMware.VimAutomation.Cl
      Manifest 6.5.0.4… VMware.VimAutomation.Co
      Binary 6.5.0.2… VMware.VimAutomation.Co
      Binary 6.0.0.0 VMware.VimAutomation.HA
      Binary 7.0.2.4… VMware.VimAutomation.Ho
      Binary 6.5.0.4… VMware.VimAutomation.Li
      Binary 6.5.0.4… VMware.VimAutomation.PC
      Manifest 6.5.0.4… VMware.VimAutomation.Sd
      Binary 6.5.0.4… VMware.VimAutomation.St
      Binary 6.5.0.4… VMware.VimAutomation.Vd
      Binary 6.5.0.4… VMware.VimAutomation.vR
      Binary 6.0.0.0 VMware.VumAutomation

      Also wäre doch die PowerCLI geladen, oder ? Woher kommt der Fehler und wie bekomme ich diesen weg?

      Danke,

      Ingo

      Antworten
    27. Hallo,

      bin auch grad bei der Installation bei. Leider bekomme ich folgende Fehlermeldung:
      „The module ‚bin‘ could not be loaded. For more information, run ‚Import-Module bin‘.“

      Scheint derselbe Fehler wie be Richard zu sein.

      Gruß
      Carsten

      Antworten
    28. Hallo,

      klasse Script!
      Leider lädt es bei mir offensichtlich die INCLUDES nicht, oder nicht ordnungsgemäß. Es taucht beim manuellen Start allerdings keine Fehlermeldung auf, aber die Mail- und Serverstatistiken weisen keine Werte aus.

      Beste Grüße
      Uebuec

      Antworten
    29. Hallo,

      danke für den tollen Report – läuft soweit super.
      AKtuell habe ich mit der PDF ERstellung noch Probleme – aber diese bekomme ich sicher noch gelöst…

      Was ich klasse für weitere Entwicklung fände, wäre die Erweiterung der Emailstatistik (gesendete/empfangene Mails)
      Für uns wäre es z.B. sehr interessant zu unterscheiden, was nach extern gesendet / von extern empfangen wurde.
      Wir haben diverse System-Mails die am Tag sicher allein schon 10% des Volumens ausmachen – das verfälscht das Bild ein wenig.

      Extern würde für mich z.B. bedeuten:
      Alles was nicht unter „Mail Flow >> Accepted Domains“ steht ist EXTERN…

      Antworten
    30. Hallo,

      Super Report.
      Seit den Mai 2020 Updates sind die Statistiken leer, ist dazu was bekannt oder bei mir ein Einzelschicksal?

      Danke

      Erik

      Antworten
    31. Hallo Frank und Gemeinde!

      Erst mal Danke für ein so geniales Tool!
      Aber ich hätte da mal eine Frage…
      Ist es möglich den Mailreport auf User einer OU zu begrenzen?
      Hintergrund ist, dass wir mehrere Standorte haben, die alle auf ein Exchange-Cluster zugreifen und hier eine etwas differenziertere Auswertung der Gesendet/Empfangen Mail pro Standort vom Management gewünscht ist.
      Ich könnte das ja zwar mit mehreren settings und darin exclusions regeln, denke ich, aber bei insgesamt 1000 Postfächern an 12 Standorten ist das ja äußerst Mühselig, da ja auch ein wenig Fluktuation besteht.

      Viele Grüße
      Axel

      Antworten
      • Hallo Axel,
        das Filtern anhand einer OU ist aktuell nicht möglich. Ich habe derzeit auch keine Pläne diese Funktion einzubauen. Wenn du magst kannst du aber die relevanten Module entsprechend anpassen.

        Gruß,
        Frank

        Antworten
    32. Hallo,

      hat schon jemand das Script HPiLOreport.ps1 auf die HPEiLOCmdlets v2.2.0.0 angepasst und zum Laufen bekommen?
      Die entsprechenden Befehle habe ich umgeschrieben und auch das schrittweise Ausführen in der Konsole funktioniert super.
      Wenn ich dann New-ExchangeReport.ps1 ausführe erhalte ich den Fehler:

      HPiLOreport.ps1
      Es ist nicht möglich, eine Methode für einen Ausdruck aufzurufen, der den NULL hat.

      und der Abschnitt erscheint nicht im Report.

      @Frank: Kann das Logging beeinflusst werden, um den Fehler besser einkreisen zu können?

      Viele Grüße
      Peter

      Antworten
    33. Gefällt mir gut.
      Kleiner Verbessungsvorschläge wären noch
      – Im easreport.ps1 die Anzahl Tage über die settings.ini zu steuern.
      – Temp Verzeichnisname in der settings.ini festhalten. Ich habe mir mehrere Scheduled Tasks für verschiedene Reports aufgebaut (wöchentlich, monatlich, on Demand). Diese dürfen mit der aktuellen Konfig nicht zugleich laufen. Mit verschiedenen Temp Verzeichnissen würde das aber gehen.

      Antworten
    34. Ich habe für PRTG noch das selbst signierte Zertifikat. Um über invoke-webrequest die Verbindung aufbauen zu können, habe ich folgend Code am Anfang in die PRTGReport.ps1 eingefügt:

      add-type @“
      using System.Net;
      using System.Security.Cryptography.X509Certificates;
      public class TrustAllCertsPolicy : ICertificatePolicy {
      public bool CheckValidationResult(
      ServicePoint srvPoint, X509Certificate certificate,
      WebRequest request, int certificateProblem) {
      return true;
      }
      }
      „@
      [System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy

      [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Ssl3, [Net.SecurityProtocolType]::Tls, [Net.SecurityProtocolType]::Tls11, [Net.SecurityProtocolType]::Tls12

      Die Verbindung kann jetzt hergestellt werden. Leider bleibt der Report leer. Muss an PRTG noch etwas eingestellt werden? Wenn ich den WebRequest direkt im Browser aufrufe, dann bekomme ich auch eine CSV Datei mit den Daten des Sensors.
      https://prtgServer:9443/api/historicdata.csv?id=TSEXCH-01&avg=86400&sdate=2019-11-01-00-00-00&edate=2019-11-28-00-00-00&username=myUser&password=myPass

      Jedoch nicht, wenn ich den Server (nicht den exakten Sensor) aufrufe. Dann kommt, dass die Seite nicht gefunden werden kann.

      Hat da jemand eine Idee?

      Antworten
    35. Hallo Frank,
      wir haben bei unserem Office365 Tenant die Anmeldung per MFA und App-Kennwörtern aktiviert.
      Vermutlich deshalb haben wir leider mit den Office365 Report Probleme. Mit dem Account-Kennwort scheitert die Anmeldung und mit dem App-Kennwort macht er zwar einige Zeit etwas, es wird aber keine Report-Datei erstellt.
      Hast du (oder evtl. auch jemand anders) schon am laufen bzw. mal ausprobiert?
      Viel Grüße
      Roland

      Antworten
    36. Moin,

      ich bekomme folgende Fehlermeldungen:

      -Start– 08/19/2019 16:03:59 ———————————————————————————-
      addsinfo.ps1
      Der RPC-Server ist nicht verfügbar
      PSPKI PowerShell Module not found: Please read Exchange Reportter manual
      -End— 08/19/2019 16:13:52 ———————————————————————————-

      Wer kann helfen?

      Antworten
    37. Hi Frank und Gemeinde ;)
      der Reporter lief schon mal, aber plötzlich (?) nicht mehr…
      sowohl als Aufgabe als auch interaktiv in elevated ISE mit execution Policy Unrestricted kommt:

      Checking for Powershell Version 4.0:OK
      Loading functions from Include-Functions.ps1:Error (not found)
      ein manueller „test-path“ bringt aber „true“…

      Was kann ich da mal versuchen ?

      Vielleicht damit zusammenhängend:
      Ein purgen der Log Dateien (bekanntes Script aus dem MS Blog) wird auch nicht mehr ausgeführt (Permission dnied)

      Wäre toll, wenn da jemand Infos hätte.
      Wir nutzen Ex16CU13 auf voll gepatchten Systemen.

      Danke !
      Rossi

      Antworten
      • Ein wenig LIcht ist im Dunkel…

        wenn wir die Parameter Installpath und Configfile direkt am Anfang definieren läuft das Script durch …
        Param(
        [Parameter(Mandatory=$false)][string]$Installpath = $PSScriptRoot,
        [Parameter(Mandatory=$false)][string]$ExchangeVersion,
        [Parameter(Mandatory=$false)][string]$ConfigFile = „settings.ini“
        )

        $Installpath=“C:\Software\ExchangeReporter“
        $ConfigFile=“settings.ini“

        Antworten
        • Hi,
          bei mir hatte der Script auch wunderbar funktioniert aber seit 2 Tagen bekomme ich den selben Fehler:

          Checking for Powershell Version 4.0:OK
          Loading functions from Include-Functions.ps1:Error (not found)

          Kann mir einer helfen?

          Danke

          Antworten
    38. Hallo,
      mit dem neuen Exchnage 2016 CU 13 funktioniert wohl die Versionsermittlung von Exchange nicht mehr richtig. Seit dem Update liefert der Report das Ergebnis Error „(Wrong EMS Version)“.
      Die Funktion Get-ExchangeVersionByRegistry liefert jetzt „Version 15.1 (Build 1779.2)“ und das verwirrt das Script. Könntest Du das mal bitte prüfen?
      Vielen Danke
      Katja

      Antworten
    39. Hi,

      Zuerst einmal: großartige Arbeit! Danke, dass Du Dein wissen so großzügig teilst!
      Nun genug geschleimt… :)

      Wenn man die PowerCLI Version 6.5 nutzen möchte, muss man die vmwarereport.ps1 etwas anpassen.
      Der Teil
      „$loadpowercli = Get-PSSnapin -Registered -Name vm*
      if ($loadpowercli)
      {
      $loadpowercli = Get-PSSnapin -Registered -Name vm* | Add-PSSnapin
      }“
      funktioniert so nicht mehr mit PowerCLI 6.5.
      Das folgende funktioniert mit dieser Version dann wieder:
      „$loadpowercli = Get-Module -name VMware.VimAutomation.Core -ListAvailable -ErrorAction Ignore
      if ($loadpowercli)
      {
      $loadpowercli = import-module VMware.VimAutomation.Core
      }“

      Viele Grüße
      Markus

      Antworten
    40. Lieber Frank
      Der Reporter ist der Hammer, vielen Dank für deine Bemühungen!
      Leider funktioniert bei mir der Teil mit dem Kemp Loadbalancer nicht. Wenn ich manuelle Abfragen über Powershell mache, funktioniert es. Auch im Reporter zeigt er mir „done“ an und im Errorlog habe ich keine Einträge.
      Nichtsdestotrotz ist im Reporter der Bereich unter „Kemp Loadmaster Overview“ sehr leer.
      Woran kann das liegen?
      Ich habe Exchange 2016 mit DAG in Betrieb, einen Loadbalancer mit V 7.2.43.0….
      Wenn du oder jemand mir einen Hinweis hat, wäre ich sehr dankbar.
      Liebe Grüsse
      pineapple

      Antworten
    41. Hi,

      die VMware Cli sollte so eingebunden werden – sind keine Plugins mehr, sondern Module:

      $loadpowercli = Get-Module –ListAvailable VM*
      if ($loadpowercli)
      {
      $loadpowercli = Get-Module –ListAvailable VM* | Import-Module
      }
      else
      {

      Gruß

      Antworten
    42. Hallo
      erstmal vielen Dank für das super Tool.

      Ich habe allerdings ein Problem mit dem o365report.ps1 Modul.
      Folgender Fehler erscheint nach ca. 2 Stunden_
      -Start– 06/28/2019 15:27:17 ———————————————————————————-
      o365report.ps1
      Ausnahme beim Aufrufen von „DataBindXY“ mit 2 Argument(en): „Der Wert darf nicht NULL sein.
      Parametername: yValues“
      -End— 06/28/2019 17:17:16 ———————————————————————————-

      Kann mir vielleicht jemand helfen?
      Vielen Dank
      Michael

      Antworten
    43. Hallo Frank,

      nach wie vor vielen Dank für die großartige Arbeit! :-)

      Was würdest du denn davon halten den Exchange Reporter in einem git-Repository zu veröffentlichen?
      Dann könnten alle Interessierten gemeinsam daran arbeiten – seien es nun reine Verbesserungen oder Korrekturen am Script oder neue Module, die man direkt dort einbringen könnte. Nur eine Idee von mir und meinem Kollegen :-)

      Viele Grüße,

      Uwe

      Antworten
    44. @Robert: Hab dbreport.ps1 und um eine Spalte erweitert, Freier Speicher in der Datenbank.
      language\de\dbreport.ps1
      $l_db_header = „Exchange Datenbanken“
      $l_db_dbname = „Name“
      $l_db_servername = „Server“
      $l_db_size = „Größe“
      $l_db_overview = „Datenbank Übersicht“
      $l_db_FreeSpace = „Freier Speicher“
      $l_db_mbxcount = „Anzahl Postfächer“
      $l_db_lastbackup = „Letzte Vollsicherung“
      $l_db_dbcount = „Anzahl Datenbanken“
      $l_db_overalldbsize = „Gesamtgröße Datenbanken“
      $l_db_overallmbxcount = „Gesamt Anzahl Postfächer“
      $l_db_summary = „Zusammenfassung Datenbanken“
      $l_db_size = „Größe“

      modules\dbreport.ps1
      $dbreport = Generate-ReportHeader „dbreport.png“ „$l_db_header“
      $cells=@(„$l_db_dbname“,“$l_db_servername“,“$l_db_size“,“$l_db_FreeSpace“,“$l_db_mbxcount“,“$l_db_lastbackup“)
      $dbreport += Generate-HTMLTable „$l_db_overview“ $cells
      $databases = get-mailboxdatabase -status | sort
      $currentDate = Get-Date

      foreach ($database in $databases)
      {
      $dbname = $database.name
      $dbserver = $database.server
      $dbsize = $database.DatabaseSize
      $dbFreeSpace = $database.AvailableNewMailboxSpace
      $pf = (Get-MailboxDatabase „$database“ | get-mailbox -ResultSize Unlimited).count
      $lastbackup = $database.LastFullBackup
      if ($lastbackup)
      {
      #Angepasster Aufruf
      if (($lastbackup – $currentDate).Days -eq 0)
      {
      $lastbackup = „“ + (get-date $lastbackup -UFormat „%d.%m.%Y %R“) + „“
      }
      elseif (($lastbackup – $currentDate).Days -ge -1)
      {
      $lastbackup = „“ + (get-date $lastbackup -UFormat „%d.%m.%Y %R“) + „“
      }
      else
      {
      $lastbackup = „“ + (get-date $lastbackup -UFormat „%d.%m.%Y %R“) + „“
      }

      }
      else
      {
      $lastbackup = „Nie“
      }

      $cells=@(„$dbname“,“$dbserver“,“$dbsize“,“$dbFreeSpace“,“$pf“,“$lastbackup“)
      $dbreport += New-HTMLTableLine $cells

      $dbsizeges = $dbsizeges + $database.databasesize
      $gespf = $gespf + $pf

      $dbsizegb=[double]$dbsize/1024/1024/1024
      $dbvalues += @{$dbname=$dbsizegb}
      }

      $dbreport += End-HTMLTable

      $cells=@(„$l_db_dbcount“,“$l_db_overalldbsize“,“$l_db_overallmbxcount“)
      $dbreport += Generate-HTMLTable „$l_db_summary“ $cells

      $anzdb = $databases.count

      $cells=@(„$anzdb“,“$dbsizeges“,“$gespf“)
      $dbreport += New-HTMLTableLine $cells
      $dbreport += End-HTMLTable

      new-cylinderchart 500 400 Datenbanken Name $l_db_size $dbvalues „$tmpdir\dbstat.png“

      $dbreport += Include-HTMLInlinePictures „$tmpdir\dbstat.png“

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

      LG
      Toni

      Antworten
    45. Hallo Frank,

      ich wollte Dir erst einmal ein großes Kompliment für Deine Arbeit machen. Bei den genutzten Reports hatte ich nur Probleme mit dem „mbxreport“ Modul. Wie auch schon bei einigen anderen hier taucht im Error Log nur der vielsagende Eintrag
      -Start– 05/23/2019 14:19:09 ———————————————————————————-
      mbxreport.ps1
      Es ist nicht möglich, eine Methode für einen Ausdruck aufzurufen, der den NULL hat.
      -End— 05/23/2019 14:25:27 ———————————————————————————-

      auf. Ich konnte das Problem, bei mir, auf folgende Zeile in dem Verarbeitungsblock für die Variable $mbxlimits eingrenzen:

      $mbxsize = (Get-MailboxStatistics $mailbox -wa 0).TotalItemSize.Value.toMB()

      Diese Variable ist bei einigen Usern nicht vorhanden und damit leer. Somit funktioniert die Umrechnung nicht. Auf der Konsole erhält man folgende Warnung (wenn man sich die anzeigen lässt):

      WARNUNG: Der Benutzer hat sich nicht beim Postfach ‚xyz‘ (‚xyz‘) angemeldet, sodass keine zurückzugebenden Daten vorhanden sind. Nach erfolgter
      Anmeldung wird diese Warnung nicht mehr angezeigt.

      Der Grund dafür ist, das die User nie ihre Arbeitsstelle bei uns angetreten haben.
      Ich habe das Problem folgendermaßen umgangen:

      $temp = (Get-MailboxStatistics $mailbox -wa 0)
      if (!$temp)
      {
      $mbxsize = „-1“
      }
      else
      {
      $mbxsize = $temp.TotalItemSize.Value.toMB()
      }

      Ob es eine elegantere Lösung gibt, weiß ich nicht.
      Nebenbei ist mir auch aufgefallen, das in der Zeile

      $logonstats = get-mailbox -resultsize unlimited | get-mailboxstatistics | select displayname,database,totalitemsize,LastLoggedOnUserAccount,lastlogontime | where {$_.lastlogontime -lt ((get-date).adddays(-120))} | sort lastlogontime

      die Warnungen für „get-mailboxstatistics“ nicht abgeschaltet ist, gegenüber all den anderen Abfragen.

      Viele Grüße
      Florian

      Antworten
    46. Hallo,

      der Exchange Reporter funktioniert bei mir Problemlos mit Exchange 2013. Es steht eine Migration auf Exchange 2019 an, sollte der Reporter weiterhin funktionieren oder sind noch Anpassungen notwendig?
      Hat’s eventuell jemand schon unter Exchange 2019 am laufen?

      Danke. Schöne Grüße aus Österreich.
      Florian

      Antworten
    47. Der Kemp Report läuft bei mir leider nicht. Zwar liefert die Version 15367 2017-06-12 des PowerShell API Wrapper Ergebnisse, diese sind allerdings gewürfelt. Die aktuelle Version 16967 2018-12-20 funktioniert gar nicht. Die Loadbalancer sind auf dem neuesten Stand 7.2.45. Kann mir jemand sagen mit welcher Version der Reporter 3.3 funktioniert und wo ich die her bekommen? Oder was ich sonst tun kann?

      Danke im Voraus!

      Antworten
    48. Hallo,
      bekomme beim O365 Report den Fehler:
      o365report.ps1
      Das Element wurde bereits hinzugefügt. Schlüssel im Wörterbuch: „06.11.18“. Hinzuzufügender Schlüssel: „06.11.18“.
      Irgendeine Idee`?

      Vielen Dank Thomas

      Antworten
    49. Hallo,

      ich habe hier noch einen SBS 2011 Standard mit Exchange 2010 am laufen und das muß auch noch zwei Jahre lang so bleiben.
      Ich finde deine Scripts ja echt klasse, nur ich kann sie bishernicht Nutzen da sie PowerShell 4.0 Voraussetzen und das ja nicht auf dem SBS 2011 installiert werden sollte.
      Gibt es eine Möglichkeit die PowerShell 4 auf dem SBS 2011 zu Installieren ohne das man ihn abschießt?
      Oder bekommt man deine Scripts auch irgendwie mit der PowerShell 2 zum laufen?

      Gruß
      Oliver

      Antworten
    50. Hallöchen,

      aus mir noch nicht erklärbaren Gründen funktioniert bei mir der Exchange Reporter auch nicht mehr. Bekomme immer die Meldung:
      Checking for Powershell Version 4.0:OK
      Loading functions from Include-Functions.ps1:Error (not found)

      Kann mir jemand helfen?

      Gruß Thorsten

      Antworten
    51. @ Klönner,

      hast du die VMware Power CLI installiert?
      Wenn Nein:
      In der Powershell (mit Administrator Rechte) die VMware Power CLI installieren.
      Siehe hier: https://blogs.vmware.com/PowerCLI/2017/04/powercli-install-process-powershell-gallery.html

      Das Script vmwarereport.ps1 muss dann ebenfalls noch angepasst werden, da die VMware Power CLI nicht als Snap-In geladen wird sondern mit der „Import“ Funktion.
      Zeile15 = ersetzen mit $loadpowercli = Import-Module VMware.PowerCLI
      Zeile18 = ersetzen mit $loadpowercli = Get-Module -Name vm*

      Damit wird die VMware Power CLI schon mal geladen.

      Die Befehle haben sich aber auch noch etwas geändert, so das ich folgende Zeilen ersetzen musste:
      Zeile 38 = ersetzen mit $vm = (Get-VM $server | Select Name, HardwareVersion, VMHost, MemoryGB, NumCPU, PowerState)
      Zeile 56 = ersetzen mit $vm = (get-vm $server | Select Name, Version, VMHost, MemoryGB, NumCPU, PowerState)
      Zeile 64 = ersetzen mit $vmdatastores = (Get-Datastore -vm $server | select Name, Type, CapacityGB, FreeSpaceGB)

      Damit würde es theoretisch funktionieren, in der Praxis gibt es aber noch einen Fehler „Fehler beim Lader von PowerCLI“, hatte bisher aber noch nicht die Zeit diesen Fehler ebenfalls zu beheben.
      Vielleicht gibt es ja noch jemanden der hier weiterhelfen kann.

      Antworten
    52. Hallo,
      bekomme folgende Fehlermeldung beim Starten von „vmwarereport.ps1“

      PS U:\> $loadpowercli = Get-PSSnapin -Registered -Name vm*
      Get-PSSnapin : No Windows PowerShell snap-ins matching the pattern ‚vm*‘ were found. Check the pattern and then try
      the command again.
      At line:1 char:17
      + $loadpowercli = Get-PSSnapin -Registered -Name vm*
      + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      + CategoryInfo : InvalidArgument: (vm*:String) [Get-PSSnapin], PSArgumentException
      + FullyQualifiedErrorId : NoPSSnapInsFound,Microsoft.PowerShell.Commands.GetPSSnapinCommand

      kann mir einer mitteilen was da falsch läuft.

      Vielen Dank

      Antworten
    53. @ Timbo
      Habe die Änderungen von dir in die clientinfo.ps1 eingefügt und getestet.
      Es funktioniert, bekomme jetzt die korrekte Anzahl der Clients angezeigt.
      Vielen dank, und weiter so.

      Antworten
    54. Moin,

      @Robert: kann alles was du beschreibst nachvollziehen / bestätigen.

      Hier meine Anpassung an der clientinfo.ps1:
      ####zusätzliche Funktion im oberen Teil:
      Function Filter-Mapi2016Data
      {
      Param($FullFilePath)
      If (Test-Path $FullFilePath)
      {
      $Results = @(Get-Content -path $FullFilePath | ConvertFrom-Csv | ? { $_.“ClientSoftware“ -eq ‚OUTLOOK.EXE‘ } | Select @{Name=’client-software‘;Expression={($_.“ClientSoftware“)}},@{Name=’client-software-version‘;Expression={($_.“ClientSoftwareVersion“)}},@{Name=’client-name‘;Expression={($_.“AuthenticatedUserEmail“)}} -Unique)
      Return $Results
      }
      }

      ##Meine letzte Anpassung ändern ($MAPIServers) und um eine weitere Zeile ($MAPIServers2016) erweitern.
      $MAPIServers = @(Get-ExchangeServer | where {(($_.IsMailboxServer -eq ‚$true‘) -and (($_.AdminDisplayVersion).Major -eq ’15‘) -and (($_.AdminDisplayVersion).Minor -eq ‚0‘)) } | Select Name,@{Name=’Path‘;Expression={(„\\$($_.fqdn)\“ + „$($_.Datapath)“).Replace(‚:‘,’$‘).Replace(„Mailbox“,“Logging\MAPI Client Access“)}} )
      $MAPIServers2016 = @(Get-ExchangeServer | where {(($_.IsMailboxServer -eq ‚$true‘) -and (($_.AdminDisplayVersion).Major -eq ’15‘) -and (($_.AdminDisplayVersion).Minor -eq ‚1‘)) } | Select Name,@{Name=’Path‘;Expression={(„\\$($_.fqdn)\“ + „$($_.Datapath)“).Replace(‚:‘,’$‘).Replace(„Mailbox“,“Logging\MapiHttp\Mailbox“)}} )

      ####darunter folgenden Teil einfügen:
      $MAPIData2016 = @()
      ForEach ($Item in $MAPIServers2016)
      {
      $Thefile = @(GCI -Path $Item.Path -Filter *.log | ?{$_.LastWriteTime -gt (Get-Date).AddDays(-$reportinterval)} | Select @{Name=’File‘;Expression={(„$($Item.Path)“ + „\$($_.Name)“)}})
      Foreach ($F in $Thefile)
      {
      $MAPIData2016 += (Filter-Mapi2016Data $F.File)
      }
      }

      ####Letztlich die Zeile $outlookusers = … (wieder) anpassen:
      $outlookusers = $Data + $MAPIData + $MAPIData2016 | select client-software-version,client-name -Unique

      Mit den Variablennamen aus dem MAPI Logfile von Exchange 2016 habe ich getrickst, sie werden wieder auf das alte Format umgeschrieben.

      Getestet mit Exchange 2013 und Exchange 2016.

      Da (mir) nicht klar ist welche Versionsnr. Exchange 2019 bekommt muss die MAPI Abfrage in Exchange 2019 sicherlich nochmal angepasst werden.

      LG
      Timbo

      Antworten
    55. Die Anzeige der MAPI Clients im Modul clientinfo.ps1 müsste noch angepasst werden.
      Die Lösung von Timbo funktioniert nicht mehr, da Microsoft scheinbar das Logging geändert hat.

      Die Mapi Clients werden nicht mehr unter „*\Logging\Mapi Client Access\*“ geloggt sondern unter
      „*\Logging\MapiHttp\Mailbox\*“. Ebenso haben sich die Einträge innerhalb der Log Dateien etwas geändert.

      Antworten
    56. Erst mal vielen Dank, die Idee und die Skripte sind klasse.

      Ich hatte etwas Probleme bis ich das auf meinem Exchange 2013 mit Server 2012 drunter zum Laufen bekam.
      Powershell Upgrade war etwas „tricky), auch habe ich .Net 4.7.1 schon drauf, sowie DKIM, DMARC, SPF…

      Beim DMARC Modul Zeile 47 wird fix auf Microsoft.Exchange.WebServices.dll verwiesen, die wird gesucht in „C:\Program Files/Microsoft\Exchange\WebServices\2.2“

      Erster Fix war Erstellen des Verzeichnis und Kopieren der DLL aus … Exchange\bin
      Trotzdem kriege ich noch einen Fehler, weiss aber noch nicht genau warum.
      Gut wäre hier z.B. ein An- oder Aus-schalten vom Logging pro Modul (z.B. in der INI festlegen?), z.B. wenn man das Script manuell in der Exchange Powershell startet.

      Auch den Hinweis auf Powershell Set-ExecutionPolicy .. Bypass fände ich noch wichtig.

      Ähnliches Problem auch bei ADDSINFO.

      EMail bei mir auch nicht durchgegangen.
      Habe im Subject das Datum ($now) rausgenommen und dem ContentFilter Ausnahme definiert.

      Add-ContentFilterPhrase -Phrase „Exchange Server Health Report“ -Influence GoodWord

      Viele Grüsse und Herzlichen Dank

      Antworten
      • Hi Fridolin,

        ich musste neben der DLL noch folgende Anpassungen vornehmen:
        – in der dmarcreport.ps1 wird der DNS-Server 8.8.8.8 genutzt, ich habe hier einen DNS-Server eingetragen der von meinem Exchange Reporter Server aus erreichbar ist
        – in dem im Abschnitt DMARC in der settings.ini konfigurierten Postfach muss unterhalb des Posteingang ein Ordner ‚Archive‘ (bzw. wie in ‚ArchiveFolder‘ konfiguriert) existieren (hierhin werden die Berichte verschoben)

        LG
        Timbo

        Antworten
    57. Hi Frank,
      ich fasse mal meine Verbesserungshoffnungen zusammen :)
      – Abfrage von MAPI-Verbindungen im Modul clientinfo.ps1: siehe meine Kommentare von 25. Oktober 2017 um 14:42 + 25. Oktober 2017 um 14:43 + 26. Oktober 2017 um 09:31
      – doppelte Auflistung von Servern im Modul spacereport.ps1: siehe mein Kommentar vom 29. November 2017 um 14:47
      – Öffentliche Ordner Statistiken zeigen zu PFs statt der DB nur das Primäre Postfach, Stefan hätte hier gerne die Datenbank gelistet (analog Exchange 2010 und früher), ich fände die Anzeige des PF-Postfachs in dem sich der PF tatsächich befindet toll (evtl. zusätzliche Spalte dafür?): siehe Kommentar von Stefan am 6. Juli 2017 um 12:44
      – Öffentliche Ordner Statistiken: Pfad zu öffentlichem Ordner (ParentPath) zusätzlich ausgeben

      Ich kann dir gerne PS1-Dateien zuarbeiten, da es sich aus den Kommentaren hier vermutlich nur schwer rauskopieren lässt.

      LG
      Timbo

      Antworten
    58. Hi Frank,

      erstmal danke für das super Tool, wir nutzen dieses seid einigen Monaten und sind sehr begeistert davon. Was uns noch interessieren würde: Gibt es eine Möglichkeit den Bericht auch auf den letzten Monat laufen so lassen, anstelle der Intervalle 1 oder 7 Tage?

      Antworten
    59. Hallo zusammen und erstmal ein Großes Lob für das geniale Skript!
      Ich wollte mich heute mal was näher mit dem Spohos UTM-Modul auseinandersetzen, doch leider befindet sich in dem Aktuellen Handbuch nur der folgende Hinweis in den Changelogs:
      UTMReport: Extrahiert die AntiSPAM Übersicht der Sophos UTM Firewall aus den E-Mail Reports und bindet sie in den Exchange Report ein (Siehe Modul Doku)
      Eine Modul-Doku finde ich jedoch leider im selbrigen Dokument nicht.
      Kommt man an die Modul-Dokumentation noch irgendwie dran, oder ist die bisher einfach nur noch nicht erstellt worden?
      Beste Grüße!

      Antworten
    60. Betreff „careport.ps1“
      Hi Folks,
      ich habe die Datei „PS PKI v3.2.6.exe“ installiert und den „Import Module“ Befehl ausgeführt. careport.ps liefert trotzdem einige zu Fehler CMDlets wie get-ca und Receive-Certificate.

      Antworten
    61. Hi Frank,
      bzgl. spacereport.ps1: In SBS Umgebungen und in Umgebungen wo der DC auch ein Exchange Server ist (ich möchte hier nicht darüber diskutieren ob das sinnvoll ist) listet der Speicherplatz-Report den Server doppelt (einmal aus $exservers und einmal aus $domaincontrollers). Dafür schlage ich folgende Verbesserung vor:
      $servers = @()
      $servers = $exservers.Name
      $servers += $domaincontrollers.Name
      $servers = $server | Select-Object -Unique
      Aus den zwei foreach-Schleifen in der spacereport.ps1 eine machen (sie tun jetzt schon das gleiche) und die Variable $servers iterieren (und wegen der Änderung oben innerhalb der Schleife nicht mehr auf ‚.name‘ zugreifen.

      LG
      Timbo

      Antworten
    62. Hallo,

      ich bin auf dieses Tool gestoßen und denke es ist genau das was ich gesucht habe, mein Server läuft noch mit SBS 2011 somit ist ein Update auf die Powershell / Managmet Framework 4 wegen Inkompatibilitäten leider keine Möglichkeit.
      Ist von dem Exchange Reporter auch eine ältere Version ohne Powershell 4 Abhängigkeit verfügbar?

      Liebe grüße
      Simon

      Antworten
    63. Hallo Frank, hallo Timbo,
      jetzt läuft auch das HPiLOreport.ps1 ohne Probleme. Das SSL-Zertifikat muss einen vertrauenswürdigen Herausgeber haben. Ebenso habe ich im Abschnitt [HPiLO] unter iLOIPs= den Namen auf dem das Zertifikat ausgestellt ist anstelle der IP eingetragen.
      Danke und viele Grüße
      Marita

      Antworten
    64. Hi,

      hab nochmal ne Nacht drüber geschlafen. Da MAPI erst ab Exchange 2013 gesprochen wird könnte man die Zeile $MAPIServers folgendermaßen anpassen:
      $MAPIServers = @(Get-ExchangeServer | where {(($_.IsMailboxServer -eq ‚$true‘) -and (($_.AdminDisplayVersion).major -ge ’15‘)) } | Select Name,@{Name=’Path‘;Expression={(„\\$($_.fqdn)\“ + „$($_.Datapath)“).Replace(‚:‘,’$‘).Replace(„Mailbox“,“Logging\MAPI Client Access“)}} )

      LG
      Timbo

      Antworten
    65. Hi,

      [Zitat von Torsten, 15. November 2016 um 11:28] Könnte man beim Modul clientinfo.ps1 eventuell auch die Clientzugriffe per MAPI erfassen (MAPI Client Access)? [Zitat Ende]

      Im oberen Teil folgende Funktion einfügen:
      Unter „$EWSServers = @(…“ folgende Zeile einfügen:
      $MAPIServers = @(Get-ExchangeServer | where {(($_.IsClientAccessServer -eq ‚$true‘) -and (($_.AdminDisplayVersion).major -eq ’14‘)) -or (($_.IsMailboxServer -eq ‚$true‘) -and (($_.AdminDisplayVersion).major -ge ’15‘)) } | Select Name,@{Name=’Path‘;Expression={(„\\$($_.fqdn)\“ + „$($_.Datapath)“).Replace(‚:‘,’$‘).Replace(„Mailbox“,“Logging\MAPI Client Access“)}} )

      Unter der „ForEach ($Item in $EWSServers)“-Schleife folgende Zeilen einfügen:
      $MAPIData = @()
      ForEach ($Item in $MAPIServers)
      {
      $Thefile = @(GCI -Path $Item.Path -Filter *.log | ?{$_.LastWriteTime -gt (Get-Date).AddDays(-$reportinterval)} | Select @{Name=’File‘;Expression={(„$($Item.Path)“ + „\$($_.Name)“)}})
      Foreach ($F in $Thefile)
      {
      $MAPIData += (Filter-MapiData $F.File)
      }
      }

      Folgende Zeile anpassen:
      $outlookusers = $Data | select client-software-version,client-name -Unique
      $outlookusers = $Data + $MAPIData | select client-software-version,client-name -Unique

      Weiterhin ist mir aufgefallen:
      Die Spaltenbezeichnungen in der FilterData-Funktion stimmen nicht (mit Exchange 2013 Logfiles überein). Alle später genutzten Spalten sind jedoch korrekt referenziert, daher ist das kein Problem. Vermutlich sind die Spaltenbezeichnungen Exchange Versions-spezifisch?

      Weiterhin:
      These: wenn ein Benutzer zwei Computer mit der gleichen Office-Version nutzt taucht er nur einmal in der Statistik auf (wegen -Unique). Wenn jemand Lust und Zeit hat bitte mal testen.

      Ich hoffe die Formatierung des Powershell-Code oben passt. Teilweise wird hier Formatierung verschluckt.

      LG
      Timbo

      Antworten
    66. Hallo Timbo,
      ups, das war es wohl :)
      Allerdings bin ich noch nicht ganz am Ziel. Unser iLO-Seiten sind SSL-geschützt…

      Der Eintrag in der ErrorLog.txt lautet nun:
      HPiLOreport.ps1
      Ausnahme beim Aufrufen von „Load“ mit 1 Argument(en): „Die zugrunde liegende Verbindung wurde geschlossen: Für den geschützten SSL/TLS-Kanal konnte keine Vertrauensstellung hergestellt werden..“

      VG
      Marita

      Antworten
    67. Hi,
      bei mir heißt der Eintrag „Hewlett-Packard iLO Cmdlets“ in Version 1.2.0.0 (auf einem Windows Server 2008 R2). Ich vermute die hast einfach die falsche Komponenten installiert. Mit BIOS hat das ja nix zu tun!? Das würde auch erklären warum bei dir die Cmdlets wie Get-HPiLOServerInfo nicht bekannt sind.

      LG
      Timbo

      Antworten
    68. Hallo Timbo,
      unter den installierten Programmen in der Systemsteuerung sind die „Scripting Tools for Windows Powershell: BIOS cmdlets“ vorhanden…
      Hast Du noch eine weitere Idee?

      Antworten
    69. Hi Marita,

      in der Umgebung wo ich dieses Modul laufen habe, mussten die HP Scripting Tools nicht nur kopiert sondern installiert werden. Hinterher tauchen unter den installierten Programmen in der Systemsteuerung die Hewlett Packard iLO cmdlets auf. Versuch das mal.

      LG

      Antworten
    70. Hallo,
      vielen Dank für dieses hilfreiche Tool! Ich habe nur ein Problem mit HPiLOreport.ps1. Die HP Scripting Tools for Windows PowerShell habe ich heruntergeladen und im vorgeschlagenen Ordner des Setups installiert.
      Trotzdem bekomme ich einen Fehler:
      Die Benennung „Get-HPiLOServerInfo“ 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.
      Was mache ich falsch?
      VG, Marita

      Antworten
    71. Hi,
      ich habe folgendes Phänomen bei den ActiveSync Client Übersicht festgestellt. Wenn genau ein Gerät in eine der Gruppen (Apple iOS, Android etc.) fällt wird keine Zahl angezeigt und das Feld ist leer. Das Ganze lässt sich folgendermaßen beheben:
      Wo: clientinfo.ps1
      alte Zeile(n): $ = ($activesyncos | where {$_.deviceos -like „*“}).count
      neue Zeile(n): $ = @($activesyncos | where {$_.deviceos -like „DeviceOSString*“}).Length

      Also z. B.
      alt: $android = ($activesyncos | where {$_.deviceos -like „Android*“}).count
      neu: $android = @($activesyncos | where {$_.deviceos -like „Android*“}).Length

      LG

      Antworten
    72. Edit:
      Send-MailMessage -From „Absender-Adresse wie in der config-Datei“ -To „Empfänger-Adresse wie in der config-Datei“ -Subject „Test“ -Body „Test-Message“ -SmtpServer „Server wie in der config-Datei“

      Antworten
    73. Hi Sebastian,

      zu Punkt 1: Probier folgendes auf der Shell:
      Send-MailMessage -From -To -Subject „Test“ -Body „Test-Message“ -SmtpServer
      Was kommt als Rückmeldung?

      zu Punkt 2: lies bitte meinen Kommentar vom 7. Juli 2017 um 00:02.

      LG

      Antworten
    74. Hi Frank,

      erstmal Danke für das tolle Tool!

      Ich hab zwei Probleme.

      1. Er sendet bei mir keine Mails, es steht auch im Error.log nichts darüber warum er sendet. Es kommt nichts an.

      2. Beim Module updatereport.ps1 bekomme ich diese Meldung
      -Start– 09/14/2017 10:12:29 ———————————————————————————-
      updatereport.ps1
      „“UTF-8″“ ist kein unterstützter Codierungsname. Informationen zum Definieren einer benutzerdefinierten Codierung entnehmen Sie der Dokumentation zur Encoding.RegisterProvider-Methode.
      Parametername: name
      -End— 09/14/2017 10:15:19 ———————————————————————————-

      Wir haben ein Exchange 2016 CU2 auf einer W2k12R2 Machine.

      Hast du ein Tip oder eine Idee, woran das liegen könnte?

      Antworten
    75. Hi,

      ich möchte meine Erfahrungen mit der ‚ActiveSync Client Übersicht‘ und den Übersichten der ActiveSync Geräte teilen. Auch nach der von mir bereits beschriebenen Korrektur (Stichwort ExchangeDeviceClasses) gab es bei mir noch Abweichungen zwischen beiden Übersichten. Ich habe festgestellt, dass (evtl. abhängig von der Exchange Version) Geräte aus folgenden Gründen in der Client Übersicht enthalten in den Übersichten der ActiveSync Geräte jedoch nicht angezeigt werden:
      – MobileDevice wurde nie erfolgreich synchronisiert (Devices mit Get-MobileDevice | Get-MobileDeviceStatistics ausfindig machen und löschen)
      – Benutzer-Objekt im AD wurde gelöscht (das MobileDevice bleibt dabei im AD enthalten, Bereinigung mit Get-ADObject -filter { ObjectClass -like ‚msExchActiveSyncDevices‘} -SearchBase “OU=MyBusiness,DC=contoso,DC=com”, dann auf die Devices der nicht mehr existierenden Benutzer filtern und Remove-ADObject -Recursive anhängen)
      – Zugriff auf MobileDeviceStatistics nicht möglich (in meinem Fall war der Benutzer Dom-Admin, er hatte mal ein MobileDevice als er noch kein Admin war, Stichwort AdminSDHolder, Benutzer aus Dom-Admin Gruppe entfernt, Rechte auf Benutzerkonto zurückgesetzt, dann klappt das Entfernen des Device)

      Seither passt die Anzahl der Geräte in der ‚ActiveSync Client Übersicht‘ zu der Anzahl der im Report gelisteten Geräte.

      LG

      Antworten
    76. Hallo „NameIstGeheim“,
      ggf. solltest du dich erst ein wenig mit PowerShell auseinander setzen, bevor du das Tool nutzt. Die Fehlermeldung ist relativ eindeutig und gibt dir ja sogar an, was der Fehler ist.

      Ihr habt anscheind im Unternehmen eingestellt, dass PowerShell Skripte digital signiert werden müssen. Als Administrator könntest du jedoch dennoch die Einstellung des Exchange Servers so ändern, dass er Skripte akzeptiert. Dazu PowerShell als Administrator starten und folgenden Befehl ausführen: set-executionpolicy -executionpolicy unrestricted

      Antworten
    77. wieso finde ich jetzt erst dieses Tool?
      leider bekomme ich es mit folgender Fehlermeldung auf meinem Exchange 2010 nicht zum laufen :
      .\New-ExchangeReport.ps1 : File C:\Exchange Reporter 3.2\New-ExchangeReport.ps1 cannot be loaded. The file C:\Exchange
      Reporter 3.2\New-ExchangeReport.ps1 is not digitally signed. The script will not execute on the system. Please see „get
      -help about_signing“ for more details..
      At line:1 char:25
      + .\New-ExchangeReport.ps1 <<<< -InstallPath "c:\Exchange Reporter 3.2"
      + CategoryInfo : NotSpecified: (:) [], PSSecurityException
      + FullyQualifiedErrorId : RuntimeException

      Antworten
    78. Hi,

      bzgl. HPiLOreport.ps1: in meinem Fall gibt es den Wert „AVERAGE_POWER_READING“ nicht. Ich vermute hier liegt die Ursache:
      STATUS_MESSAGE: Note: additional information is available with iLO 4 Advanced and iLO 4 Select licenses.

      Ich lese daher den aktuellen Wert aus:
      alte Zeile: $powerstate = $serverpower.AVERAGE_POWER_READING
      neue Zeile: $powerstate = $serverpower.PRESENT_POWER_READING

      LG

      Antworten
    79. Hi,

      ich hatte im Modul HPiLOreport.ps1 das Problem, dass das Integrated Management Log leer war. Nach der Abfrage ist $imllog jedoch nicht leer sondern besitzt ein Element mit der Länge 0. Ich habe eine zusätzliche If-Abfrage eingebaut. Somit läuft das Modul dann erfolgreich durch.

      alter Code:
      foreach ($event in $imllog)
      {
      [datetime]$eventdate = $event.LAST_UPDATE
      $eventdatum = get-date $eventdate -Format „dd.MM.yyyy HH:mm“
      $eventdes = $event.DESCRIPTION
      $eventtyp = $event.SEVERITY

      $cells=@(„$eventdatum“,“$eventdes“,“$eventtyp“)
      $iloreport += New-HTMLTableLine $cells
      }

      neuer Code:
      foreach ($event in $imllog)
      {
      if ($event -ne “)
      {
      [datetime]$eventdate = $event.LAST_UPDATE
      $eventdatum = get-date $eventdate -Format „dd.MM.yyyy HH:mm“
      $eventdes = $event.DESCRIPTION
      $eventtyp = $event.SEVERITY

      $cells=@(„$eventdatum“,“$eventdes“,“$eventtyp“)
      $iloreport += New-HTMLTableLine $cells
      }
      }

      Antworten
    80. Hallo,

      habe den gleichen Fehler wie:
      „Torsten sagt:
      17. Mai 2017 um 16:45

      Hallo Frank,
      ich habe einen Exchange 2016 CU4 auf Windows Server 2016 und erhalte beim Start des Skriptes in der PS den Fehler „Loading global variables: Error“

      Nur 2016 CU5

      Es wird aber auch kein Error.log geschrieben.
      Gibt es hierfür schon eine Lösung?

      Antworten
    81. Hi,

      [Zitat, von Peter, 7. März 2017 um 15:27] wir bekommen im „ActiveSync Client Overview“ in der Spalte „other version“ eine 3 angezeigt. Kann man feststellen welcher User / Geräte hier gezählt werden? Unter „Overview Connected ActiveSync Devices “ werden nur die bekannten User und Geräte angezeigt und deren Summe stimmt auch wieder zum „ActiveSync Client Overview“. [Zitat Ende]

      Ich konnte das Problem mit Exchange 2010 nachvollziehen. Andere Exchange-Versionen sind nach meinen Tests nicht betroffen. Hintergrund: mit geladenem Exchange-PSSnapin gibt der Befehl Get-ActiveSyncDevice auch die dem Exchange Server bekannten Geräteklassen (ExchangeDeviceClasses) mit aus (komischerweise passiert das nicht bei der Ausführung über die Exchange Management Shell). Die Geräteklassen spiegeln sich dann unter ‚other version‘ wieder. Um diesen Schönheitsfehler zu beheben habe ich folgende Zeile in der clientinfo.ps1 angepasst:
      alte Zeile: $activesyncos = Get-ActiveSyncDevice | select deviceos
      neue Zeile: $activesyncos = Get-ActiveSyncDevice | where { $_.DistinguishedName -NotLike „*,CN=ExchangeDeviceClasses,*“ } | select deviceos

      LG
      Timbo

      Antworten
    82. Hi,

      meiner Ansicht nach gibt es in dem Modul updatereport.ps1 ein Problem:
      PS C:\Exchange Reporter 3.2\Modules> invoke-webrequest „http://www.frankysweb.de/feed/atom/“
      invoke-webrequest : „“UTF-8″“ ist kein unterstützter Codierungsname.
      Parametername: name
      In Zeile:1 Zeichen:1
      + invoke-webrequest „http://www.frankysweb.de/feed/atom/“
      + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      + CategoryInfo : NotSpecified: (:) [Invoke-WebRequest], ArgumentException
      + FullyQualifiedErrorId : System.ArgumentException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand

      Ich habe die Zeilen in folgende geändert:
      invoke-webrequest „http://www.frankysweb.de/feed/atom/“ -OutFile bla.htm
      [xml]$feeds = Get-Content -Path bla.htm

      Mehr Infos hier:
      https://stackoverflow.com/questions/36275618/why-is-invoke-webrequest-and-invoke-restmethod-failing-and-succeeding-at-the-sam

      Antworten
    83. Hi,

      @Frank: coooooles Teil hast du da gebaut. Tausend Dank. Wieviel Zeit da wohl reingeflossen ist!?

      Zum Thema: „In manchen Umgebungen kann Exchange Reporter nicht über die Aufgabenplanung gestartet werden (In Bearbeitung).“: Ich habe den Reporter mit dem Script als Aufgabe auf einem SBS 2011 (also Server 2008 R2, DC + Exchange 2010 auf einer Kiste) anlegen lassen. Ich hatte das oben beschrieben Phänomen (Aufgabe ‚läuft‘, nichts passiert). Ich habe anschießend das Häkchen ‚Mit höchsten Privilegien ausführen‘ gesetzt. Anschließend klappt alles.

      LG
      Timbo

      Antworten
    84. Hallo Frank,
      in der Ausgabe des Reports wird für Public Folders unter
      „Public Folder statistics sorted by size“ in der Spalte „Database“ nicht die Datenbank des betreffenden Ordners, sondern das (PF) Postfach der primären Hirarchie ausgegeben.
      Wäre super wenn du das noch korrigieren könntest, in dem tollen Tool!
      mfg
      STefan

      Antworten
    85. Frank,
      I changed it from 7 to 1, I suspect it to be a lot quicker.
      Also how do I call the SSLLabs script?
      I tried it by giving the script a module number (32=ssllabsreport.ps1)
      But didn’t work.

      Antworten
      • Hi Eddie,
        that should be a lot quicker. Could you please send me the errorlog? I will have a look. You could also try to set your Hostname manually in ssllabsreport.ps1 line 2.
        Regards, Frank

        Antworten
    86. Hi Frank,

      Nice looking script, I’m testing it now but it’s running for 5 hours now and still not done.
      What is normal for a 6 server environment with around 3000 mailboxes?

      Antworten
      • Hi Eddie,
        i have tested the script with ~2000 mailboxes, a one day Report took about 4 hours. How many days have you configured in the Settings.ini?
        Regards, Frank

        Antworten
    87. Hallo Frank,
      ich habe einen Exchange 2016 CU4 auf Windows Server 2016 und erhalte beim Start des Skriptes in der PS den Fehler „Loading global variables: Error“

      Im error log findet sich dies:
      „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.“

      Nun kommt Windows 2016 ja mit der PS in der Version 5. Meine bisherigen Versuche den Fehler zu beheben, hatten leider keinen Erfolg. Hast du eine Idee, wie ich das gelöst bekomme?

      Antworten
    88. Der Fehler „der den NULL hat“ wird bei mir durch ein bestimmtes Postfach verursacht. Dieses lässt sich auch durch eine lokale Verschiebungsanforderung nicht in eine andere Datenbank verschieben. Der Grund dafür muss noch ermittelt werden.

      Übergangsweise funktioniert der Report, wenn man die folgende Zeile ergänzt mit „| where … $entry}“ und den User in der settings.ini bei der mbxreport Excludelist angibt.

      $mailboxesindb = get-mailbox -database $database -ResultSize unlimited | where {$_.displayname -notmatch $entry -or $_.alias -notmatch $entry} | sort

      Gruß
      Christian

      Antworten
    89. Hallo Frank,

      ich wollte Dir erst einmal ein großes Kompliment für Deine Arbeit machen. Einzig der „mbxreport“ lässt mich verzweifeln. Wie auch schon bei einigen anderen hier taucht im Error Log nur der vielsagende Eintrag
      -Start– 03/23/2017 15:24:09 ———————————————————————————-
      mbxreport.ps1
      Es ist nicht möglich, eine Methode für einen Ausdruck aufzurufen, der den NULL hat.
      -End— 03/23/2017 15:41:40 ———————————————————————————-

      auf. Wenn man im „mbxreport“ den Bereich von $mbxlimits = @() bis #Getrennte Mailboxen auskommentiert funktioniert der Report.

      Gruß
      Christian

      Antworten
    90. Hallo,

      wir bekommen im „ActiveSync Client Overview“ in der Spalte „other version“ eine 3 angezeigt. Kann man feststellen welcher User / Geräte hier gezählt werden? Unter „Overview Connected ActiveSync Devices “ werden nur die bekannten User und Geräte angezeigt und deren Summe stimmt auch wieder zum „ActiveSync Client Overview“.

      Antworten
    91. Was heißt denn „Der Exchange Reporter 2013 ist nicht kompatibel mit Exchange 2010“?

      Seit wann gibt es einen Exchange Reporter 2010 bzw. 2013? Weiter oben in dem Beitrag steht nur eine Versionsnummer vom „Exchange Reporter“ (z. B. „3.2“). Woher weiß ich denn, welche „Hauptversion“ (also 2010 oder 2013) man einsetzt?
      Wenn ich die Mail bekomme vom Exchange Reporter (3.2), steht oben drin nur „created with Exchange Reporter“, während in den Screenshots weiter oben in diesem Beitrag tatsächlich „erstellt mit Exchange Reporter 2013“ steht. Sehr verwirrend…

      Noch eine Frage zur report.html: hier hat sich irgendwie der Quellcode für die Bilder geändert. Unter Exchange Reporter .20 stand hier z. B. im Quellcode:

      Mit Version 3.2:

      Das führt leider dazu, dass keine Bilder im Browser angezeigt werden wenn ich die report.html mit einem Browser öffne.

      Hintergrund: bevor das TEMP-Verzeichnis aufgeräumt wird, kopiere ich dieses in ein Archiv (in der Form yyyy-mm-dd.html). E-Mails lassen sich so schwer weiterverarbeiten und richtig speichern lässt sich ein einzelner Report ja leider nicht.

      Antworten
    92. Hallo Frank,

      was mir gerade aufgefallen ist, die Übersichtsgrafik „Mails je Tag“ zeit den letzten Tag der Woche als erstes.
      Sprich z.b. von letzter Woche gehen die Balken vom 05.02. – 30.01.2017. Kann man das korrigieren?

      Antworten
    93. Hallo Frank,
      ich habe heute auf die Version 3.2 umgestellt weil ich das Sophos UTM mit auswerten möchte. Insgesamt hat die Umstellung nun geklappt – auch Start über Aufgabenplanung ohne Prob möglich (Srv2012R2 mit Exchange 2013 durchgepatcht).
      Leider läuft dasUTMMailReport immer wieder auf Fehler:
      Ausnahme beim Aufrufen von „AutodiscoverUrl“ mit 2 Argument(en): „The Autodiscover service couldn’t be located.“
      Kann ich nicht nachvollziehen, da die Anbindung von Outlookclients per Autodiscover ohne Probleme geht?

      Ich denke verantwortlich sind wahrscheinlich diese 2 Zeilen im Script:

      #EWS URL Option 1 Autodiscover
      $service.AutodiscoverUrl($UTMMailboxName,{$true})

      Dieser Bereich ist ja auskommentiert und greift nicht:
      #EWS URL Option 2 Hardcoded
      #$uri=[system.URI] „https://outlook.beispiel.local/ews/Exchange.asmx“
      #$service.Url = $uri

      Wo ist hier das Problem zu suchen ?

      Die Ausführung zu Einrichtung der Sophos beschränken sich ja lediglich auf die Seite 15/16 deiner Anleitung. Was meinst du mit „werden an ein entsprechendes Postfach gesendet“ ? Ein zusätzliches welches nur für die Berichte angelegt ist? Und wie geht die Abfrage per EWS API vonstatten?

      Würde mich über eine Hilfestellung freuen,

      Ingo

      Antworten
      • Hi Ingo,
        du kannst zum testen die Automatische Ermittlung deaktivieren (Option 1) und die EWS Adresse fest eintragen (Option 2). Das Postfach kannst du frei definieren, es muss halt nur die Berichte enthalten.
        Gruß, Frank

        Antworten
    94. Hi Frank,
      besten Dank für die Rückmeldung! Das klappt jetzt auch.
      Schön wäre noch, wenn man außer Intervall 1 und 7 Tage auch letzter Monat zur Auswahl hätte, also ein kompletter Monat 1. bis 30./31.
      Gruß Benni

      Antworten
    95. Hallo, feines Tool. Gibt es evtl. eine Möglichkeit, den Mail-Report nur auf bestimmte Postfächer zu beschränken? Ausschlüsse in der Settings.ini hilft nicht weiter, da Umgebung zu groß.

      Besten Dank für kurze Rückmeldung.

      Antworten
    96. Hallo Frank,
      wir suchen eine Möglichkeit die automatischen Weiterleitungen auszuwerten.
      Das Modul „redirectreport.ps1“ vom Exchangereporter 3.2 läuft zwar ohne Fehler durch, es werden aber im Report keine Weiterleitungen angezeigt.
      Woran kann das liegen?
      Exchangeserver sind derzeit auf 2010
      Gruß,
      Markus

      Antworten
    97. Hallo ich bekomme auf meinem Exchange Server 2016 folgenden Fehler
      Das Modul „bin“ konnte nicht geladen werden. Wenn Sie weitere Informationen wünschen, führen Sie „Import-Module bin“ aus.
      Hat jemand eine Idee.
      Vorab vielen Dank

      Antworten
    98. Hallo Frank.

      ich bekomme folgende Meldungen bei manchen Modulen:

      „Der Befehl „Get-WinEvent“ wurde im Modul „Microsoft.PowerShell.Diagnostics“ gefunden, das Modul konnte aber nicht geladen werden. Wenn Sie weitere Informationen wünschen, führen Sie „Import-Module Microsoft.PowerShell.Diagnostics“ aus.“

      „Der Befehl „Resolve-DnsName“ wurde im Modul „DnsClient“ gefunden, das Modul konnte aber nicht geladen werden. Wenn Sie weitere Informationen wünschen, führen Sie „Import-Module DnsClient“ aus.“

      „Die Datei „C:\Users\admin\AppData\Roaming\Microsoft\Exchange\RemotePowerShell\hostname.intern.domäne\hostname.intern.domäne.format.ps1xml“ konnte nicht gefunden werden.“

      Die PowerShell Module habe ich von einem W2k12 Server komplett kopiert und eingefügt.

      Ich habe einen Exchange 2010 CU15 auf Windows 2008 R2.

      Antworten
    99. Hallo Frank,

      das Tool ist großartig. Ich setze es inzwischen bei vielen Kunden ein. Vielen Dank dafür!
      Könnte man beim Modul clientinfo.ps1 eventuell auch die Clientzugriffe per MAPI erfassen (MAPI Client Access)?

      Antworten
    100. Hallo,

      sicherlich gutes Tool, läuft in unserer Umgebung leider nicht: Working on Module ‚mailreport.ps1‘:Exception of type ‚System.OutOfMemoryException‘ was thrown. :-(

      Grüße,
      Roland

      Antworten
    101. Hallo Frank!

      Ein tolles Tool!
      Aber kann es sein, dass mit der Version 3.2 unter Exchange 2016CU2 die Outlook Versionen nicht mehr erfasst werden?
      Bei mir ist die Liste leer, obwohl ich weiß dass dort x-mal Outlok 2016 stehen müsste.

      Vielen Dank im Voraus!

      VG, Rüdiger

      Antworten
    102. Hi Frank,

      Your work is amazing. I have been customizing it and using it from 1st version according to my needs.
      There is this one problem always. I have around 300 DBs and they show good report under dbreport but the problem is the graphs are not sorted despite the tables are. The tables will show correct value Db01,DB02,DB03 etc but the graph will show DB03,DB01,DB03 and randomly as it likes. I cant figure it out how to sort the graph values as tables are sorted. Can you please help on this

      Antworten
    103. Hallo,
      erstmal vielen Dank fürs Script und ausführliche Anleitung. Ich habe eine Frage, kann man Script mit folgende Punkte erweitern?
      – die Zahl von automatisch beantworteten E-Mails
      – die Zahl von manuell beantworteten E-Mails
      – die Zahl von automatisch weitergeleiteten E-Mails
      – die Zahl von manuell weitergeleiteten E-Mails

      Danke & Gruß

      Antworten
    104. Hallo zusammen,

      ich habe heute von Version 2.6 auf 3.2 gewechselt. Zum Testen wollte ich es manuell starten, entgegen dem Handbuch ist ein manueller (evtl. deswegen auch Start Aufgabenplanung?) nur in der Exchange Management Shell möglich. Bei Start aus der „normalen“ Powershell gibt es einen Fehler beim Laden der globalen Variablen.

      Antworten
    105. Guten Morgen zusammen,
      ich habe heute wieder versucht, den Exchange-Reporter 3.2 über den TaskScheduler auf einem 2012r2 Server zum laufen zu kriegen. Bis gestern konnte ich den Reporter zumindest manuell starten – seit heute geht das aber auch nicht mehr. ich bekomme beim Aufruf gleich folgende Meldung:
      Checking for Powershell Version 4.0: OK
      Loading functions from Include-Functions.ps1: Error (not found)

      Ich muss aber dazu sagen, dass ich heute „Set-ExecutionPolicy Unrestricted“ ausgeführt habe, weil ich immer eine Meldung bekam, dass das Script nicht ausgeführt werden konnte. Danach habe ich noch folgende zwei Befehle abgesetzt:
      Unblock-File -Path D:\Scripts\Tasks\Exchange_Reporter_3.2\New-ExchangeReport.ps1
      dir D:\Scripts\Tasks\*.* | Unblock-File
      Dadurch wollte ich die Meldung unterdrücken, dass jedes mal gefragt wird, ob ich dem Script wirklich vertraue…
      Und jetzt bekomme ich den Reporter nicht mehr zum laufen. Auch die Version 3.1 bleibt beim gleichen Fehler hängen.
      Hat jemand eine Idee?
      Besten Dank vorab,
      Andreas

      Antworten
    106. Moin,

      in kleinen Umgebungen ohne feste IP kommt es aber vor, sprich der MX zeigt zwar schon auf eine Subdomäne mail.xxx.de, aber diese wiederum auf einen CName. Dann gibt es besagten Fehler im Script. Mit der Änderung wird auch dies richtig verarbeitet!

      Gruß, Steffen

      Antworten
    107. Hallo Frank,

      wir haben das gleiche Problem wie Addi.
      Mit Exchange 2010 unter Windows Server 2008 R2 wird zwar durch den Taskplaner die Powershell gestartet, aber leider hängt er dann irgendwo und es kommt kein Report. Manuell in der Powershell geht es. Wobei es unter Server 2008 R2 schon ein Krampf war, überhaupt das Skript zum Laufen zu bringen :(

      Antworten
    108. Servus und Danke für die neue Version.

      Im Modul mxreport.ps1 gibt es einen Fehler, wenn man mit CName arbeitet. Daher habe ich die Zeile 59:

      $MXIP = $ARecord.IPAddress

      Ersetzt durch:

      if (!$ARecord.IPAddress)
      {
      $MXIP = [System.Net.Dns]::GetHostAddresses($ARecord.NameHost)[0].IPAddressToString
      }
      else
      {
      $MXIP = $ARecord.IPAddress
      }

      Dann klappt es auch mit CName!

      Gruß, Steffen

      Antworten
    109. Hallo Frank,

      wir nutzen auch dein Exchange Reporter und danken dir für dieses mega Werkzeug.
      Wollte dich was fragen bezüglich der Mailbox Abfragen. Wäre es möglich zum Punkt „Possibly inactive Mailboxes“ ein Feld „Expired Datum“ hinzuzufügen?

      Grüße
      Daniele

      Antworten
    110. Hallo,
      tolles Tool,
      leider startet das PS Script nicht über die Aufgabenplanung. Powershell wird zwar gestartet, aber dann hängt es. Selbst in den Error-File wird kein Eintrag geschrieben. Powershell Task muss dann manuell beendet werden.
      Dieses Verhalten habe ich bei mehreren EX 2010 SP3 unter Win 2008 R2.

      Führe ich das Screen direkt aus funktioniert es fehlerfrei.

      Woran kann das liegen?

      Antworten
    111. Hallo,
      vorab großes Kompliment für das Programm. Echt super!
      Ich habe seit kurzem das Problem, dass das Modul Mailreport.ps1 nicht mehr funktioniert. Das Modul wird gestartet, ich sehe auch, dass die Nachrichtenverfolgungsprotokolle durchsucht werden, aber dann tut sich nicht mehr. „Working on Module ‚mailreport.ps1‘:_“ mit blickendem Kurser. Entferne ich das Modul, werden die anderen Module ausgeführt. Im Errorlog wird leider auch nichts geloggt.
      Es handelt sich um einen Exchange 2010 SP3 mit aktuellem CU. Hat vielleicht jemand eine Idee, woran es liegen könnte, bzw. wie man den Fehler eingrenzen kann? Server wurde bereits mehrfach neu gestartet und die Programmdateien durch die Originalen auch schon ersetzt.

      Für Hilfe wäre ich sehr dankbar.

      Gruß
      Marc

      Antworten
    112. Habs, einfach Set-ADServerSettings -ViewEntireForest $True in den betroffenen (habe fast alle genommen) PS in Zeile 1 reinpacken und schon guckt der Reporter in den kompletten Wald ;)

      Hat vllt. noch jemand Rat für diese Fehlermeldungen, der Report wird zwar geliefert aber bis dahin halt mit diesen Fehlern.

      -Start– 04/24/2016 22:08:42
      esareport.ps1
      Die Benennung „New-SSHSession“ 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.
      mxreport.ps1
      Die Benennung „Resolve-DnsName“ 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.
      rblreport.ps1
      Die Benennung „Resolve-DnsName“ 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.
      Fehler: PowerShell ActiveDirectory Modul nicht gefunden
      careport.ps1
      Die Benennung „get-ca“ 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— 04/24/2016 22:28:03

      Antworten
    113. Hi Gero,

      ja genial, danke!!
      Kannst du mir noch sagen was bei dir welche Skripte du „angepackt“ hast?!
      Habe eigenlich alle Skripte aktiv bist auf die, die „externe“ Sachen Monitoren wie vMWare, Kemp und Co!

      Besten Dank und schönen Abend

      Antworten
    114. Hallo Heydemar,
      genau darüber bin ich auch gestolpert: In den betreffenden Skripten habe ich folgende Zeile am Anfang hinzugefügt:

      Set-ADServerSettings -ViewEntireForest $True

      Ich hoffe, Dir und anderen damit geholfen zu haben. Noch einmal Dank an Frank für die Bereitstellung! Vielleicht könnte das per Default in der nächsten Version eingeschlossen werden – wer es nicht braucht, den sollte es auch nicht stören.

      Gruß, Gero

      Antworten
    115. Hallo zusammen,

      ich habe den Reporter nun im Einsatz und validiere gerade die Werte, dabei ist mir aufgefallen dass, der Reporter leider nur Reports aus der Root-Domäne zieht und nicht aus dem gesamten Forest bzw. aus den Child-Domain in denen auch User/Postfächer liegen.
      Der Ex2013 steht in der Root, jedoch gibt es noch x Child-Domain`s dieser werden leider beim Reporten nicht betrachtet…

      Kann ich da etwas tun !?

      Danke und Gruß!

      Antworten
    116. Hi Andreas,

      nicht zu danken – bin aktuell auch dran, du wirst jedoch bei der Koexistenz an einigen stellen ggfs. falsche Werte bekommen, aber sollte nur in der Zeit der Koexistenz sein…
      Schau dir auch mal den ExchangeMonitor an… die beiden Tools in Kombination sind schon genial ;)

      Schöne Grüße

      Antworten
    117. Guten Morgen Heydemar,
      TOP!!!
      Jetzt geht’s bei mir auch – vielen Dank für den Tipp :-)
      Wird mit dem tollen Exchange Reporter jetzt mal bisschen spielen und anpassen.
      Gruß
      Andreas

      Antworten
    118. Hi Andreas, bei mir das selbe, habe aktuell eine Koexistenz von 2007/2013…
      Komme auch leider nicht über denFehler hinweg…
      Auf meinem Exchange 2013 im Labor läuft der Reporter ohne Probleme.

      Wäre super wenn man das fixen könnte…

      DANKE!!

      Antworten
    119. Hier noch ein paar Versionen – vielleicht hilft das ja:

      [PS] D:\Scripts\Tasks\Exchange_Reporter_3.1>$PSVersionTable

      Name Value
      —- —–
      PSVersion 4.0
      WSManStackVersion 3.0
      SerializationVersion 1.1.0.1
      CLRVersion 4.0.30319.42000
      BuildVersion 6.3.9600.17400
      PSCompatibleVersions {1.0, 2.0, 3.0, 4.0}
      PSRemotingProtocolVersion 2.2

      ExchangeVersion AdminDisplayVersion
      ————— ——————-
      0.1 (8.0.535.0) Version 15.0 (Build 1156.6)

      Antworten
    120. Checking for Powershell Version 4.0: OK
      Loading functions from Include-Functions.ps1: Done
      Loading settings from settings.ini: Done
      Setting Report Language: DE
      Loading Exchange Management SnapIn: Done
      Checking Exchange Management Shell: Error (Wrong EMS Version)

      Antworten
    121. Hallo heydemar,
      bei mir ist das gleiche Problem.
      Ganz neuen Exchange 2013 mit CU11 auf Windows 2012r2.
      Schade – der Report wäre wirklich super für mich.
      Vielleicht hat ja noch jemand eine Idee!?
      Gruß
      Andreas

      Antworten
    122. Hi Christian,

      danke für deine Antwort, dies wird aber im Skript an erste Stelle schon gechekt und ist bei mir mit OK bestätigt worden:

      Checking for Powershell Version 4.0: OK

      Gruß

      Antworten
    123. Hi Frank,

      danke für dieses geniale Tool, ich habe auf einem 2008er R2 mit Exchange 2013 Build 1156.6 das Problem das er mir folgende Meldung rausgibt, was kann ich tun!?

      Checking Exchange Management Shell: Error (Wrong EMS Version)

      Der Fehler tauchte hier auch schon ein paar mal auf, jedoch konnte ich keine Lösung entnehmen.
      Ich habe deine frischste Version (3.1) des ExchangeReporters genommen.

      Gruß und Danke!

      Antworten
      • Hallo Haydemar,
        der Fehlermeldung nach (Wrong EMS Version) würde ich mal sage, Du hast die falsche Powershellversion auf Deinem 2008R2 installiert. Der Exchange-Reporter braucht zwingend Powershell 4.0 oder höher.
        gruß,
        Christian

        Antworten
    124. Thanks Frank for looking to this.

      Also Frank is it possible we cna pout the DB names into a column. I have more than 500 DBS and scrolling them and looking for info takes lot of time.

      Antworten
    125. Hallo Frank,

      das Skript funktioniert super bis auf mbxreport.ps1. Da bekomme folgende Fehlermeldung:
      mbxreport.ps1
      Es ist nicht möglich, eine Methode für einen Ausdruck aufzurufen, der den NULL hat.

      Was kann ich tun um den Fehler einzugrenzen?

      Antworten
    126. I resolved all the errors relating to Cannot convert value to [double] by using Split

      $dbsizegb= $dbsize.Split(‚ ‚)[0]

      The above works and takes out the problem of converting the values in GB. Hope it helps other.. The code is very good but needs more fixing.. I will try now fix the other error on mbxreport „You cannot call a method on a null-valued expression“

      Antworten
    127. Also on all Mbreport db report I keep getting
      dbreport.ps1
      Cannot convert value „4.375 GB (4,697,620,480 bytes)“ to type „System.Double“. Error: „Input string was not in a correct format.“
      -End— 04/06/2016 23:49:17 ———————————————————————————-

      Antworten
    128. hello Frank need some urgent help.

      I get the below if i add the mbxreport module. I am not sure which null value its taking about.. Please help

      -Start– 04/06/2016 14:10:47 ———————————————————————————-
      mbxreport.ps1
      You cannot call a method on a null-valued expression.
      -End— 04/06/2016 14:13:55 ———————————————————————————-

      Antworten
    129. Hallo Franky

      Ein grossartiger Report-Script, danke dafür.

      Deine INI-Settings Unterstützung und der modulare Aufbau ist klasse.
      Dein Code hat mich inspiriert, einen meiner bestehenden „Virtual Infrastructure Report“ Scripts, neu zu schreiben.

      Ich hätte da ein Paar Vorschläge, wie man den Code verbessern / vereinfachen könnte:
      – generierten HTML-Code verschönern (HTML beautifier :-)
      – CSS Unterstützung
      – Ein Paar hilfreiche Functions für die include-functions.ps1

      Kannst dich gerne mal melden, wenn du mal Zeit hast.
      Gruss
      Ajdin

      Antworten
    130. Hallo Frank,
      prima Scripte, vielen Dank.
      Ich habe allerdings ein kleines Problem mit dem Mailreport Modul auf einem Exchange 2010 sowie einem 2013er Server.
      Es läuft zwar fehlerfrei durch liefert aber in den Mailstatistiken keine Daten (immer 0 Mails).
      Im Fehlerlog ist nichts auffälliges zu finden.
      Gab es dieses Phänomen schon mal oder hast Du hier einen Tipp parat?

      Gruß, Silvio

      Antworten
    131. Hallo Frank,
      ich habe mir die Auswertung auch angeschaut und finde sie sehr gut.
      Ich hätte noch ein paar Vorschläge bezüglich einer Erweiterung der Auswertung.
      Ist es möglich den Report zu erweitern um
      – Anzahl von internen Mails/Volumen bei Senden und Empfangen
      – Anzahl von externen Mails/Volumenbei Senden und Empfangen
      – Aufteilung der Mails nach Anzahl (recipient-count ) bei Senden und Empfangen

      Vielen Dank
      Gruß Michael

      Antworten
    132. Bekomme den Fehler „Wrong EMS Version“
      Exchange 2013 SP1 Version 15.0 Build 1156.6, also CU 11
      Powershell:
      PSVersion 4.0
      WSManStackVersion 3.0
      SerializationVersion 1.1.0.1
      CLRVersion 4.0.30319.34209
      BuildVersion 6.3.9600.17400
      PSCompatibleVersions {1.0, 2.0, 3.0, 4.0}
      PSRemotingProtocolVersion 2.2

      Antworten
    133. Hallo Frank, hallo Arno,
      habt ihr das Problem mit dem mailreport (Es wurde versucht, durch 0 (null) zu teilen.) gelöst? Würde mich interessieren, sieht nämlich bei mir genauso aus (Exchange 2010).
      Gruß Jürgen

      Antworten
    134. Super Reporter doch im Modul rightsreport.ps1 würde ich die Abfrage :
      $rights = Get-MailboxPermission $mailbox | where {$_.IsInherited -match „False“ -and $_.user -notmatch „Self“ } noch um folgenden Parameter erweitern : -and $_.Deny -match „False“.
      Da die Auswertung sonst nicht ganz richtig ist ! Es werden User angezeigt die angeblich Vollzugriff haben , obwohl Deny = $true ist !

      viele grüße

      Daniel Fischer

      Antworten
    135. Hallo Frank,

      erstmal ein großes Lob für den Reporter 3.0. die Umstellung auf die neue Version hat problemlos funktioniert, ich habe nur das nachfolgende Problem mit dem neuem Script, weis mir da leider nicht zu helfen:(

      Errorlog.txt
      -Start– 02/02/2016 06:00:04 ———————————————————————————-
      dmarcreport.ps1
      Ausnahme beim Aufrufen von „Move“ mit 1 Argument(en): „Der Wert darf nicht NULL sein.
      Parametername: destinationFolderId“
      -End— 02/02/2016 06:37:24 ———————————————————————————-

      Viele Grüße aus Leipzig

      Antworten
    136. Hallo Frank,

      ich habe heute den Reporter 3.0 getestet und mir sind folgende Dinge aufgefallen. Es wäre super, wenn man hier nachbessern könnte. Mache ich auch gern selber mit meinen rudimentären PowerShell Kenntnissen. Müsste nur wissen, was und wo ich angreifen muss.

      1. Im Modul Speicherplatz werden Server mit OS Windows Server 2003 nicht mehr ausgelesen. Server ab Version 2008 funktionieren. Ich vermute hier einen Zusammenhang mit der Änderung der WMI Abfrage.http://www.directupload.net/file/d/4252/9x6z8ye9_png.htm

      2. Im Modul E-Mail Statistiken unter Übersicht Mails der letzten 7 Tage (je Server), werden die Empfangsvolumen nicht angezeigt, obwohl es in der vorherigen, kumulierten Anzeigekorrekt aufgelistet ist. http://www.directupload.net/file/d/4252/muxjdh5p_png.htm

      3. Im Modul SPAM Blacklist, werden von den 10 überprüften öffentlichen IP-Adressen im Report nur zwei ausgegeben. Die auf Blacklisting überprüften IPs ergeben sich doch aus den ermittelten MX-Einträgen (welche auch korrekt sind)?

      Freundliche Grüße,
      Martin

      Antworten
      • Hi Martin,
        zu Punkt 1) Richtig
        zu Punkt 2) Das ist ein Bug und ist bereits behoben, kommende Version steht schon vor der Tür
        Zu Punkt 3) Das lässt sich innerhalb von rblreport.ps1 anpassen

        Gruß, Frank

        Antworten
    137. Hallo Frank

      Vielen Dank für die Arbeit, die Du in die Skripte steckst!
      Ich habe eine Verständnisfrage zu den Listen „Top 20 Absender/Empfänger (Anzahl/Volumen)“
      Warum sind dort interne und externe Adressen in einer Tabelle vermischt? In erster Linie interessieren mich doch bei den Top-Absendern die internen Kollegen, allenfalls bei den Empfängern kann es interessant sein, neben den internen Top-Empfängern auch die externen Top-Empfänger zu erfahren. Aber in keinem Fall vermischt.
      Welchen Hintergrund hat die Vermischung? Kannst Du eventuell einen Optionsschalter einbauen, so dass man das getrentt betrachten könnte?

      Vielen Dank und Gruß,
      Dieter

      Antworten
    138. Hallo,

      großes Lob für den Reporter 3.0. :-)

      Ist es möglich, beim SpaceReport die Domaincontroller auszunehmen und nur die Daten der Exchange Server auszuwerten?

      Danke
      Schöne Grüße

      Antworten
    139. Hallo Frank, bei mir funktioniert das careport Modul nicht mehr. Im Logfile steht:

      -Start– 01/19/2016 10:04:35 ———————————————————————————-
      careport.ps1
      Exception calling „.ctor“ with „1“ argument(s): „Unknown error (0x80005000)“
      -End— 01/19/2016 10:04:47 ———————————————————————————-

      Hast du eine Idee, woran das liegen könnte?
      LG
      Henning

      Antworten
    140. Hallo Frank,

      wir haben auf 2 verschiedenen EX 2010 SP3 incl. aktuellen CU (Windows 2008 R2) das Problem, das das Script nicht über den Task ausgeführt wird. Der Task startet zwar, hängt aber dann. Mit der vorherigen 2.6 Version funktionierte das fehlerfrei.
      Wird das Script von Hand gestartet läuft es fehlerfrei durch.
      Woran kann das liegen ?

      Danke für schnelle Hilfe.
      Addi

      Antworten
    141. Hallo Frank, habe die gleichen Problem mit der falschen EMS Version. Bei mir läuft das auf einem der Exchange 2013 Server, OS ist Windows Server 2012 R2. Hier das Logfile:

      -Start– 01/14/2016 16:57:41 ———————————————————————————-
      Wrong EMS Version

      Danke für eine schnelle Hilfe.
      Henning

      Antworten
      • Sorry, bin noch nicht dazu gekommen. Ich versuche mich jetzt aber zeitnah darum zu kümmern. Wäre es möglich das du mir das Errorlog und einen Screenshot der Konsole schickst? Das würde mir sehr weiter helfen.
        Gruß, Frank

        Antworten
    142. Hello Frank,

      I am using the mailreport only and getting an error in log

      mailreport.ps1
      Attempted to divide by zero.
      -Ende— 01/11/2016 15:15:21 ————————————————————————

      Antworten
    143. Hallo Frank,

      hatte heute die Version 3.0 probiert – vorher war der Vorgänger erfolgreich im Einsatz. Auch für den Vorgänger war die EMS nötig…

      Der Exchange ist ein 2013 CU10

      Gruß,
      martin

      Antworten
    144. Hallo Frank,

      erst einmal besten Dank für diese neue Version.
      Ich habe ein wahrscheinlich kleines Problem.
      Bei mir läuft das Ganze auf einem lokalen WIndows 7 64 Pro.

      Wenn ich die neue Version starte, bricht Powershell mit dem Fehler ab:
      Error (Wrong EMS Version)

      Bei der 2.6 lief es noch.
      Wird ein bestimmtes CU vorausgesetzt oder was mache ich falsch?
      PSPKI und neue Module sind installiert.

      Gruß,
      Martin

      Antworten
    145. Hallo Frank,

      danke für die neue Version, wir nutzen einen Exchange 2013 auf Windows 2012 R2 und erhalten seit der Version 3 folgende Fehlermeldung:

      Die Benennung „Get-ClientAccessService“ wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei….

      Hast Du dafür eine Lösung?

      Danke

      Antworten
    146. Hallo Frank,
      ich bin leider jetzt erst auf den Reporter aufmerksam geworden und frage mich, was ich vorher die ganze Zeit gemacht habe.
      Allerdings habe ich (was wohl ein individuelles Problem ist) ein Problem mit der Auswertungen von dynamischen Gruppen:
      Wir haben unsere User in mehrere OUs aufgeteilt. Z.B. liegen die Azubis alles in der OU ORG/User/Azubis.
      Nun gibt es eine dynamische Verteilergruppe, welche ALLE E-Mailempfänger beinhaltet, aber nur im Container „Azubis“ sucht.
      Die Auswertung vom Reporter greift allerdings nur den Filter der Gruppe auf (alle) und nicht die OU.
      Dadurch haben wir auf einmal, lt. dem Report, über 1500 Azubis in unserem Unternehmen. Da wir nur knapp 1000 Angestellte haben finde ich das schon bemerkenswert ;).
      Gäbe es die Möglichkeit die OU noch mit in die Reports einzubeziehen?

      Danke und schönen Gruß,
      Christian

      Antworten
      • Hi Christian,
        du hast Recht, es handelt sich um einen Bug, den ich in der nächsten Version beheben werde (kommt bald). Falls du es nicht abwarten kannst, dann korrigiere Zeile 11 in der Datei dyndgreport.ps1 wie folgt:

        $dyndgmembers = Get-Recipient -RecipientPreviewFilter $dyngroup.RecipientFilter -OrganizationalUnit $dyngroup.RecipientContainer -resultsize unlimited | sort Name

        Das sollte die Anzahl eurer Azubis wieder auf ein erträgliches Maß reduzieren ;-)

        Gruß, Frank

        Antworten
    147. Hallo Frank,

      leider muss ich das nochmal ansprechen, da eine Kollegin unbedingt eine Auswertung der internen Mails für Ihre Weiterbildung benötigt.
      Ich hatte ja weiter oben am 13.10. geschrieben, dass nach mehrfachen Versuchen, nur die externen Mails ausgewertet werden.
      Kann man da irgendwas machen, dass man nur die internen bekommt, oder das getrennt voneinander auswertet?

      Vielen Dank für deine Mühe!!!

      Gruß
      Tim

      Antworten
      • Hallo Tim,
        schaue dir das Script mailreport.ps1 an. Es wird nicht an internen und externen Mails unterschieden. Es steht dir frei, es nach deinen Wünschen anzupassen.

        Gruß, Frank

        Antworten
    148. Hallo Frank,
      im dyndgreport.ps1 müsste die „Get-Recipient“ Abfrage ergänzt werden, da der Filter aus der DynDistGroup „RecipientContainer“ nicht berücksichtigt wird. Somit ist die Ausgabe von „Get-Recipient“ nicht korrekt. Ergänzt werden müsste „-OrganizationalUnit“.
      In deiner Ausgabe werden also mehr Empfänger angezeigt, als tatsächlich durch die DynDistGroup angesprochen werden.
      Grüße,
      Ulrich

      Antworten
    149. Hallo Frank,

      vielleicht doch noch eine Idee? Wenn ich in der Shell, auf dem Server auf dem der Exchange Reporter läuft, eine Abfrage starte, dann kriege ich auch immer ein Ergebnis.

      Beispiel:
      (Get-MessageTrackingLog -Start „10.10.2015 00:00:00“ -End „10.13.2015 23:59:00“ -EventId REC
      EIVE -ResultSize Unlimited).count
      8378
      (Get-MessageTrackingLog -Start „10.10.2015 00:00:00“ -End „10.13.2015 23:59:00“ -EventId SEN
      D -ResultSize Unlimited).count
      6207

      Gruß

      Arno

      Antworten
    150. Hallo Frank,

      ich habe mir das jetzt über mehrere Tage angesehen und mit verschiedenen Mitarbeitern gesprochen.
      Bei mir werden NUR externe Mails im Report aufgeführt.
      Die internen fehlen komplett.

      Woran könnte das liegen?

      Viele Grüße
      Tim

      Antworten
    151. Hallo Frank,

      beispiel bei mir der Report von heute Morgen.
      Ich soll gestern eine Mail versendet haben.
      Das ist auch korrekt, wenn man nur die externen berücksichtigt. Alle anderen gestern von mir gesendeten waren intern.
      Irgendetwas stimmt da also nicht, wenn du sagst, dass alle ausgewertet werden…

      Kann man auch zwischen intern und extern unterscheiden? Wir versuchen die interne und externe Kommunikation auszuwerten.
      Dafür wäre das sehr hilfreich.

      Vielen Dank und Gruß
      Tim

      Antworten
      • Hi Tim,
        das Script mailreport filtert die Message Tracking Logs nach dem Event SEND für gesendete Mails und RECEIVE für empfangene Mails. Wie schon erwähnt unterscheidet das Script nicht zwischen intern und externen Mails.
        Gruß, Frank

        Antworten
    152. Hallo Frank,

      nochmal vielen Dank für die schnelle Hilfe.

      Wenn ich das aber richtig sehe, werden aber nur externe Mails ausgewertet. Für die Auswertung des Kommunikationsverhalten ist es aber auch sinnvoll die internen Mails zu sehen.

      Ist das auch möglich?

      Vielen Dank und Gruß
      Tim

      Antworten
    153. Hi,

      leider der gleiche Effekt, egal ob „v14“ oder „v15″…

      -Start– 10/08/2015 08:53:14 ———————————————————————————-
      mailreport.ps1
      Es wurde versucht, durch 0 (null) zu teilen.

      Gruß

      Arno

      Antworten
    154. Hallo,

      das ist echt ein super Tool.
      Ich hatte allerdings das Problem mit dem InstallPath. Egal wie ich das eingegeben habe, er wollte das Tool nicht ausführen.
      Habe nun manuell die New-ExchangeReport.ps1 so angepasst, dass halt mein Installationspfad drin steht. Ist natürlich nicht toll aber immerhin funktioniert es so.
      Vielleicht gibt es noch andere Möglichkeiten?!

      Außerdem habe ich nun gerade zu Testzwecken gestern ausgewertet.
      Mailversand usw. hatte da noch nicht funktioniert. Jetzt geht der Mailversand, aber ich kann den Tag nicht erneut auswerten, da:
      „mailreport.ps1
      Das Element wurde bereits hinzugefügt. Schlüssel im Wörterbuch: „06.10.15“. Hinzuzufügender Schlüssel: „06.10.15“.“

      Wie kann ich das anpassen?

      Vielen Dank
      Tim

      Antworten
    155. Hi,

      wir sind gerade in eine Migrationsphase und haben sowohl noch Exchange 2010 (Version 14.3 ) als auch schon Exchange 2013 (Version 15.0 ) im Einsatz.
      „Mailreport“ hat ja auch in dieser Konstellation schon funktioniert.
      Ich kann es jetzt nicht hundertprozentig daran festmachen, bin aber der Meinung, daß das Problem seit CU9 für Exchange 2013 besteht…

      Der Intervall-Wert ist „1“.

      Gruß

      Arno

      Antworten
      • Hi Arno
        Ah, ich denke da liegt die Ursache. Mach doch mal folgendes als Workaround: Der der Datei include-functions.ps1 gibt es die Funktion Get-ExchangeVersionByRegistry (Ab Zeile 240). Passe die Funktion mal so an:

        function Get-ExchangeVersionByRegistry ()
        {
        return „v15“
        }
        Alternativ mal v14 probieren.
        Gruß, Frank

        Antworten
    156. Wenn der Teil mit den Durchschnittswerten auskommentiert wird, läuft alles fehlerfrei durch.
      Allerdings werden im Bereich „E-Mail Statistiken“ keinerlei Statistiken angezeigt.

      Antworten
      • Hi,
        das habe ich mir schon gedacht. Problem ist folgendes: Bei dir werden (warum auch immer) keine Mails in den Tracking Logs gefunden, im Abschnitt der Durschnittswerte wird dann versucht durch 0 teilen… Doof. Was hast du für ein Intervall in der Settings.ini eingetragen und welche Exchange Version nutzt du?
        Gruß, Frank

        Antworten
    157. Hallo Frank,

      vielen Dank für die Mühe, das Script ist wunderbar. Ein paar Probleme hatte ich in unserer Umgebung allerdings mit einem Exchange 2010 Edge-Server, der in der DMZ steht, z.B nicht per WMI erreichbar ist und dann dazu geführt hat, dass viele Module einen Fehler gebracht haben und gar keine Ergebnisse für die restlichen Server geliefert haben. Wenn es möglich wäre, zumindest die Ergebnisse der fehlerfreien Server in den Report aufzunehmen wäre das sicher nicht falsch.

      Außerdem ist mir aufgefallen, dass der spacereport.ps1 die Systemlaufwerke mit auflistet. Das Script filtert dabei nach $_.Label -notmatch „System-reserviert“ – das klappt natürlich nicht bei englischem OS, was aber bei einigen Servern der Fall sein dürfte. Ich habe mir einfach beholfen, indem ich das geändert habe in $_.Name -notlike „\\?\*“ – etwas in der Art wäre vielleicht in kommenden Versionen sinnvoll. Evtl. gibt es auch in anderen Modulen noch ähnliche Bereiche, wo die Sprache des Betriebssystems einen Einfluss hat. Ich gehe nicht davon aus, dass unsere die einzige Umgebung ist, in der Server oft auf Englisch installiert sind…

      Antworten
      • Hi Flo,

        danke für deine Hinweise. Edge Server filtere ich in der kommenden Version 3.0 entsprechend aus. Version 3 wird auch die Sprachprobleme beheben :-)

        Schönes Wochenende, Frank

        Antworten
    158. Soeben von 2.3 auf 2.6 aktualisiert. Läuft wie immer 1A – TOP!
      Wäre es möglich zukünftig ein Paramater für DNS-Server für die Module mxreport.ps1 und rblreport.ps1 einzuführen. Bei uns im Netzwerk dürfen nur bestimmte Server Server DNS-Anfragen ins Internet schicken. Der Rest ist auf die DCs angewiesen.

      Antworten
    159. Hallo Hab zwei Fehler beim ausführen der Version 2.6

      mailreport.ps1
      Es wurde versucht, durch 0 (null) zu teilen.

      dgreport.ps1
      Das Argument kann nicht an den Parameter „ReferenceObject“ gebunden werden, da es NULL ist.
      Fehler: PowerShell ActiveDirectory Modul nicht gefunden

      Eventuell fehlendes RSAT auf dem 2012 R2-Server?

      Antworten
    160. Hallo Frank,

      vielen Dank für das Update. Leider funktioniert bei uns das Office 365 Modul nicht so ganz. Folgender Fehler wird im Error Log ausgegeben:

      -Start– 09/16/2015 14:53:18 ———————————————————————————-
      o365report.ps1
      Das Argument für den Parameter „Session“ kann nicht überprüft werden. Das Argument ist NULL. Geben Sie einen gültigen Wert für das Argument an, und führen Sie den Befehl erneut aus.
      -Ende— 09/16/2015 14:58:37 ———————————————————————————-

      Weißt du, woran das liegen könnte?
      Vielen Dank im Voraus!

      Gruß Sascha

      Antworten
    161. Hallo Frank,
      herzlichen Dank für Deine liebevolle Arbeit und den wundervollen Report.
      Auf einem Exchange Server haben wir auch private Accounts. Den Mailreport finde ich generell gut, allerding würde ich gerne die Top 10 Listen deaktivieren. Reicht es im mailreport.ps1 die Zeilen 100-180 (zwischen $topsenders und #Durchschnitt in V2.5) auszukommentieren?
      Danke und Gruß
      Nathan

      Antworten
    162. Hallo Frank,
      man muss in der .ini in deinem Beispiel nur „D:\“ angeben, nicht „D:\HTML“. Scheinbar wird bei der Verarbeitung dann der „lastreport.html“ im Unterordner „HTML\Reporter“ und nicht „\Reporter“ abgelegt.

      Läuft. Juhuuu.

      Antworten
    163. Hallo Frank,

      im März hatte ich angefragt wg. „als HTML speichern“. Du antwortest darauf dies wäre schon implementiert.

      Habe in meiner settings.ini nun einen Pfad angegeben wo der Report landen soll (den Exchange Monitor setze ich nicht ein, daher eben einfach irgend einen Pfad nehmen?). Es gibt aber diese Fehlermeldung:

      http://i.imgur.com/vrjLHqL.png

      Was könnte das Problem sein? Kurz bevor der Report verschickt wird per Mail, sind die ganzen Dateien doch im TEMP-Ordner, da dachte ich mir, bevor der TEMP-Ordner gelöscht wird kopiere ich einfach den report.html weg… Aber das einbetten der Bilder macht hierbei Probleme.

      Was ist denn nun der einfachste Weg das, was ich per Mail bekomme, als Datei zu haben?

      Antworten
      • Hi Tim,
        jep, die Funktion ist schon seit längerem implementiert (mittlerweile auch als PDF-Report). im Handbuch steht auch beschrieben was du dazu tun musst („Report als Website im IIS“). Wenn du nur die HTML-Datei haben willst, musst du keinen IIS drum herum schrauben. Ich machs kurz: Leg ein Verzeichnis an: D:\HTML\Reporter (ja der Unterordner „Reporter“ muss vorhanden sein) und gib nur folgenden Pfad in der Settings.ini an: d:\HTML. Zusätzlich „IntegrateInExchangeMonitor=ja“. Das ist alles. Oder noch einfacher: „AddPDFFileToMail=ja“, das hängt dir an die Mail den Report auch als PDF-Datei an. Dazu aber bitte ins Handbuch schauen: WKHTMLtoPDF Download und Installation

        Gruss, Frank

        Antworten
    164. Hallo Frank,

      super geniales Tool! Danke vielmals!!
      Ein Frage wie kann ich in der Settings.ini mehrere Email Adressen hinterlegen zu empfangen ; funktioniert nicht, da wird dann gar nichts gesendet.

      Folgende Fehler erhalte ich noch im ErrorLog:
      serverinfo.ps1
      In der Endpunktzuordnung sind keine weiteren Endpunkte verfügbar
      oabreport.ps1
      Ausnahme beim Aufrufen von „DataBindXY“ mit 2 Argument(en): „Der Wert darf nicht NULL sein.
      Parametername: yValues“
      updatereport.ps1
      Die Verbindung mit dem Remoteserver kann nicht hergestellt werden.

      Viele Grüße
      Michael

      Antworten
    165. Hallo Frank,

      es freut mich, dass das Skript weiterentwickelt wird! Kannst Du vielleicht die Mails aus dem Monitoring Skript aus der Statistik heraus rechnen?

      Vielen Dank
      LG Chris

      Antworten
    166. Hallo Frank,

      ok, dann ist halt so. Ist ja kein Beinbruch.
      Andere Frage: Woran kann es liegen, dass die Anzahl der Outlook Clients im Report nicht passt? Die schwankt und ist zumeist zu niedrig.

      Nutze den Report seit Version 2.0. Es müssten so 14 sein, sind aber max 10, aktuell eher 4, die gemeldet werden.
      Exchange 2013 ist (noch) CU5.

      Antworten
      • Hi Stefan,

        die Anzahl der Outlook Clients wird aus den IIS Logs der CAS Server ermittelt. Dabei werden nur die Logs der letzten 2 Tage ausgewertet. Daher kann es durchaus sein, dass nicht alle Clients ermittelt werden können. Wenn du zum Beispiel den Report am Montag erstellst, dann werden die IIS Logs von Samstag und Sonntag ausgewertet, da haben sich bei dir vielleicht einfach die anderen Clients nicht verbunden. Die Zahl ist also immer etwas „unscharf“. Hintergrund ist, die IIS Logs sind in größeren Umgebungen meist recht groß, es dauert ewig die Logs einzulesen und auszuwerten. Bei 14 Clients kannst du das Script aber anpassen, da du wahrscheinlich nicht die Masse an Logs haben wirst. Schau mal in der clientinfo.ps1 in Zeile 18 findest du ….AddDays(-2)…, das kannst du abändern in ….AddDays(-7)…., dann werden die letzten 7 Tage der Logs ausgewertet.

        Gruss, Frank

        Antworten
    167. Hallo Frank,
      so schaut die Fehlermeldung aus, vielleicht hilft sie ja was:
      Verarbeite Modul ‚vmwarereport.ps1‘:get-vm : 29.07.2015 09:40:25 Get-VM VM with name *server*was not
      ound using the specified filter(s).

      In O:\Exchange_Reporter_2.4\Exchange Reporter 2.4\modules\vmwarereport.ps1:38 Zeichen:8
      + $vm = get-vm $server
      + ~~~~~~~~~~~~~~
      + CategoryInfo : ObjectNotFound: (:) [Get-VM], VimException
      + FullyQualifiedErrorId : Core_OutputHelper_WriteNotFoundError,VMware.VimAutomation.ViCore.Cmdlets.Commands.GetVM

      Antworten
      • Hi,

        sieht aus als könnte er die entsprechende VM mit dem Namen aus der Settings.ini nicht finden. Kannst du via PowerCLI prüfen, ob du die entsprechende VM aufrufen kannst?

        get-vm „namederVM“

        Gruss, Frank

        Antworten
    168. Hallo,
      erst einmal vielen Dank für das super Tool.
      es funktioniert auch soweit ganz gut.
      Ich bekomme leider noch einen Fehler beim Aufruf des vmwarereport
      vmwarereport.ps1
      Das Argument für den Parameter „VM“ kann nicht überprüft werden. Das Argument ist NULL oder leer. Geben Sie ein Argument an, das nicht NULL oder leer ist, und führen Sie den Befehl erneut aus.

      in der ini ist alles gesetzt
      vCenterServer=*server“
      vCenterUser=*User*
      vCenterPassword=*Password*
      VM=*esxhost*

      Was habe ich vergessen???

      Antworten
    169. Hallo Frank,

      bekomme mit Version 2.4 und Exchange 2013 CU9 immer im Exchange Management log die Meldung:

      Cmdlet fehlgeschlagen. Cmdlet Get-InboxRule, Parameter -ErrorAction „SilentlyContinue“ -WarningAction „SilentlyContinue“ -Identity
      ….
      sollte das nicht behoben sein?

      Sonst Super Tools von Dir und sehr gute Guides!

      Gruß
      Stefan

      Antworten
      • Hallo Stefan,

        das bekomme ich leider nicht behoben, Hintergrund: Wenn ein Postfach keine Regeln hat, wird die Meldung generiert. Aber irgendwie muss man ja feststellen ob ein Postfach Regeln hat… :-)

        Danke und Gruss,
        Frank

        Antworten
    170. Hi Frank

      Leider bleibt das Logfile leer:
      -Start– 07/20/2015 08:30:37 ———————————————————————————-

      Im Task Sheduler habe ich bei Last Run Result: (0x41306)

      Task Scheduler launch task „\Exchange-Reporter (www.FrankysWeb.de)“ , instance „powershell.exe“ with process ID 8992.

      und 3 Tage später wird der Task gestoppt:

      Task Scheduler terminated „{544f782f-de4b-41bd-a99a-dc352dd27b0c}“ instance of the „\Exchange-Reporter (www.FrankysWeb.de)“ task due to exceeding the time allocated for execution, as configured in the task definition. User Action: Increase the configured task timeout or investigate external reasons for the delay.

      Gruss
      Patrick

      Antworten
    171. Hi Frank

      Ich habe immer noch Probleme mit dem Task auf einem 2008 R2 Server. Egal ob ich den Task selber mache oder mit Deinem Skript. Ich habe die gleichen Probleme wie ein User vor mir (siehe unten). Wenn ich das Skript über die Shell ausführe funktioniert es und ich erhalte eine Mail. Beim Task wird der Temp-Ordner erstellt danach bleibt der Task auf „Running“.

      System: Server 2008 R2 mit Exchange 2010

      Ältere Meldung eines anderen Users:
      Habe das Problem, daß ich „New-ExchangeReport.ps1″ auf der Shell zwar problemlos ausführen kann, aber die Aufgabenplanung des 2008 R2-Servers verweigert den Dienst.
      Der Benutzer, mit dem die Aufgabe ausgeführt werden soll, ist hat alle erforderlichen Rechte und auch zusätzlich noch die Berechtigung zum Anmelden als Dienst.
      Vermeintlich wird die Aufgabe auch ausgeführt, aber es kommt nie zu einer Ausgabe eines Mails mit dem Report, geschweige denn sehe ich im Taskmanager irgendwelche Aktivitäten.
      Zudem scheint die Aufgabe permanent im Status „Wird ausgeführt“ zu stehen ohne abgeschlossen werden zu können.
      Was könnte die Ursache für dieses Verhalten sein?

      Antworten
    172. Hallo,

      Ich habe es, glaube ich, gefunden:
      Zeile 15 und 17 im Script „pfreports.ps1“:
      Originalscript:
      if ($lastbackup)
      {
      $pflastbackup = get-date $lastbackup -UFormat „%d.%m.%Y %R“
      }

      Nach Änderungen meiner Seits:
      if ($pflastbackup)
      {
      $pflastbackup = get-date $pflastbackup -UFormat „%d.%m.%Y %R“
      }

      Ich habe alle „$lastbackup“ mit „$pflastbackup“ ersetzt. Ab da hats funktioniert.
      Bin mir nur nicht sicher ob richtig.

      Grüße
      Michael

      Antworten
    173. Hallo zusammen,

      1.
      Sehr sehr cooles Script. Danke

      2.
      Ich bekomme im Fehlerlog immer diese Meldung:
      pfreport.ps1
      Cannot bind parameter ‚Date‘. Cannot convert value „29.06.2015 23:26“ to type „System.DateTime“. Error: „String was not recognized as a valid DateTime.“

      Muss ich da was Ändern?

      Danke und Grüße
      Michael

      Antworten
    174. Hallo Frank

      Die Erweiterungen der Version 2.3 find ich spitze und wieder mal eine echte Bereicherung! Leider hab ich aber auch ein paar Kleinigkeiten gefunden, die man nachbessern könnte: beim rightsreport werden die Eigenberechtigungen nur ausgefiltert, wenn man eine deutsche Serverinstallation hat. (rightsreport.ps1, Zeile 9: zusätzlich: -and $_.user -notmatch „Self“)
      Kann es ausserdem sein, dass SendOnBehalf und SendAs nicht aufgeführt werden?

      Irgendwo in der clientinfo muss eine unsaubere Formatierung sein. Ich habe eine Ausführungreihenfolge der Module, die von Deiner abweicht; bei der Reihenfolge clientinfo, oabreport, easreport, dgreport, rightsreport, pfreport gibt’s eine unschöne Tabellenverschachtelung z.T. ohne Daten.

      Liebe Grüsse,
      Paul

      Antworten
      • Hi Paul,

        vielen Dank für deine Hilfe. An englische Exchange Server habe ich nicht gedacht, habe es wie du empfohlen hast angepasst. Du hast Recht, in der clientinfo.ps1 fehlt hinter Zeile 92 eine Zeile mit „$clientinfo += End-HTMLTable“.
        Die Rechte für Sendas und SendonBehalf werden noch nicht erfasst, das kommt in der nächsten Version.

        Gruss, Frank

        Antworten
    175. Hallo Frank

      danke für die Info. Freue mich schon wenn das geht. Habe leider sehr viele Systeme mit Mountpoints
      Das Skript ist wirklich Top. Vielen Dank für die Arbeit die du dir damit machst.

      Grüße
      Sebastian

      Antworten
    176. Hallo Frank

      danke für die schnelle Antwort. Ich habe „enable-psremoting“ auf alle benötigten Servern ausgeführt und meinen Benutzer temporär sogar in die Gruppe der Domain Admins genommen. Exchange Orga Admin ist er bereits drin. Dennoch habe ich diese Fehler. Bei dem Exchange kommt das wie schon gesagt nur bei Mountpoints wo es keine Laufwerksbuchstaben gibt. Die anderen Laufwerke, auch wenn sie auf der gleichen NetApp liegen, aber halt z.B. per ISCSI mit Laufwerksbuchstaben angebunden sind, gehen.
      Hast du noch einen Tip?

      Grüße
      Sebastian

      Antworten
    177. Hallo Frank

      super Skript. Vielen Dank für deine Arbeit. Ich habe bei 2 Modulen noch einen Fehler, wo ich nicht ganz weiter komme. Vielleicht hast du eine Idee.

      Einmal beim Modul „spacereport“. Hier bekomme ich folgenden Fehler bei Mountpoints.
      Get-WmiObject : Access denied
      At C:\Exchange Tools\Exchange Reporter\modules\spacereport.ps1:44 char:14
      + $volumes = Get-WmiObject win32_logicaldisk -computername $computername| where …
      + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      + CategoryInfo : InvalidOperation: (:) [Get-WmiObject], ManagementException
      + FullyQualifiedErrorId : GetWMIManagementException,Microsoft.PowerShell.Commands.GetWmiObjectCommand

      Und bei dem Modul „addsinfo“ bekomme ich folgenden Fehler:
      get-wmiobject : Access denied
      At C:\Exchange Tools\Exchange Reporter\modules\addsinfo.ps1:103 char:17
      + $computerOS = get-wmiobject Win32_OperatingSystem -ComputerName $computername
      + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      + CategoryInfo : InvalidOperation: (:) [Get-WmiObject], ManagementException
      + FullyQualifiedErrorId : GetWMIManagementException,Microsoft.PowerShell.Commands.GetWmiObjectCommand

      Danke schon mal
      Sebastian

      Antworten
      • Hallo Sebastian,

        danke für das Lob. Die Fehler kannst du beseitigen in dem du auf den Exchange Servern und den Domain Controllern „enable-psremoting“ ausführst.

        Gruss, Frank

        PS: Der Benutzer der den Report ausführt benötigt die Rechte den Server per WMI abzufragen.

        Antworten
    178. Hallo Frank,

      habe gerade die neue Version 2.2 installiert.
      Läuft alles super, wie bisher, jedoch bekomme ich noch folgende Fehlermeldungen:

      -Start– 06/01/2015 10:03:50 ———————————————————————————-
      oabreport.ps1
      Ausnahme beim Aufrufen von „DataBindXY“ mit 2 Argument(en): „Der Wert darf nicht NULL sein.
      Parametername: yValues“
      careport.ps1
      Die Benennung „get-ca“ 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.
      -Ende— 06/01/2015 10:05:21 ———————————————————————————-

      Kann es sein, dass man nach der Installation der PSPKI für den CAReport den Server neustarten muss? Das habe ich noch nicht getan, daher vielleicht der Fehler.
      Der OABReport funktioniert schon seit Version 2.1 nicht mehr bei uns, in 2.0 hat er noch funktioniert :(

      Gruß,
      Sascha

      Antworten
    179. Sorry für den Spam!
      Hab den Fehler gefunden, irgendwie hat das Script vergessen das TEMP Verzeichnis zu löschen, dann bricht das auch direkt am Start ab.
      Wenn man dieses löscht dann rennt das Script auch einwandfrei durch!
      Grüße
      FETT

      Antworten
    180. Hallo,
      bei mir läuft das Script wenn ich es manuell starte.
      Aber wenn ich den geplanten Task mache, sagt er zwar abgeschlossen aber irgenwie kommt keine Mail an… Ich habe keine Ahnung was ich da tun kann!?
      Enable-PSRemoting habe ich gemacht….
      Griasle
      FETT

      Antworten
    181. Top Report. Vielen Dank.
      Ist es möglich evtl. eine LAST Logon einzubauen. z.b Letzte Anmeldung per Outlook oder Logon per User. Damit können wir verwaiste Postfächer schneller aufspüren.
      Lg Thomas

      Antworten
    182. Hallo Frank,

      funktioniert super :-)
      Gibt es auch die Möglichkeit, ohne allzu großen Aufwand die Top10 Sender nach der gesendeten Datenmenge aufzulisten?

      Antworten
    183. Hallo Frank,

      ein geniales Tool, herzlichen Dank. Eine Frage habe ich allerdings noch – an welcher Stelle muss ich etwas drehen damit mir alle Postfächer mit allen Umleitungen angezeigt werden ? In der Regel bekomme ich eine Tabelle mit max 10 Einträgen – deutlich zu wenig.

      Danke,

      Ingo

      Antworten
    184. Hi Frank und danke für die flotte Antwort!

      Leider bekomme ich weiterhin die RPC Meldung. Ich werde mir das heute Abend nochmal zu Gemühte führen :)

      Die neue Funktion mit dem Reporter im Browser hat bei mir Fehler beim überschreiben der Daten geworfen: Report an Exchange Monitor übergeben:copy-item : Cannot overwrite the item

      New-ExchangeReport.ps1:318 char:5

      Beste Grüße
      n3ro

      Antworten
    185. Funktioniert super!
      Allerdings bekomme ich immer einen RPC Fehler:
      ####################
      Verarbeite Modul ’spacereport.ps1′:Get-WmiObject : The RPC server is unavailable. (Exception from HRESULT: 0x800706BA)
      At C:\scripts\reporter\modules\spacereport.ps1:44 char:14
      + $volumes = Get-WmiObject win32_logicaldisk -computername $computername| where …
      + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      + CategoryInfo : InvalidOperation: (:) [Get-WmiObject], COMException
      + FullyQualifiedErrorId : GetWMICOMException,Microsoft.PowerShell.Commands.GetWmiObjectCommand
      ######################
      Weiß jemand wo ich ansetzen muss?

      Beste Grüße,
      n3ro

      Antworten
    186. Hallo Frank,
      dabei hat es sich bereits um den kompletten Inhalt der ErrorLog.txt aus dem Reporter_2.1 Root Verzeichnis gehandelt. Mehr steht da leider nicht drinnen oder gibt es noch eine andere Log Datei, die ich bisher übersehe?

      -Start– 04/02/2015 12:27:32 ———————————————————————————-
      mbxreport.ps1
      Exception calling „op_Subtraction“ with „2“ argument(s): „Arithmetic operation resulted in an overflow.“
      -Ende— 04/02/2015 13:02:51 ———————————————————————————-

      Wohin müsste ich eigentlich die Datei schicken, ich habe nur die Adresse webmaster at frankysweb punkt de gefunden im Impressum?

      Gruß, Daniel

      Antworten
    187. Hallo Frank,

      das Skript ist wirklich Klasse und kleinere Korrekturen (zum Beispiel ausschließen der Ex2003 Server) konnte ich ohne Probleme vornehmen. Ich habe jetzt nur noch bei dem Modul mbxreport.ps1 folgenden Fehler:

      Exception calling „op_Subtraction“ with „2“ argument(s): „Arithmetic operation resulted in an overflow.“

      Noch bin ich nicht dahinter gekommen, wie ich diesen beheben könnte. Ist dieser Fehler in diesem Modul schon bekannt bzw. bei jemand anderen schon mal vorgekommen?

      Gruß
      Daniel

      Antworten
    188. Super Tool! Mich wundert allerdings eines: Führe ich das Tool auf einen Exchange 2013 aus bekomme ich keine Angaben über die Exchange 2010 DAG. Das EAC „sieht“ die DAG aber sehr wohl.
      Feature Request hätte ich auch: Speicherung der HTML Datei direkt auf einem Laufwerk oder aus der Mail heraus.

      Antworten
      • Hallo Bernd,
        danke für den Hinweis, an mehrere DAGs habe ich tatsächlich nicht gedacht. Ich werde das in der nächsten Version einbauen.
        Dein Feature Request ist übrigens bereits erfüllt, der Report lässt sich bereits als HTML Datei speichern. In der Settings.ini kannst du beispielsweise folgendes eintragen:

        IntegrateInExchangeMonitor=ja
        ExchangeMonitorInstallPath=c:\ExchangeReport

        Den Ordner „c:\ExhangeReport“ musst du vorher anlegen und den Unterordner „Report“ erstellen. Im Handbuch (welches zugegebener Weise noch nicht ideal ist) steht es unter „Report als Website im IIS“ beschrieben.

        Gruß,
        Frank

        Antworten
    189. Alle vier Datenbanken haben Postfächer. Das Problem ist schon beim Reporter 2.0 aufgetaucht nachdem wir das CU6 eingespielt haben. Vielleicht hielt das bei der Suche.

      Antworten
    190. Gerade den neuen Reporter (2.1) installiert und mehrere Fehler. Hier mal der erste:
      Verarbeite Modul ‚mbxreport.ps1‘:Die Argumenttransformation für den Parameter „Database“ kann nicht verarbeitet werden.
      Der Wert „XXX-DB02“ kann nicht in den Typ „Microsoft.Exchange.Configuration.Tasks.DatabaseIdParameter“ konvertiert werden. Fehler: „Die Hashtabelle kann nicht in ein Objekt folgenden Typs konvertiert werden:
      „Microsoft.Exchange.Configuration.Tasks.DatabaseIdParameter“. Eine Hashtabelle-in-Objekt-Konvertierung wird im eingeschränkten Sprachmodus oder in einem „Data“-Abschnitt nicht unterstützt.“
      + CategoryInfo : InvalidData: (:) [Get-Mailbox], ParameterBindin…mationException
      + FullyQualifiedErrorId : ParameterArgumentTransformationError,Get-Mailbox
      + PSComputerName : e2k13-admin.XXX.local

      Hast Du eine Idee was das sein kann? Wenn Du alle Fehler haben möchtest kann ich die auch per Mail schicken

      Antworten
    191. Scheint an diesem Aufruf zu liegen:

      DEBUG: 126+ >>>> $eventgroups = Get-WinEvent -ComputerName $eventsrv -FilterHashtable
      @{Logname=“*replication*“;StartTime = [datetime]$start;level=2,3} -ea 0| select message,id,timecreated | Group-Object
      id
      DEBUG: 264+ if ( >>>> $errorlog -match „ja“)
      DEBUG: 269+ >>>> write-host „`t`t`tFehler“ -foregroundcolor red
      Fehler

      Antworten
    192. Hallo Frank,
      im Modul ADDSINFO bekommt ich die Fehlermeldung:
      „In der Endpunktzuordnung sind keine weiteren Endpunkte verfügbar“
      Server2012+Exch2013CU7

      Antworten
      • An der Stelle prüft das Script nur, ob die Include-functions.ps1 unter dem angegebenen Pfad (InstallPath) findet, entweder passt der Pfad also bei dir nicht, oder die Datei ist bei dir nicht verfügbar.

        Antworten
    193. Hallo,

      wenn ich versuche die Version 2.1 zu installiert bricht die sofort mit folgenden Fehler ab:

      Lade Funktionen aus Include-Functions.ps1: Fehler (nicht gefunden)

      Die Settings in der ini Datei habe ich geprüft und da passt alles.

      Antworten
    194. Hallo Frank,

      super Tool, danke dafür!

      Ich habe allerdings das Problem, dass der Reporter nur 20 Postfächer unter „Anzahl Postfächer“ anzeigt. Das sollten aber ~190 sein. Die „Postfach Übersicht“ ist entsprechend auch eher nicht repräsentativ.

      Hat jemand eine Idee?

      Gruß

      Antworten
      • Hi,
        danke für das Lob. Es werden nur die 20 größten Postfächer gezeigt. Der Wert lässt sich aber in der Datei „mbxreport.ps1“ in Zeile 6 anpassen: „… | select -First 20″ zeigt die 20 größten Postfächer. Wenn du das “ | select -First 20″ entfernst, werden alle Postfächer angezeigt, bei vielen Postfächern wird der Bericht dann natürlich relativ lang…

        Gruß, Frank

        Antworten
    195. Hallo Frank,

      super Teil!

      Was wäre denn die einfachste Möglichkeit den Bericht nicht nur wöchentlich per Mail zu bekommen, sondern diesen auch in HTML-Form auf einem Netzlaufwerk abzulegen?

      MfG
      Tim

      Antworten
    196. Hallo Frank,

      ich bin gerade auf deinen Exchange Reporter gestoßen.
      Ich setze noch Server 2008 R2 + Exchange 2010.
      In deiner Beschreibung steht einmal es ist Kompatibel und ein anders mal nicht.
      Ist es kompatibel?

      Hab es gerade mal versucht, wenn ich die „.\New-ExchangeReport.ps1“ in der Powershell v4 ausführe bekomm ich die Fehlermeldung „Lade Funktionen aus Include-Functions.ps1: Fehler“
      Wenn ich das ganze als Trigger auswähle passiert leider auch nichts.
      kannst du zu dem Fehler was sagen? Würde das tool gerne Einsetzten

      Vielen Dank
      Gruß
      Benno

      Antworten
    197. Hallo,
      die Fehler mit dem Internet habe ich immer noch nicht gelöst und seit dem Einspielen des Exchange2013CU7 sind unsere Mailstatistiken leer (0 gesendete, 0 empfangene, etc. Auch die Top 10 Sender/Empfänger werden nicht mehr angezeigt. Hat sonst noch jemand das Problem?

      VG
      Andreas

      Antworten
    198. Man könnte aus den Hashtables in Zeile 78 & 79 in mailreport.ps1, z.B „Ordered Hashtables“ machen.
      Also:
      $daystotalmailvol +=[ordered]@{$day=$daytotalreceivedvol}
      $daystotalmailcount +=[ordered]@{$day=$daytotalreceivedcount}

      Dann sind die Tage wieder in der richtigen Reihenfolge.
      Gruß
      Sven

      PS: Super Scripts, man sieht, wie viel Arbeit darin steckt!

      Antworten
      • Danke, wird in der nächsten Version eingebaut! Ich hatte vorgesehen den Hashtable zu sortieren:

        $daystotalmailcount = $daystotalmailcount.GetEnumerator() | sort -Property name
        $daystotalmailvol = $daystotalmailvol.GetEnumerator() | sort -Property Name

        Aber [ordered] find ich besser :-)

        Danke dafür.
        Gruß, Frank

        Antworten
    199. Erstmal ein ganz grosses Lob für den Exchange Reporter.
      Ein kleines Problem habe ich da noch.
      Erstelle ich z.B. einen Report über 7 Tage, wir die Sortierung beider Diagramme Volumen und Anzahl unter „Übersicht Mails je Tag“ falsch dargestellt (die Tagesreihenfolge stimmt nicht, ist völlig durcheinander).
      Momentan habe ich folgende Tagesdarstellung:
      18.01.15 17.01.15 20.01.15 16.01.15 19.01.15 21.01.15 22.01.15
      Leider bekomme ich es nicht hin, die Tage korrekt darzustellen.
      Könnten Sie mir helfen, was ich im Script „mailreport.ps1“ genau und wo anpassen müsste?
      Habe schon versucht mit einem SORT. Bekomme es leider nicht hin.
      Wäre wirklich froh, wenn Sie mir helfen könnten.
      Vielen Dank.

      Antworten
    200. Hallo Frank,

      vielen Dank für das echt hilfreiche Tool!
      Wir benutzen den Reporter schon recht lange und sind natürlich begeistert von der neuen Version 2.0.
      Jedoch hat die neue Version auch noch ein paar kleine Fehler, die mir aufgefallen sind.
      1. In unseren letzten Reports werden bei den Client-Versionen bei Outlook 2010 und bei Windows Phone keine Zahlen angezeigt.
      2. Die Grafiken für die Übersicht der Mails pro Tag werden wild durcheinander angezeigt (also z.B. erster Balken = 18.01.2015, zweiter Balken 16.01.2015, dritter Balken = 17.01.2015, vierter Balken = 12.01.2015, usw.). Das macht das Lesen der Grafiken etwas schwieriger. Schön wäre vielleicht auch eine Wochentag-Beschriftung (Montag, Dienstag, …).

      Kannst du da was machen?
      Vielen Dank im Voraus!

      Gruß,
      Sascha

      Antworten
    201. Hallo Frank,
      das Tool ist wirklich Klasse. Ich hätte aber noch zwei Verbesserungsvorschläge. 1. Da man sicher nicht immer ALLE Reports erstellen lassen und auch unterschiedliche Intervalle nutzen möchte, wäre es toll, wenn es die Möglichkeit gäbe, die Reports selektiv zu starten. Hierzu habe ich mir unterschiedliche Konfigurationsdateien gebaut, die ich dann bei Bedarf in settings.ini umbenenne. Komfortabler wäre es natürlich, wenn man die zu benutzende Konfigurationsdatei im Script-Aufruf mitgeben könnte. Denkbar wäre auch die Übergabe des jeweiligen Moduls sowie des Intervalls als Parameter. 2. Ich kann das Tool leider nicht direkt auf dem Exchange-Server nutzen, da hier die Voraussetzungen nicht gegeben sind (Powershell Version), daher starte ich es von meinem Arbeitsplatz mit installierten Exchange Verwaltungs-Tools. Nicht alle Reports scheinen aber per Remoteaufruf von zu funktionieren (spacereport.ps1, dagreport.ps1, serverinfo.ps1), da offensichtlich lokale Ressourcen abgefragt werden. Es wäre schön, wenn man das noch ändern könnte.

      Antworten
      • Hallo Chris,
        erst einmal vielen Dank für das Lob. Ich werde deinen Vorschlag mit einer selektiven Settings.ini in die nächste Version mit einbauen. Alle Module lassen sich auch von einem anderen System ausführen. Die Scripte nutzen WMI-Abfragen um an die Daten zu kommen, daher muss WMI aktiviert sein (enable-psremoting) und der Benutzer muss die entsprechenden Rechte haben. Ich selbst lasse das Script ebenfalls immer von einem anderen System aus laufen.

        Gruss,
        Frank

        Antworten
    202. Hallo
      super Sache Frank Danke!
      Version 2.0 läuft mit PowerShell 4.0 auch unter 2008R2 mit EX2010.

      Kann ich den Bericht an 2 Empfänger zustellen, habe email mit , ; und Space getestet?

      Gruss Erich

      Antworten
    203. Hallo
      Ich erhalte immer diese Fehler in der Datei errorlog.txt
      -Start– 12/12/2014 07:00:05 ———————————————————————————-
      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.
      -Ende— 12/12/2014 07:10:27

      Antworten
    204. Hallo Frank,

      tolles Tool dieser Exchange Reporter. Leider kann ich es (noch?) nicht insetzen. Bei mir rennt Windows Server 2012 (leider ohne R2) und Exchange 2013. Gibt es Hoffnung das es irgendwann eine Version auch dafür gibt.

      LG
      wynni

      Antworten
      • Hallo,
        ich habe es zwar nicht getestet, aber es sollte auch alles mit Server 2012 funktionieren. PowerShell 4 muss installiert sein, falls das noch nicht der Fall ist.

        Gruss, Frank

        Antworten
    205. Bekomme in der Version 1.4 folgende Error Meldungen:

      ____________________________________________________________
      redirectreport.ps1
      Der Vorgang ist aufgrund des aktuellen Zustands des Objekts ungültig.
      easreport.ps1
      Der Vorgang ist aufgrund des aktuellen Zustands des Objekts ungültig.
      ____________________________________________________________

      Hat da jemand eine Idee?

      Antworten
    206. Hallo,

      der Exchane Repoter funktioniert wirklich super.
      Ist es geplant, oder kann es eingebaut werden, die Public Folder Database mit zu reporten?

      MfG
      Marco Würden

      Antworten
    207. Nett, nur wird in der Gesamtstatistik bei gesendeten und empfangen Emails in MB immer die gleiche grösse berechnet, siehe auch in deinem Beispiel Anzahl der Empfangen Mails in MB is genauso gross wie die gesendeten :)

      Antworten
    208. Nachtrag: der Fehler liegt im mailreport.ps1 Zeile 34. Dort muss es heissen
      $cells=@(„$totalsendcount“,“$totalreceivedcount“,“$totalsendvol“,“$totalreceivedvol“)
      anstatt
      $cells=@(„$totalsendcount“,“$totalreceivedcount“,“$totalreceivedvol“,“$totalreceivedvol“)

      Freundliche Grüße,
      Paul Hahn

      Antworten
    209. Hallo.

      Vielen Dank für den ExchangeReport, der ist wirklich hilfreich!
      Einen Fehler scheint es aber noch zu geben: In der Tabelle der E-Mail Statistik sind die Werte „Volumen Gesendet (MB)“ und „Volumen Empfangen (MB)“ immer identisch; dem entsprechenden Diagram kann man bei „Volumen Gesendet (MB)“ jedoch einen abweichenden Wert entnehmen.

      Freundliche Grüße,
      Paul Hahn

      Antworten
    210. Hi,
      Super der Ex.Report, ein kleiner Fehler noch:
      Gruss Andi
      -Start– 06/27/2014 16:21:29 ———————————————————————————-
      mbxreport.ps1
      Der Wert „49.95 GB (53,634,662,400 bytes)“ vom Typ „Microsoft.Exchange.Data.Unlimited`1[[Microsoft.Exchange.Data.ByteQuantifiedSize, Microsoft.Exchange.Data, Version=15.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]“ kann nicht in den Typ „System.Int64“ konvertiert werden.
      -Ende— 06/27/2014 16:22:54 ———————————————————————————-

      Antworten
    211. Hallo Frank,
      folgender Fehler tritt jetzt noch auf.
      mbxreport.ps1
      Der Wert „2.451 GB (2,631,925,760 bytes)“ vom Typ „Microsoft.Exchange.Data.Unlimited`1[[Microsoft.Exchange.Data.ByteQuantifiedSize, Microsoft.Exchange.Data, Version=15.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]“ kann nicht in den Typ „System.Int64“ konvertiert werden.

      Vielen Dank für deine Mühe
      Gruß Björn

      Antworten
    212. Hi,
      echt tolles Tool. Danke dafür.
      ich bekomme die gleichen Fehlermeldungen wie Michael.
      mbxreport.ps1
      Ausnahme beim Aufrufen von „op_Subtraction“ mit 2 Argument(en): „Die arithmetische Operation hat einen Überlauf verursacht.“

      Exchange 2013 CU5 auf Windows 2012 (3 MBX Server , 2 CAS Server)
      Ich kann gerne testen bei mir.

      Gruß Bjoern

      Antworten
    213. Hallo Frank!

      Habe gerade die neue Version eingespielt! Sieht aus als würde nun alles funktionieren :) Vielen Dank dafür!!!
      Habe im ErrorLog nur folgende Meldung:
      -Start– 06/20/2014 07:24:14 ———————————————————————————-
      mbxreport.ps1
      Exception calling „op_Subtraction“ with „2“ argument(s): „Arithmetic operation resulted in an overflow.“
      updatereport.ps1
      The response content cannot be parsed because the Internet Explorer engine is not available, or Internet Explorer’s first-launch configuration is not complete. Specify the UseBasicParsing parameter and try again.
      -Ende— 06/20/2014 07:24:35 ———————————————————————————-

      Eventuell hilft es Ihnen ;) bei mir scheint jedenfalls alles zu funktionieren.

      Liebe Grüße,
      Michael

      Antworten
    214. Super Tool!
      Habe leider nur ein Problem, der TEMP Folder wird angelegt. Die Reports sind enthalten. Leider erhalte ich aber keine Mail :(

      Bitte um Hilfe. Danke :)

      Antworten
    215. Noch zwei kleine Bugs:
      Der Updatebericht zeigt auch die bereits installierten Updates an und der Umleitungs-Bericht zeigt nur die Regeln vom Administrator / dem User unter dem der Report erstellt wird.

      Antworten
    216. Danke!!!!
      Läuft perfekt! Ich habe des Reporter für Exchange 2013 schon vermisst, nachdem ich migriert hatte und der Ex2010 Reporter nicht mehr lief.
      Alex

      Antworten

    Schreibe einen Kommentar