How to Use Get-MailboxDatabase in PowerShell

How to Use Get-MailboxDatabase in PowerShell

Get-MailboxCommand is a game-changer for administrators looking to streamline mailbox database management, but it can be a bit tricky to use at first.

In this quick guide, we'll take you through the fundamental steps to efficiently use Get-MailboxDatabase in PowerShell,whether you're a beginner or a seasoned pro

What is the Get-MailboxDatabase Cmdlet in PowerShell?

The Get-MailboxDatabase cmdlet in PowerShell is a command used in Microsoft Exchange Server environments to retrieve information about mailbox databases.

It provides details such as database name, server hosting the database, mailbox count, database size, and other relevant properties. This cmdlet is especially useful for administrators who wish to manage mailbox databases efficiently, allowing them to monitor usage, troubleshoot issues, and perform various administrative tasks related to Exchange Server mailboxes.

The syntax of Get-MailboxDatabase is the following:


-Server <ServerIdParameter>

[-DomainController <Fqdn>]







Each one of the parameters of the Get-Mailbox cmdlet has a meaning:

  • Server: Specifies the Exchange server from which to retrieve mailbox database information.
  • DomainController: Specifies the fully qualified domain name (FQDN) of the domain controller to use for Active Directory operations.
  • DumpsterStatistics: Retrieves statistics about the dumpster for the mailbox database.
  • IncludeCorrupted: Includes corrupted mailbox databases in the results.
  • IncludePreExchange2010: Includes mailbox databases created before Exchange Server 2010 in the results.
  • IncludePreExchange2013: Includes mailbox databases created before Exchange Server 2013 in the results.

What Can You Use the Get-MailboxDatabase Command For?

Although this cmdlet is primarily used for monitoring mailboxes and retrieving info from databases, there are a few other applications that are also worth noticing:

  • Monitoring Database Health: Administrators can use Get-MailboxDatabase to monitor the health and status of Exchange mailbox databases, including their size, number of mailboxes, and storage usage.
  • Troubleshooting Issues: When encountering mailbox-related issues such as connectivity problems or performance issues, it's possible to use this command to gather information about mailbox databases to aid in troubleshooting.
  • Capacity Planning: By retrieving details such as mailbox counts and sizes, administrators can use Get-MailboxDatabase to perform capacity planning tasks, such as predicting future storage needs and determining whether additional databases or servers are required.
  • Auditing and Reporting: Get-MailboxDatabase can be used to generate reports on mailbox database usage, mailbox distribution across databases, and other relevant metrics for auditing purposes or compliance requirements.
  • Database Maintenance: Administrators can use this command to facilitate routine maintenance tasks such as checking for corrupted databases, identifying databases created before certain Exchange versions for upgrade planning, and gathering dumpster statistics for cleanup purposes.

Prerequisites to Run the Get-MailboxDatabase PowerShell Command

In order to successfully run the Get-MailboxDatabase command, it's crucial to comply with these three requirements:

  1. Permissions: First, make sure that you are a member of the Exchange Server Administrator role or have appropriate permissions delegated to access mailbox database information.
  2. Active Directory Access: The PowerShell session must have access to the Active Directory environment where Exchange-related information, such as mailbox database metadata, is stored. This includes appropriate permissions and network connectivity to query Active Directory.
  3. Correct Syntax and Parameters: When executing the command, ensure the correct syntax and required parameters are provided based on the specific use case. Missing or incorrect parameters can lead to errors or unexpected results.

How to Use Get-MailboxDatabase in PowerShell

Now, we are ready to get mailbox database information - learn how to use this simple yet powerful cmdlet by following just three steps.

Step 1: Open PowerShell and Connect to Exchange Online

First, we need to launch PowerShell with administrative privileges. Run the following command to get started:

Connect-ExchangeOnline -UserPrincipalName

Use your Microsoft account credentials and continue with the next step. Remember that administrator permissions are necessary before proceeding.

Step 2: Run the Get-MailboxDatabase Command

Now that you're connected to Exchange Server, you can use the Get-MailboxDatabase cmdlet to retrieve information about mailbox databases. You can simply run the following command:


If you need more precise information, then you can also modify the command's parameter as shown in the following example:

Get-MailboxDatabase -Identity MeetingRoom365 -Status | Format-List

In this case, the command returns detailed information about the mailbox database named MeetingRoom365.

Step 3: Check the Command's Output

As you can see, running and using the Get-MailboxDatabase command is quite straightforward.

Running the Get-MailboxDatabase cmdlet in PowerShell provides essential information about Exchange Server mailbox databases. This includes properties such as the database name, hosting server, recovery status, and replication type, so this is the information you can expect from the output:

  • Name: Identifies the database.
  • Server: Shows the hosting server.
  • Recovery: Indicates if it's a recovery database.
  • ReplicationType: Describes how the database replicates (e.g., None, Local, Remote).

Troubleshooting the Get-Mailbox Database Cmdlet

If, for any reason, the output of the Get-MailboxDatabase command is not what you expect, this is how you can fix it:

  1. Check Permissions: Ensure that the account you're using to execute the cmdlet has the necessary permissions to access mailbox databases. Verify that the account is a member of the appropriate Exchange management role groups or has been explicitly granted the necessary permissions.
  2. Verify Exchange Server Connectivity: Confirm that the PowerShell session is connected to the correct Exchange Server environment. If using remote PowerShell, make sure that you're connected to the Exchange server where the mailbox databases reside. Use the Connect-ExchangeServer cmdlet to establish or verify the connection.
  3. Review Syntax and Parameters: Double-check the syntax of your Get-MailboxDatabase command and any parameters you're using. Some common mistakes are typos, incorrect parameter usage, or missing required parameters.

Summary: Mastering Get-MailboxDatabase

Learning how to use PowerShell's Get-MailboxDatabase tool is really important for Exchange Server admins.

By following these quick steps and leveraging the troubleshooting tips provided, you'll be prepared to handle any challenges that arise while managing mailbox databases with PowerShell.

Effortlessly pulling up vital info about our mailbox databases is simpler with this command, smoothing out management tasks, and keeping our Exchange environment running like a well-oiled machine