December 28, 2023

Export Microsoft 365 Room Mailbox Reports Using PowerShell

by Thiraviam

9 min read

No Comments

Room mailboxes, commonly known as meeting rooms, play a crucial role in facilitating seamless collaboration within organizations. These specialized mailboxes are dedicated to scheduling and managing meeting spaces, ensuring efficient resource allocation, and preventing scheduling conflicts. Understanding the details of such rooms through any room mailbox reports is essential for effective room mailbox management and optimized meeting scheduling.

While the Exchange admin center provides insights into room mailbox details, extracting comprehensive reports from all meeting rooms requires a more nuanced approach. This is where the Exchange Online PowerShell module comes into play.

Cmdlets like “Get-Mailbox”, “Get-CalendarProcessing” and “Get-MailboxFolderPermission” can provide details regarding the meeting rooms in M365. However, these cmdlets give details about room mailboxes, and custom filters and modifications are needed to generate a nicely formatted report. But don’t fret! We have crafted a PowerShell script that goes beyond simple cmdlets and offers a tailored solution to export detailed reports on room mailboxes.

Script Highlights:

  1. The single script can generate 8 Room mailbox reports.
  2. The script can be executed with an MFA-enabled account too.
  3. Supports certificate-based authentication (CBA).
  4. Exports report results to CSV file.
  5. Lists all room mailboxes and their capacity
  6. Helps to export meeting room booking details.
  7. Helps to identify room mailboxes’ resource delegates.
  8. Exports room mailbox permission details, including ‘Full Access’, ‘Send As’, and ‘Send On Behalf’ permission.
  9. Built-in filtering options for generating more granular reports.
    • Meeting rooms that anyone can book.
    • Meeting rooms that can allow only specific people to book meetings.
    • List meeting rooms that require approval.
    • Meeting rooms that can be booked by external users.
  10. Automatically installs the EXO module (if not installed already) upon your confirmation.
  11. The script is scheduler-friendly.

Download Script: RoomMailboxReport.ps1

Exchange Online Room Mailbox Reports – Execution Steps

Step 1: Download the script and start Windows PowerShell.

Step 2: Choose any one of the methods below and run the script.

Method 1: Execute script with MFA and non-MFA accounts.

Method 2: Execute the script by explicitly mentioning credentials (Scheduler friendly) and required action for an unattended approach.

You can schedule the PowerShell script by utilizing the above code. The above method supports only non-MFA accounts. If an admin account has MFA, you can disable MFA using the CA policy.

Method 3: Run the script using certificates.

To execute this PowerShell script with the certificate based credentials, you must register the app in Azure AD and connect to MS Graph using a certificate. This method can also be chosen if you want to execute the script unattended.

You can use either a CA certificate or create a self-signed SSL certificate. Most admins prefer self-signed certificates for internal use.

Room Mailbox Reports Script Execution

Note: The output file will be stored in the current working directory.

Microsoft 365 Room Mailbox Reports Using PowerShell Script

As the script highlights section conveys, this script can suit various use cases, and you can use it to generate the following room mailbox reports:

  1. Get a list of all room mailboxes and their capacity
  2. Export all room mailbox booking options
  3. Get room mailbox booking delegates
  4. Get room mailbox permissions using PowerShell
  5. Find M365 meeting rooms that allow anyone to book
  6. Get room mailboxes that allow only specific users to book
  7. List meeting rooms that require approval
  8. List room mailboxes that allow external users to book

1. Get a List of All Room Mailboxes and their Capacity

Obtaining all room mailboxes and their capacity with a comprehensive overview allows you to optimize meetings based on room sizes.

To get and export all the room mailbox details to a CSV file, just run the script and select the required action from the menu or run the code below directly.

The exported “All Room Mailbox Report” includes information such as room name, UPN (User Principal Name), primary SMTP address, alias, and room capacity.

Sample Output:

All mailbox report PowerShell

2. Export All Room Mailbox Booking Options in M365

