Управление пользовательскими почтовыми правилами MS Outlook из командной консоли Exchange Managment Shell

Правила для входящих писем в MS Outlook помогают пользователям организовывать свои почтовые ящики. Обычно пользователи сами для себя создают необходимые правила обработки входящей почты, через приложение MS Outlook, но! системный администратор может так же управлять правилами обработки почты, в пользовательских почтовых ящиках.

 

Это может быть полезно, в случае если необходимо централизованно добавить всем пользователям правило, (прим.) которое будет помечать входящие письма от руководства, как важные.

 

Управление почтовыми правилами осуществляется через консоль EMS (Exchange managment Shell). В работе имеется MS Exchange 2010 SP3, на нем и рассмотрим различные методы управления почтовыми правилами.

 

Типы правил Outlook

Правила Outlook могут быть как на стороне сервера (Server-side), так и на стороне клиента (Client-side). Для управления ими нужно иметь понимание какое различие между этими правилами.

 

  • Правила на стороне сервера (Server-side): их выполнение полностью выполняется сервером Exchange. Они применяются даже тогда, когда клиент Outlook пользователя находится в автономном режиме.
  • Правила на стороне клиента (Client-side). Эти правила выполняются только в том случае, если Outlook подключен к сети и пользователь вошел в систему. Правило не будет работать, если к электронной почте обращаются с другого почтового клиента или мобильного устройства. Так же, невозможно управлять ими через EMS (Exchange managment Shell).

 

Чтобы проверить, является ли правило на стороне сервера или на стороне клиента, вы можете использовать окно «Управление правилами и оповещениями» в Outlook. К клиентским правилам добавляется (только клиент) к имени правила, а к серверным правилам ничего не добавляется:

 

Наверняка определить типа правила, можно только в Outlook, в консоли EMS (Exchange managment Shell) нет конкретного обозначения типа правила, но обычно правила на стороне клиента имеют более короткое описание в EMS, но вряд ли это надежный способ определения типа правила.

 

Управление правилами Outlook с помощью EMS

Начиная с Exchange Server 2010, Microsoft предоставила возможность использовать EMS (Exchange managment Shell) для удаленного управления правилами Outlook. Для этого используются следующие командлеты:

 

 

Просмотр правил (Get-InboxRule)

Для предварительного просмотра всех правил, установленных для определенного почтового ящика, выполним команду:

Get-InboxRule -Mailbox <mailbox_name>
Вывод:

[PS] C:\>Get-InboxRule -Mailbox j.doe
Name                          Enabled                   Priority                 RuleIdentity
----                          -------                   --------                 ------------
RULE_ELMA                     True                      1                        3851757569047540121
TOMILIN A.                    True                      2                        3995872757123395993
РЕЗЕРВНОЕ КОПИРОВАНИЕ         True                      3                        4067930351161323929
FIRSTSSL                      True                      4                        4139987945199251865

[свернуть]

 

У каждого правила есть свой собственный, отдельный параметр RuleIdentity. Этот параметр можно использовать для просмотра его настроек и описания, например:

Get-InboxRule –Mailbox <mailbox_name> -Identity <number> | FL
Вывод:
[PS] C:\>Get-InboxRule -Mailbox j.doe -Identity 3851757569047540121 | FL

RunspaceId                            : e6045952-673e-4c1a-9fd8-2cd17049db93
Description                           : Если сообщение:
                                            в теме сообщения содержатся определенные слова '[ELMA]'
                                        Выполните следующие действия:
                                            переместить сообщение в папку 'ELMA'

Enabled                               : True
Identity                              : example.com/Users/...\3851757569047540121
InError                               : False
Name                                  : RULE_ELMA
Priority                              : 1
RuleIdentity                          : 3851757569047540121
SupportedByTask                       : True
BodyContainsWords                     : {}
ExceptIfBodyContainsWords             : {}
FlaggedForAction                      :
ExceptIfFlaggedForAction              :
FromAddressContainsWords              : {}
ExceptIfFromAddressContainsWords      : {}
From                                  :
ExceptIfFrom                          :
HasAttachment                         : False
ExceptIfHasAttachment                 : False
...

[свернуть]

Однако удобней искать и просматривать правила Outlook по их имени и описанию:

Get-InboxRule –Mailbox <mailbox_user> | Select Name, Description | FL
Вывод:

[PS] C:\>Get-InboxRule -Mailbox j.doe | Select Name, Description | FL


Name        : RULE_ELMA
Description : Если сообщение:
                  в теме сообщения содержатся определенные слова '[ELMA]'
              Выполните следующие действия:
                  переместить сообщение в папку 'ELMA'


Name        : TOMILIN A.
Description : Если сообщение:
                  получено от 'TOMILIN A.'


