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

Using PowerShell to assess Active Directory health

When using PowerShell as a tool for monitoring Active Directory health, you are limited only by your imagination. Here’s some…

1 hour ago

Microsoft Authentication Libraries now generally available

Microsoft Authentication Libraries, available for Android, iOS, and macOS, help developers integrate authentication into a diverse set of applications.

6 hours ago

Checkrain fake iOS jailbreak site a menace to iPhone users

iPhone users looking for help in jailbreaking their devices will find trouble if they head to a website named checkrain,…

9 hours ago

Key to success: Tracking down and unlocking locked files in Windows

Locked files in Windows can be a maddening experience. Thankfully, it is usually relatively easy to get a locked file…

1 day ago

‘Made By Google’ 2019: Pixel 4 and Pixel 4 XL are finally official

The release of Google’s much-awaited new smartphones is official. The tech giant has unveiled the Pixel 4 and Pixel 4…

1 day ago

COBIT 2019: An effective governance framework for IT pros

Every business with IT as part of its foundation needs a comprehensive governance strategy. This is where COBIT 2019 comes…

1 day ago