Exporting room mailbox booking options lets you efficiently configure the room mailbox settings and booking policies for more streamlined collaboration. Modifying room mailbox data with this report leads to effective meeting room usage across users. You can analyze how users organize meetings in rooms by utilizing the room mailbox usage statistics report.

To export all the room mailboxes with their booking options, configurations, and capacity, run the script and select the required action from the menu or run the code below directly.

The exported includes attributes such as room name, UPN, room capacity, resource delegates, request out of policy, all request out of policy, book in policy, all book in policy, request in policy, all request in policy, booking window, max duration, min duration, allow booking for external users, allow conflicts, allow recurrence and enforce capacity.

Note: We have documented the room mailbox properties and their purposes later in the section. You can refer it for additional details.

Sample Output:

Room mailbox booking options

3. Get Room Mailbox Booking Delegates

Retrieving the room mailbox booking delegates facilitates efficient coordination of meeting approvals and reservations.

To retrieve and export all the room mailboxes and their approvers to a CSV file, run the script and select the required action from the menu or run the below code directly.

The exported “Room Mailbox Booking Delegates” report includes information such as the room mailbox name, UPN, primary SMTP address, and the resource delegates.

Note: The resultant report displays the booking delegates for all room mailboxes, even if the delegates are only configured and not enabled to accept meetings.

Sample Output:

Get Room Mailbox Booking Delegates

4. Get Room Mailbox Permissions Using PowerShell

The room mailbox permission report aids in access management and ensures proper control over individuals with full access, send-as, or send-on-behalf permissions for all the room mailboxes. To export the report on the room mailbox permissions to a CSV file, run the script and select the required action from the menu or run the below code directly.

The exported “Room Mailbox Permissions” report includes the room mailbox name, UPN, and detailed user permissions, covering “Full Access,” “Send As,” and “Send On Behalf” permissions.

Sample Output:

Get Room Mailbox Permissions Using PowerShell

5. Find M365 Meeting Rooms that Allow Anyone to Book

Recognizing meeting rooms accessible for booking by anyone can enhance resource optimization in M365. These room mailboxes simplify the reservation process without having the need to depend on resource delegates for booking.

To export all the room mailboxes that allow anyone to book a meeting, execute the code below.

The execution of the above code will export the details of the rooms that permit organization-wide bookings along with the room booking policy details. This report facilitates managing meeting room access policies and helps to block meeting room bookings.

6. Get Room Mailboxes that Allow only specific users to Book Meeting Rooms

Identifying room mailboxes that only allow specific users for meeting bookings ensures that only authorized individuals or groups can schedule meetings in those rooms. This feature is beneficial for maintaining privacy, security, and the efficient utilization of meeting spaces within an organization.

To export all the room mailboxes that allow only specific users to book meeting rooms, run the PowerShell script as described below.

By referring this report, you can revert or enforce booking restrictions for specific users.

7. Export Meeting Rooms that Require Delegate Approval

Obtaining the room mailboxes with manual approval can ensure a controlled and deliberate approach to room bookings. This report is particularly useful for scenarios where certain meeting rooms require careful consideration or authorization before confirming reservations.

To export details of the room mailboxes that require delegates to accept/decline booking requests, execute the PowerShell script like the demonstration below:

The resultant CSV file provides information on all room mailboxes that require approval for scheduling meeting rooms.

8. List Room Mailboxes that Allow External Users to Book Meeting Rooms

M365 room mailboxes that enable external users to book meeting rooms help to manage access permissions and identify any suspicious activity or misuse.

To retrieve details for room mailboxes that accept meeting request from external users, use the following command.

The above format lists room mailboxes that accept meeting requests from external users. By analyzing this report, you can block external users from booking meeting rooms and manage room mailbox policies. By default, the option to allow external user to book meeting rooms is disabled, you can enable it using PowerShell, if needed.

Room Mailbox Properties Explanation

Explore the brief explanation of key attributes that we have used in our reports to optimize room booking policies within Microsoft 365.

Room Mailbox Name: This attribute specifies the name of the room mailbox in your tenant.

