使用PowerShell管理Exchange邮箱收件箱规则
Outlook规则允许用户创建不同的条件来处理传入的电子邮件。我们可以将满足特定条件的特定发件人中的电子邮件移动到所需的文件夹,将电子邮件标记为重要,将电子邮件转发给其他用户,等等。通常,用户在Outlook图形界面中创建和管理其规则。在Exchange 2010/2013/2015中,管理员可以通过PowerShell控制台管理用户邮箱中的收件箱规则。在本文中,我们将了解如何通过Exchange命令行管理程序添加,删除,禁用或者修改Outlook收件箱规则。
客户端和服务器端Outlook规则
Exchange管理员应在客户端Outlook规则和服务器端Outlook规则之间有所不同。
- "服务器端"接收电子邮件时,Outlook规则在服务器端起作用。它们始终有效,用户是否正在运行Outlook客户端都无关紧要(使用Outlook Web App创建的规则始终在服务器端)。可以在Exchange服务器端应用以下规则:将电子邮件标记为重要,将电子邮件移动到另一个邮箱文件夹,删除邮件,将电子邮件转发到另一个电子邮件地址;
- 仅当Outlook客户端已启动时,才应用"客户端"规则:e。例如,将电子邮件标记为已读,将电子邮件消息移动到本地PST文件,显示通知或者播放声音。我们无法通过Exchange PowerShell管理这些规则。这些规则在Outlook界面中具有仅客户端状态。
Get-InboxRule:如何在Exchange邮箱中显示用户收件箱规则?
要在用户Exchange邮箱中显示规则列表,请启动EMS控制台并运行以下PowerShell命令:
Get-InboxRule –Mailbox john.doe
如我们所见,将显示每个规则的名称,状态(启用:True/False),优先级和RuleIdentity。
我们可以通过指定其名称来查看有关特定收件箱规则的详细信息:
Get-InboxRule -Mailbox john.doe -Identity "HelpDesk"| fl
通常,我们可以通过其描述来了解规则的内容:
Get-InboxRule -Mailbox john.doe -Identity "HelpDesk "| Select Name, Description | fl
如何在用户邮箱中搜索收件箱规则?
在某些情况下,管理员必须在用户邮箱中找到某些规则。例如,我们必须找到所有删除电子邮件的规则:
Get-InboxRule -Mailbox john.doe | ?{ $_.DeleteMessage }
另外,在某些情况下,信息安全部门会要求我们在的所有用户邮箱中查找所有自动电子邮件转发规则:
foreach ($i in (Get-Mailbox -ResultSize unlimited)) { Get-InboxRule -Mailbox $i.DistinguishedName | where {$_.ForwardTo} | fl MailboxOwnerID,Name,ForwardTo >> C:\PS\All_Mailbox_Forward_Rules.txt }
生成的文本文件将包含邮箱列表,转发规则的名称以及将这些电子邮件转发到的收件人。
如何使用PowerShell创建Outlook收件箱规则?
我们可以使用New-InboxRule
Exchange cmdlet为Outlook收件箱创建新规则。例如,我们想将主题中包含某些关键字的所有电子邮件转发给另一个用户。运行以下命令:
New-InboxRule -Name ZenossAlerttoHelpdesk -Mailbox NYadmin -SubjectContainsWords "Zenoss HW Alert" -ForwardTo "Helpdesk"
该规则将对所有主题为[email protected]的主题为"年会"的电子邮件应用红色类别和更高的重要性级别:
New-InboxRule -Mailbox john.doe –name SecretaryRule -From [email protected] –SubjectContainsWords “Annual meeting" -ApplyCategory {Red Category} -MarkImportance 2
让我们创建一个规则,以将特定主题中所有带有娱乐场的电子邮件移动到特定Active Directory OU中所有用户的"垃圾电子邮件"文件夹中。
$mbxs =获取邮箱-organizationalUnit Managers $mbxs | %{} $mbxs | %{New-inboxrule -Name SpamMail -mailbox $_。alias -subjectcontainswords [casino] -movetofolder $($_。alias):Junk Email}
可以显示要在Exchange规则中使用的所有可用属性,条件和操作的列表,如下所示:
Get-InboxRule -Mailbox john.doe | get-member
ApplyCategory BodyContainsWords CopyToFolder DeleteMessage Description Enabled FlaggedForAction ForwardAsAttachmentTo ForwardTo From FromAddressContainsWords FromSubscription HasAttachment HasClassification HeaderContainsWords Identity InError IsValid MailboxOwnerId MarkAsRead MarkImportance MessageTypeMatches MoveToFolder MyNameInCcBox MyNameInToBox MyNameInToOrCcBox MyNameNotInToBox Priority ReceivedAfterDate ReceivedBeforeDate RecipientAddressContainsWords RedirectTo RuleIdentity SendTextMessageNotificationTo SentOnlyToMe SentTo StopProcessingRules SubjectContainsWords SubjectOrBodyContainsWords SupportedByTask WithImportance WithinSizeRangeMaximum WithinSizeRangeMinimum WithSensitivity
要更改Outlook规则,请使用Set-InboxRule
cmdlet,e。 G。:
Set-InboxRule -Mailbox john.doe –identity SecretaryRule -FromAddressContainsWords {gmail.com}
提示。 Microsoft Exchange邮箱中规则的大小受到限制。在Exchange 2003中为32 KB,在Exchange 2015/2013/2010中为64 KB。如果在尝试编辑规则时出现此错误:
一个或多个规则无法上载到Exchange服务器,已停用。这可能是因为某些参数不受支持,或者没有足够的空间来存储所有规则。 One or more rules could not be uploaded to Exchange server and have been deactivated. This could be because some of the parameters are not supported or there is insufficient space to store all your rules.
我们可以使用以下命令将规则配额(RulesQuota)更改为256 KB:
Set-Mailbox -identity john.doe -RulesQuota 256Kb
如何禁用和删除Outlook收件箱规则?
要禁用Outlook收件箱规则,请输入以下命令:
Disable-Inboxrule –Mailbox john.doe -Identity “SecretaryRule”
同时,其状态(启用)更改为False,并且不再应用于传入的电子邮件。
要完全删除收件箱规则,请运行以下命令:
Remove-Inboxrule –Mailbox john.doe -Identity SecretaryRule
该命令将提示我们进行确认,只需按Y。要删除用户邮箱中的所有规则,请运行以下命令:
Get-inboxrule -mailbox john.doe | disable-inboxrule