Exchange Room Statistics - PowerShell Auswertung mit EWS

Hallo zusammen,

Früher oder später kommt wohl mal jeder Exchange Administrator dazu, Auswertungen zu Exchange Room Mailboxen machen zu müssen.

Ich habe mich ein bisschen umgesehen und folgende zwei Varianten gefunden

Beim ersten Script gefällt mir, dass "InPolicy" und "Out-Of-Policy" (die Bürozeiten des Raumes)berücksichtigt werden. Man muss allerdings Rechte auf dem Kalender oder Full Access auf den Räumen haben.

Beim zweiten Script gefällt mir, dass da auch noch die Top Organizer und die Top Attandees aufgelistet sind. Ausserdem kann dort die EWS Impersonation genutzt werden.

Ich habe also aus den beiden Scripts ein neues gemacht.

Prerequisits
- Exchange Online Powershell V2 (Module ExchangeOnlineManagement)
- EWS Managed API 2.2
- Account with Exchange Administrator Role
- EWS Account with Impersonation Permission

Im Script muss man die EWS Credentials eintragen

###############################################################################
#EWS Connection
###############################################################################
[string]$Mailbox = "ewservice@domain.tld"
[string]$Username = "ewservice@domain.tld"
[string]$Password = "YourSecurePassword"
[string]$EWSURL = "https://outlook.office365.com/EWS/Exchange.asmx"

Danach kann es folgendermassen aufgerufen werden

\Get-RoomStatistics.ps1 -Startdate "01/01/2020" -EndDate "12/31/2020"

Wer nicht alle Räume auswerten will, kann untenstehende Zeile entsprechend abändern

###############################################################################
#Get Room Mailboxes
###############################################################################
$Mailboxes = Get-Mailbox -ResultSize Unlimited -RecipientTypeDetails RoomMailbox

Zum Schluss wird ein CSV mit folgenden Spalten erzeugt:

StartDate = Start Datum aus dem Script (Auswertungszeitraum)
EndDate = End Datum aus dem Script (Auswertungszeitraum)
RoomEmail = Emailadresse des Raumes
DisplayName = Display Name des Raumes
Meetings = Anzahl der Meetings innerhalb vom Auswertungszeitraum
RecurringMeetings = Anzahl der wiederkehrenden Meetings (Ist ein Meeting jeden Monat so werden hier 12 Meetings angezeigt)
inPolicy = Anzahl der Stunden innerhalb der Bürozeiten des Raumes
Out-Of-Policy = Anzahl der Stunden ausserhalb der Bürozeiten des Raumes
TotalDuration = Total belegte Stunden
BookableTime = Total mögliche Stunden (Bürozeiten des Raumes)
BookedPercentage = Prozentsatz der Buchung (BookableTime/100*TotalDuration)
TopOrganizers = Die häufigsten Besprechungsorganisatoren
TopAttandees = Die häufigsten Teilnehmer

Das ganze Script könnt ihr euch auf meinem GitHub Repository ansehen: https://github.com/BohrenAn/ExchangeRoomStatistics

Grüsse
Andres Bohren