Exchange Meeting Room Statistics

This script uses Exchange Web Services to connect to one or more meeting rooms and gather statistics regarding their usage between to specific dates.

4.5 Star
7,177 times
Add to favorites
E-mail Twitter Digg Facebook
Sign in to ask a question

  • How to report against O365
    5 Posts | Last post January 10, 2019
    • We are in a Hybrid environment.  When I ran this script I got errors because AutoDiscovery blocked a redirection attempt.  It seems AutoDiscovery is trying to direct from the local installation to the cloud.  Any ideas on how I can modify this to bypass this error?
    • Hi Mark,
      Instead of using:
      Try manually specifying the URL, such as:
      $service.Url = [System.URI] ""  
    • Hi Nuno, 
      I tried this as we have a hybrid server with O365. I'm getting stuck at binding with a permission error. I have full access to the 2 resource mailboxes and get this back: 
      please check permissions: Exception calling "Bind" with "2" argument(s): "The response rec
      eived from the service didn't contain valid XML.". Skipping
      Any ideas? 
    • I am also having this issue, Tmlittle2, were you able to resolve?
    • We are on hybrid deployment as well where all our mailboxes are on Exchange 2016.
      Initially the script did not work.
      After changing the line of code above direct to our mail server, script runs fine.
      Authenticated using an account that has delegation rights to all meeting rooms - not an exchange admin user.
  • I can't retreive data from any room mailbox error"Exception calling "FindAppointments" with "2"
    2 Posts | Last post November 08, 2018
    • It worked before, recently stopped working.
      Permissions looks ok.
      [PS] C:\scripts>Get-ExecutionPolicy -list
              Scope ExecutionPolicy
              ----- ---------------
      MachinePolicy    Unrestricted
         UserPolicy    Unrestricted
            Process    Unrestricted
        CurrentUser    Unrestricted
       LocalMachine    Unrestricted
      [PS] C:\scripts>.\Get-MeetingRoomStats.ps1 -RoomlistSMTP "" -from "09/01/2018" -To "09/30/2018" -verbose
      Security warning
      Run only scripts that you trust. While scripts from the internet can be useful, this script can potentially harm your computer. If you trust this script,
      use the Unblock-File cmdlet to allow the script to run without this warning message. Do you want to run C:\scripts\Get-MeetingRoomStats.ps1?
      [D] Do not run  [R] Run once  [S] Suspend  [?] Help (default is "D"): R
      VERBOSE: Loading EWS Managed API
      VERBOSE: Creating Exchange Service Object using AutoDiscover
      VERBOSE: Binding to the Calendar folder.
      VERBOSE: Unable to retrieve data from calendar. Please check permissions: Exception calling "FindAppointments" with "2"
      argument(s): "When making a request as an account that does not have a mailbox, you must specify the mailbox primary SMTP address for any distinguished
      folder Ids.". Skipping
      [PS] C:\scripts>
    • I fixed the issue by assigning a mailbox to ID I was using to run the command.
      For somehow reason, if I try with an admin account without an attached mailbox it won't work.
  • Roomlist
    1 Posts | Last post October 26, 2018
    • Hi Nuno
      A great script, thanks.
      I have a question; how could I use a wild card for the roomlist and/or use a text list of rooms?
  • Capacity
    1 Posts | Last post September 14, 2018
    • Hi Nuno, How can I get the capacity of the rooms
  • While i am running the script i am getting the Csv file created as blank.
    3 Posts | Last post September 10, 2018
    • I am trying to run this in exchange 2010 environment
    • Is it not working? What error do you get?
    • I am getting the blank .csv file after executing scripts.
  • date range
    1 Posts | Last post August 21, 2018
    • Great script. I really like it.  I am looking to see if there is a way to run the script on a schedule like monthly basis and produce a monthly and YTD report for a set of resources or is it restricted to a from and to timeframe.
  • Error
    1 Posts | Last post August 14, 2018
    • Hi Nuno,
      I'm getting this error: 
      Exception calling "AutodiscoverUrl" with "1" argument(s): "Autodiscover blocked a potentially insecure redirection to To 
      allow Autodiscover to follow the redirection, use the AutodiscoverUrl(string, AutodiscoverRedirectionUrlValidationCallback) overload."
      At C:\Users\ayauger\Desktop\Get-MeetingRoomStats.ps1:105 char:3
      +         $service.AutodiscoverUrl($Mailbox)
      +         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
          + FullyQualifiedErrorId : AutodiscoverLocalException
      I think it might have to do with it being for office 365, I'm still trying some other things in your Q and A section, but I haven't seen anyone else with this error.
  • getting error
    1 Posts | Last post July 25, 2018
    • RBOSE: Unable to retrieve data from calendar. Please check
      permissions: Exception calling "FindAppointments" with "2" argument(s): "The SMTP address has no mailbox associated
      with it.". Skipping
      account is on prem. my account that has full access is in the cloud. 
  • Exchange 2010 SP3 Error
    2 Posts | Last post June 27, 2018
    • Hello Nuno,
      I've tried to run your script on my work space but it gives me an error:
      "Unable to connect ***@***.com. Please check permissions: Exception calling
      "Bind" with "2" argument(s): "Exchange Server doesn't support the requested version.". Skipping ***@***.com."
      We use Exchange 2010 SP3, so I've already changed your code for it. We also don't use Exchange Online. 
      What do you think could be the source of this error? 
    • Hello Nuno,
      I'm getting the following error while working on the above script.
      PS C:\Users\hvanka\Desktop\ActiveDirectoryFiles\Scripts> .\MeetingRoomStats.ps1 -RoomListSMTP "," -From "01/01/2018" -To "05/01/2018" -Verbose
      VERBOSE: Loading EWS Managed API
      VERBOSE: EWS Managed API not installed. Please download and install the current version of the EWS Managed API from
       Exiting Script.
      Though I downloaded and installed the current version of EWS Managed API, it couldn't help me. Can you please help me to resolve this issue.
  • Error in Office 365.
    1 Posts | Last post May 04, 2018
    • Hello I am trying to run this script for all the rooms we have in office 365 and am getting the following error.  
      VERBOSE: Binding to the Calendar folder.
      VERBOSE: Unable to connect to Please check permissions: Exception calling "Bind" with "2" argument(s): "The Id property must be set.". Skipping
21 - 30 of 41 Items