How to Use Get-InboxRule in Powershell

How to Use Get-InboxRule in Powershell

If you are looking to streamline your email organization and management processes, then you have arrived at the right place.

As a powerful tool for automation and customization, PowerShell offers various cmdlets to streamline email handling, including the Get-InboxRule command, which we’ll show you how to use right away.

What is Get-InboxRule in PowerShell?

Get-InboxRule is a PowerShell cmdlet used in Microsoft Exchange Server to retrieve information about inbox rules set up by users within their Exchange mailboxes. These rules dictate how incoming emails are managed, such as sorting them into folders, forwarding them to other addresses, or flagging them for follow-up.

This cmdlet allows administrators to view the existing inbox rules, which can be helpful for troubleshooting email flow or managing user preferences within an Exchange environment.

The syntax of Get-InboxRule is the following:


[[-Identity] <InboxRuleIdParameter>]


[-DescriptionTimeFormat <String>]

[-DescriptionTimeZone <ExTimeZoneValue>]

[-DomainController <Fqdn>]


[-Mailbox <MailboxIdParameter>]

[-ResultSize <Unlimited>]

[-SkipCount <Int32>]




Each one of these parameters is vital for the correct functioning of the cmdlet, and these are their meanings:

  • Identity <InboxRuleIdParameter>: Specifies the identity of the inbox rule to retrieve.
  • BypassScopeCheck: Bypasses the Active Directory scope check when reading rules.
  • DescriptionTimeFormat <String>: Specifies the time format used in the description of the inbox rule.
  • DescriptionTimeZone <ExTimeZoneValue>: Specifies the time zone used in the description of the inbox rule.
  • DomainController <Fqdn>: Specifies the fully qualified domain name (FQDN) of the domain controller to use for this operation.
  • IncludeHidden: Includes hidden rules in the output.
  • Mailbox <MailboxIdParameter>: Specifies the mailbox for which to retrieve the inbox rules.
  • ResultSize <Unlimited>: Specifies the maximum number of results to return.
  • SkipCount <Int32>: Specifies the number of items to skip.
  • SweepRules: Retrieves and removes all Sweep rules from the user's mailbox.
  • UseCustomRouting: Specifies whether to use custom routing.

What Can You Use Get-InboxRule Cmdlet For?

Get-InboxRule has many great functionalities, such as the following:

  • Rule Auditing: Administrators can use Get-InboxRule to audit and review the inbox rules configured by users within the Exchange environment.
  • Troubleshooting: When users experience issues with email delivery or organization, it’s possible to use Get-InboxRule to examine existing rules and identify any that might be causing problems, such as inadvertently redirecting or deleting important messages.
  • Migration Planning: During email system migrations or upgrades, administrators can use Get-InboxRule to understand users' existing email organization preferences. This information helps in planning and configuring the new system to maintain users' preferred rules and settings.
  • User Support: When someone requires assistance with managing their email rules or organizing their inbox, admins can use Get-InboxRule to view and understand the user's current rule configuration. This insight enables administrators to provide targeted support and guidance to users, resolving issues efficiently.

Prerequisites to Run Get-InboxRule Command in PowerShell

In order to use the Get-InboxRule PowerShell command, users need to comply with these three requirements.

But first, it's important to note that members of the View-Only Organization Management role group in Exchange Online and the Global Reader role in Microsoft 365 do not have permission to use the Get-InboxRule cmdlet.

This is because roles are designed to provide read-only access to specific information within the organization, and accessing inbox rules could potentially compromise user privacy or security.

  1. Permission: You must have the necessary permissions to run the command. This means being a member of the appropriate role groups or having specific permissions assigned within Exchange Online or Microsoft 365.
  2. Exchange Online or Microsoft 365 Environment: The command is normally used in environments utilizing Exchange Online or Microsoft 365. You need to have access to the Exchange Online PowerShell module or the Microsoft 365 PowerShell module, depending on your environment.
  3. Understanding of Parameters: It’s important to learn about the parameters of the Get-InboxRule cmdlet and how they can be used before executing this command. This way, it’s possible to specify which inbox rules you want to retrieve and how you want the information presented.

Get-InboxRule vs. Other Inbox Rule Cmdlets

While Get-InboxRule can be used to retrieve information, it’s only the appetizer for other Inbox Rule cmdlets thatactually effect changes within PowerShell and Exchange Online environments, with the most important ones being the following three:

  • Set-InboxRule: This cmdlet enables the modification of existing inbox rules, offering the ability to adjust rule criteria, actions, or exceptions within an Exchange environment, providing flexibility in managing email workflows.
  • Remove-InboxRule: With this cmdlet, specific inbox rules can be deleted from a user's mailbox, facilitating the cleanup of obsolete rules or troubleshooting rule-related issues within Exchange, ensuring efficient email management.
  • New-InboxRule: By using this cmdlet, new inbox rules can be created for a user's mailbox, allowing for the customization of email organization and handling, catering to individual preferences and needs within the Exchange environment.

How to Use Get-InboxRule in PowerShell

To use Get-InboxRule, we need to follow just three quick steps.

Step 1: Connect to Exchange Online PowerShell

First, connect to the Exchange Online PowerShell environment by running the following cmdlet and using your Microsoft account credentials:

Connect-ExchangeOnline -UserPrincipalName [email protected]

Remember that this step requires administrator credentials for your Exchange Online environment.

Step 2: Run the Get-InboxRule Command

Now, it’s time to run the Get-InboxRule command. Use the Get-InboxRule cmdlet to fetch information about existing inbox rules for a specific mailbox, as shown in the following example:

Get-InboxRule -Mailbox [email protected]

This command simply retrieves inbox rule information from James’s mailbox.

We can also specify more parameters if we need more detailed information:

Get-InboxRule "ReceivedLastYear" -Mailbox [email protected] -DescriptionTimeFormat "mm/dd/yyyy" -DescriptionTimeZone "Pacific Standard Time"

In this case, the command retrieves the Inbox rule ReceivedLastYear from the mailbox [email protected] on which the ReceivedBeforeDate parameter was set when the rule was created.

Step 3: Run Other InboxRule Commands if Necessary

Keep in mind that Get-InboxRule will only retrieve information - it won’t make any changes to the desired mailbox.

Therefore, if you want to make further changes, which might be your primary objective, it is necessary to run other commands.

In this case, you can modify rules using the Set-InboxRule cmdlet to adjust criteria, delete unwanted rules using the Remove-InboxRule cmdlet to clean up obsolete or unnecessary rules from the mailbox, or create new rules using the New-InboxRule cmdlet to customize email organization.

Summary: How to Efficiently Use Get-InboxRule in PowerShell

As you can see, learning how to use Get-InboxRule in PowerShell can significantly improve your email management.

With its automation and customization features, it’s possible to efficiently organize your inbox, prioritize important emails, and automate repetitive tasks. By exploring the capabilities of Get-InboxRule, you'll enhance your productivity, making daily tasks easier to manage.