Working with users’ mailbox rules has always been difficult. From an administrator perspective, you have three options to troubleshoot these:
1. give yourself FullAccess permissions to the user’s mailbox and use Outlook or OWA;
2. remote control the user’s machine;
3. use an Exchange Web Services script.

Now there is a new and easier option: the Get-InboxRule cmdlet. With it you can get details regarding any rule a user has set up on their Outlook or OWA clients.
Let’s look at an example. The following user has a rule called SCOM Alerts that moves any alerts from System Center Operations Manager to a specific folder. Using this cmdlet we can see exactly what the rule does:

[PS] C:\>Get-InboxRule "SCOM Alerts" -Mailbox user1 | FL
RunspaceId                            : 28080329-479c-476e-94fd-32bdaec13b05
Description                           : If the message:
                                            the message was received from ''
                                        Take the following actions:
                                            move the message to folder 'Alerts'
Enabled                               : True
Identity                              :\5030437392687824897
InError                               : False
Name                                  : SCOM Alerts
Priority                              : 3
RuleIdentity                          : 5030437392687824897
SupportedByTask                       : True
BodyContainsWords                     : {}
ExceptIfBodyContainsWords             : {}
FlaggedForAction                      :
ExceptIfFlaggedForAction              :
FromAddressContainsWords              : {}
ExceptIfFromAddressContainsWords      : {}
From                                  : {"" []}
ExceptIfFrom                          :
HasAttachment                         : False
ExceptIfHasAttachment                 : False
HasClassification                     :
ExceptIfHasClassification             :
HeaderContainsWords                   : {}
ExceptIfHeaderContainsWords           : {}
FromSubscription                      :
ExceptIfFromSubscription              :
MessageTypeMatches                    :
ExceptIfMessageTypeMatches            :
MyNameInCcBox                         : False
ExceptIfMyNameInCcBox                 : False
MyNameInToBox                         : False
ExceptIfMyNameInToBox                 : False
MyNameInToOrCcBox                     : False
ExceptIfMyNameInToOrCcBox             : False
MyNameNotInToBox                      : False
ExceptIfMyNameNotInToBox              : False
ReceivedAfterDate                     :
ExceptIfReceivedAfterDate             :
ReceivedBeforeDate                    :
ExceptIfReceivedBeforeDate            :
RecipientAddressContainsWords         : {}
ExceptIfRecipientAddressContainsWords : {}
SentOnlyToMe                          : False
ExceptIfSentOnlyToMe                  : False
SentTo                                :
ExceptIfSentTo                        :
SubjectContainsWords                  : {}
ExceptIfSubjectContainsWords          : {}
SubjectOrBodyContainsWords            : {}
ExceptIfSubjectOrBodyContainsWords    : {}
WithImportance                        :
ExceptIfWithImportance                :
WithinSizeRangeMaximum                :
ExceptIfWithinSizeRangeMaximum        :
WithinSizeRangeMinimum                :
ExceptIfWithinSizeRangeMinimum        :
WithSensitivity                       :
ExceptIfWithSensitivity               :
ApplyCategory                         : {}
CopyToFolder                          :
DeleteMessage                         : False
ForwardAsAttachmentTo                 :
ForwardTo                             :
MarkAsRead                            : False
MarkImportance                        :
MoveToFolder                          : Alerts
RedirectTo                            :
SendTextMessageNotificationTo         : {}
StopProcessingRules                   : False
MailboxOwnerId                        :
IsValid                               : True

In this case the rule basically looks for any e-mails coming from “” and moves them to a folder called “Alerts” but this shows all the detail you get using this cmdlet.

Another good news is that you have all sort of cmdlets to work with these rules, from creating new rules to deleting existing ones:
- Disable-InboxRule
- Enable-InboxRule
- Get-InboxRule
- New-InboxRule
- Remove-InboxRule
- Set-InboxRule

Nuno Mota

Nuno Mota is an Exchange MVP working as a Microsoft Messaging Specialist for a financial institution. He is passionate about Exchange, Lync, Active Directory, PowerShell, and Security. Besides writing his personal Exchange blog,, he regularly participates in the Exchange TechNet forums and is the author of the book “Microsoft Exchange Server 2013 High Availability.”

Published by
Nuno Mota

Recent Posts

Ansible Automation Engine: Complete getting started guide

In this second article in our series, we will work on the Ansible Automation Engine…

3 hours ago

Microsoft Build 2020: All major announcements for developers

Microsoft Build 2020 included several announcements aimed at developers and the IT community. Here are…

6 hours ago

Dell unveils new PCs optimized for remote work

With remote work here to stay, companies are looking to supply employees with devices to…

9 hours ago

Using Azure Active Directory Identity Protection to boost your security

Using Azure Active Directory Identity Protection will boost your security. This step-by-step guide shows you…

1 day ago

Review: Kemp Virtual LoadMaster load balancer

With many businesses requiring employees to work remotely, Kemp’s Virtual LoadMaster can help relieve many…

1 day ago

Microsoft warns of COVID-19-related spear-phishing campaign

COVID-19 is not going away anytime soon, and as Microsoft researchers have discovered, neither are…

1 day ago