Управление пользовательскими почтовыми правилами MS Outlook из командной консоли Exchange Managment Shell
Правила для входящих писем в MS Outlook помогают пользователям организовывать свои почтовые ящики. Обычно пользователи сами для себя создают необходимые правила обработки входящей почты, через приложение MS Outlook, но! системный администратор может так же управлять правилами обработки почты, в пользовательских почтовых ящиках.
Это может быть полезно, в случае если необходимо централизованно добавить всем пользователям правило, (прим.) которое будет помечать входящие письма от руководства, как важные.
Управление почтовыми правилами осуществляется через консоль EMS (Exchange management Shell). В работе имеется MS Exchange 2010, на нем и рассмотрим различные методы управления почтовыми правилами.
Типы правил Outlook
Правила Outlook могут быть как на стороне сервера (Server-side), так и на стороне клиента (Client-side). Для управления ими нужно иметь понимание какое различие между этими правилами.
- Правила на стороне сервера (
Server-side
): их выполнение полностью выполняется сервером Exchange. Они применяются даже тогда, когда клиент Outlook пользователя находится в автономном режиме. - Правила на стороне клиента (
Client-side
). Эти правила выполняются только в том случае, если Outlook подключен к сети и пользователь вошел в систему. Правило не будет работать, если к электронной почте обращаются с другого почтового клиента или мобильного устройства. Так же, невозможно управлять ими через EMS (Exchange managment Shell).
Чтобы проверить, является ли правило на стороне сервера или на стороне клиента, вы можете использовать окно «Управление правилами и оповещениями» в Outlook. К клиентским правилам добавляется (только клиент) к имени правила, а к серверным правилам ничего не добавляется:
Управление правилами Outlook с помощью EMS
Начиная с Exchange Server 2010, Microsoft предоставила возможность использовать EMS (Exchange management Shell)
для удаленного управления правилами Outlook. Для этого используются следующие командлеты:
Get-InboxRule
— просмотр имеющихся правил в указанном почтовом ящике.New-InboxRule
— удаленное создание правил.Enable-InboxRule
иDisable-InboxRule
— используются для включения\отключения правил.Set-InboxRule
— изменение правилRemove-InboxRule
— удаление правил.
Просмотр правил (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>
ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ
Перезвоните мне пожалуйста 8 (812) 200-42-35 Алексей.
Спасибо за тему!
Как раз искал по работе с правилами инфу. На технете информация есть, да и с командлетами вроде все понятно. Но только здесь все в примерах хорошо «разжевано», еще раз спс !!