Name        : РЕЗЕРВНОЕ КОПИРОВАНИЕ
Description : Если сообщение:
                  в теме сообщения содержатся определенные слова 'РЕЗЕРВНОЕ КОПИРОВАНИЕ'


Name        : FIRSTSSL
Description : Если сообщение:
                  получено от 'FIRSTSSL'
              Выполните следующие действия:
                  переместить сообщение в папку 'FIRSTSSL'
                  и остановить дальнейшую обработку правил в этом сообщении

[свернуть]

 

Создание правил (New-InboxRule)

Рассмотрим несколько примеров как удаленно создать правила на стороне сервера (Server-side).

 

Пример 1. Создадим правило, для почтового ящика «j.doe», которое перемещает сообщения, в теме которых содержится текст «SPAM», в папку «Нежелательная почта»:

New-InboxRule -Mailbox j.doe -Name "Move to Spam" -SubjectContainsWords "SPAM" -MoveToFolder ":\Нежелательная почта" -StopProcessingRules $True
Вывод:

[PS] C:\Windows\system32>New-InboxRule -Mailbox j.doe -Name "Move to Spam" -SubjectContainsWords "SPAM" -MoveToFolder ":\Нежелательная почта" -StopProcessingRules $True

Confirm
Использование Outlook Web App или Windows PowerShell для изменения правил приведет к удалению всех правил, отключенных
ранее с помощью Outlook. Если требуется сохранить правила, отключенные с помощью Outlook, нажмите кнопку "Нет" и
измените правила в Outlook. Продолжить?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [?] Help (default is "Y"): y

Name                       Enabled                       Priority                RuleIdentity
----                       -------                       --------                ------------
Move to Spam               True                          1                       6517888548450873753

[свернуть]

 

Пример 2. Рассмотрим случай когда нужно создать правило, для всех имеющихся почтовых ящиков. Для этого напишем простой скрипт, который сперва получил названия всех имеющихся почтовых ящиков (кроме ящиков мест и системных) и для каждого из имеющегося почтового ящика будет создано правило (которое рассмотрели выше). Текст скрипта:

$user_list = Get-Mailbox | Select Alias, RecipientTypeDetails | Where { $_.RecipientTypeDetails -eq "UserMailbox"}

foreach ($al in $user_list) {
   $mail = $al.Alias
   Add-MailboxPermission -Identity $mail -user administrator -AccessRights FullAccess -Confirm:$false
   New-InboxRule -Mailbox $mail -Name "Move to Spam" -SubjectContainsWords "SPAM" -MoveToFolder ":\Нежелательная почта" -StopProcessingRules $True -Confirm:$false
   Remove-MailboxPermission -Identity $mail -user e.administrator -AccessRights FullAccess -Confirm:$false
}
Хочу обратить внимание, что для корректного применения политики, необходимо сперва выдать доступ к почтовому ящику пользователя, для пользователя от имени которого выполняется данный скрипт. После добавления правила, выданный доступ убираем.

 

Посмотреть список всех доступных условий (Conditions), для создания правил Outlook, можно выполнив команду:

Get-InboxRule -Mailbox <mailbox_name> | Get-Member

 

Включение\Отключение правил (Enable-InboxRule, Disable-InboxRule)

Правила размещенные на стороне сервера (Server-side), можно включать и отключать. Делается это следующими командами:

Disable-InboxRule -Mailbox <mailbox_name> -Identity <rule_name>
Enable-InboxRule -Mailbox <mailbox_name> -Identity <rule_name>

 

Изменение правил (Set-InboxRule)

Этот командлет позволяет изменять любое правило на стороне сервера (Server-side). Для примера изменим правило, которые применили выше. Изменим его так, чтобы оно реагировало на слово «SPAM», включенное в тело письма, а не на его тему:

Set-InboxRule -Mailbox <mailbox_name> -Identity <rule_name> -BodyContainsWords "SPAM" -SubjectContainsWords $nule

 

Удаление правил (Remove-InboxRule)

Для удаления правила, используется следующая конструкция:

Remove-InboxRule -Mailbox <mailbox_name> -Identity <rule_name>

 

 

Понравилась или оказалась полезной статья, поблагодари автора

 

БесполезноСлабоватоПриемлемоОтличноПревосходно (1 голос(ов), в среднем: 5,00 из 5)
Загрузка...

Только один комментарий Комментировать

  1. shadow999 /

    Спасибо за тему!
    Как раз искал по работе с правилами инфу. На технете информация есть, да и с командлетами вроде все понятно. Но только здесь все в примерах хорошо «разжевано», еще раз спс !!

Оставить ответ

3 × 4 =