UPN: The User Principal Name (UPN) for a room mailbox typically corresponds to its email address, serving as its unique identifier within Microsoft 365.

Capacity: The capacity of the room mailbox refers to the maximum number of individuals it can accommodate for meetings or events.

In Policy: “In Policy” signifies meeting requests adhering to established booking rules. Established booking rules include booking window time, maximum duration, minimum duration, external access, recurring meetings, and more.

Out of Policy: The “Out of Policy” indicates deviations from these rules, allowing flexibility in room mailbox booking rules.

All Book In Policy: This attribute specifies whether to automatically approve in-policy requests from all users to the room mailbox. If this property is set to false, approval by a delegate is required for successful booking.

All Request In Policy: This parameter specifies whether to allow all users to submit in-policy requests to the room mailbox. If this parameter being set to false, users configured in the ‘Request in policy’ can only request the room.

All Request Out Of Policy: The All Request Out Of Policy property states the ability to accept meeting reservation requests that do not adhere to the specified booking policies. If this property is set to true, users can submit out-of-policy requests, but the requests require approval by a room mailbox delegate.

Book In Policy: The Book In Policy property specifies users or groups who are allowed to submit in-policy meeting requests to the room mailbox that are automatically approved.

Request In Policy: This attribute specifies users who are allowed to submit in-policy meeting requests to the resource mailbox that require approval by a room mailbox delegate.

Request Out Of Policy: This room mailbox attribute specifies users who are allowed to submit out-of-policy requests that require approval by a resource mailbox delegate.

Resource Delegates: A list of users who can approve or reject requests that are sent to the room mailbox.

Booking Window (In Days): The Booking Window parameter specifies the maximum number of days in advance that the mailbox can be booked. The default value is 180 days, and it can have a value between 0 and 1080 days.

Maximum Duration (In Minutes): This parameter specifies the maximum duration in minutes for meeting requests. The default value is 1440 minutes (24 hours). When the value is set to 0, the duration of a meeting is unlimited. This property can value between 0 minutes and 2147483647 minutes.

Minimum Duration (In Minutes): This parameter specifies the minimum duration in minutes for meeting requests. The default value is 0, which means there is no minimum duration. This property can value between 0 minutes and 2147483647 minutes.

Allow Booking for External Users: This attribute specifies the ability of the room mailbox to process meeting requests from external organization users.

Allow Conflicts: The Allow Conflicts attribute states the ability of the meeting room to allow conflicting meeting requests.

Allow Recurring Meetings: This attribute for a room mailbox indicates whether the room is configured to accept and accommodate recurring meetings, allowing users to schedule events that repeat at specified intervals.

Enforce Capacity: This attribute signifies whether the room is configured to strictly adhere to its defined capacity limit. It ensures the maximum number of participants is not exceeded during scheduled meetings or events.

AdminDroid – A Vital Tool for Microsoft 365 Management

While the PowerShell scripts can generate Microsoft 365 reports, their complexity may present challenges, especially for those new to Microsoft 365 management. In such scenarios, AdminDroid becomes an invaluable tool, significantly enhancing your M365 reporting capabilities.

All Mailboxes Report - AdminDroid

Why AdminDroid stand on top?

For Microsoft 365 management needs, AdminDroid stands as the top option because of the following reasons:

  • AdminDroid not only stops at Exchange Online mailbox management, but it also extends its capability across the entire M365 suite.
  • Offers 1800+ reports and 30+ dashboards for efficient M365 management with AI-powered graphics.
  • Provides access to 120+ free Office 365 reports on users, licenses, groups, user logins and password activities, including the ability to schedule reports.
  • 15-day free trial with a premium version covering overall capabilities, such as getting alerts on critical activities, delegating access to other admins, and ensuring compliance auditing.

For your Microsoft 365 reporting and auditing needs, download AdminDroid today and witness how it can assist you.

In conclusion, we hope that this blog, along with the PowerShell script, aids you in exporting room mailbox reports. Feel free to ask any questions or share your comments regarding the script in the comments section. We always appreciate your feedback.

Share article