Ограничения в Microsoft Exchange Server
Статья представляет из себя шпаргалку по различным ограничениям в почтовом сервере Exchange и способам изменения данных лимитов.
Размеры писем и вложений
Квоты на почтовые ящики
Количество получателей
Число мобильных устройств
Длина атрибутов
Количество писем
Настройка таймаута сессии в OWA
1. Ограничение на размер письма (вложения)
При отправке и получении писем, Exchange не пропускаем письма больших размеров (как правило, из-за тяжелого вложения). Это помогает предотвратить переполнение почтовых баз и замедление скорости работы. Однако, значения по умолчанию, скорее всего, не будут для нас оптимальными и необходимо будет их сменить.
Данный лимит может задаваться на 3-х уровнях. Разберем, как их можно посмотреть и поменять.
1) Транспорт организации. Глобальный уровень. Имеет наименьший приоритет.
Посмотреть заданные значения можно командой:
Get-TransportConfig | fl MaxSendSize, MaxReceiveSize
* где MaxSendSize — максимальный размер отправляемого письма; MaxReceiveSize — принимаемого.
Задать значения можно командой:
Set-TransportConfig -MaxSendSize 70MB -MaxReceiveSize 70MB
2) Коннектор. Настраивается на отдельном сервере Exchange. Приоритет выше, чем у транспорта организации. Коннекоторов может быть несколько — вывести их список можно командой:
Get-ReceiveConnector
* коннекторы приемки для всех серверов Exchange.
Get-SendConnector
* коннекторы отправки.
После мы можем посмотреть ограничение на объем письма для коннектора, например:
Get-ReceiveConnector "Exchange01\Connector02" | fl MaxmessageSize
* в данном примере мы увидим ограничение для коннектора Connector02 на сервере Exchange01.
Теперь, чтобы изменить ограничение для коннектора вводим команду:
Set-ReceiveConnector "Exchange01\Connector02" -MaxMessageSize 73Mb
* коннектор приемки Connector02 на сервере Exchange01 будет пропускать сообщения объемом 73 Мб.
3) Почтовый ящик. Максимальный приоритет. Посмотреть ограничение для пользователя можно командой:
Get-Mailbox user1 | fl MaxSendSize, MaxReceiveSize
* по умолчанию, ограничение выставлено в значение unlimited. Таким образом, контроль выполняется на уровне коннекторов и транспорта.
Задать индивидуальное ограничение для пользователя можно командой:
Set-Mailbox user1 -MaxSendSize 75MB -MaxReceiveSize 75MB
Размер вложения
Справедливости ради, нужно заметить, что вышеописанный способ по ограничению объема отправляемого письма накладывает лимит на все сообщение в целом (и текст, и вложение). Но в Exchange можно создать транспортное правило, которое будет проверять размер именно вложения.
Правило можно создать командой:
New-TransportRule -Name AttachmentLimit -AttachmentSizeOver 65MB -RejectMessageReasonText "Sorry, messages with attachments over 65 MB are not accepted."
* в данном примере, если размер вложения будет больше 65 Мб, почтовый сервер вернет ошибку и отклонит отправку.
2. Дисковые квоты на почтовые ящики
Ограничения на занимаемый объем почтового ящика могут быть заданы на уровне базы данных, в которой находится ящик, а также для на уровне самого ящика. Последний имеет приоритет.
Get-Mailbox -Identity "Кузнецов Кузнец Кузнецович" | fl IssueWarningQuota, ProhibitSendQuota, ProhibitSendReceiveQuota, UseDatabaseQuotaDefaults
* в данном примере мы увидим настройку квоты для пользователя Кузнецов Кузнец Кузнецович. IssueWarningQuota — квота, при достижении которой Exchange отправит уведомление; ProhibitSendQuota — при достижении будет запрещена отправка; ProhibitSendReceiveQuota — при достижении будет запрещена отправка и получение; UseDatabaseQuotaDefaults — используется ли квота базы данных или для пользователя используются индивидуальные настройки.
Для того, чтобы узнать установленные квоты на уровне базы вводим команду:
Get-MailboxDatabase | fl Name, *Quota
В ответ мы получим список баз данных и установленные для них квоты, например:
Name : MailDatabase1
ProhibitSendReceiveQuota : 5 GB (5,368,709,120 bytes)
ProhibitSendQuota : 4.883 GB (5,242,880,000 bytes)
RecoverableItemsQuota : 30 GB (32,212,254,720 bytes)
RecoverableItemsWarningQuota : 20 GB (21,474,836,480 bytes)
IssueWarningQuota : 4.785 GB (5,138,022,400 bytes)
* где:
- Name — имя базы данных.
- ProhibitSendReceiveQuota — квота, при достижении которой будет запрещена отправка и получение.
- ProhibitSendQuota — квота, при достижении которой будет запрещена отправка.
- RecoverableItemsQuota — квота для папки RecoverableItems (с удаленными данными, которые можно восстановить в течение определенного периода).
- RecoverableItemsWarningQuota — квота для папки RecoverableItems, при достижении которой Exchange отправит уведомление.
- IssueWarningQuota — квота, при достижении которой Exchange отправит уведомление.
Задать квоту можно следующими командами.
а) Для базы данных:
Set-MailboxDatabase Database12 -ProhibitSendReceiveQuota '11 GB' -ProhibitSendQuota '10 GB' -IssueWarningQuota '9 GB'
* в данном примере мы задаем параметры квоты для базы Database12.
б) Для пользователя:
Set-Mailbox -UseDatabaseQuotaDefaults $false -IssueWarningQuota '4 GB' -ProhibitSendQuota '5 GB' -ProhibitSendReceiveQuota '6 GB' -Identity "Кузнецов Кузнец Кузнецович"
* в данном примере мы изменим квоту для пользователя Кузнецов Кузнец Кузнецович. Обратите внимание, чтобы учитывалась индивидуальная квота, необходимо задать значение для параметра UseDatabaseQuotaDefaults равное $false.
3. Ограничение количества получателей
По умолчанию, Exchange принимает ограниченное количество адресатов в одном письме. Данная настройка применяется к коннектору приемки или уровне транспорта. Посмотреть ее можно командой:
Get-ReceiveConnector "Server01\Connector02" | fl MaxRecipientsPerMessage
* в данном примере мы увидим настройку для коннектора Connector02 на сервере Server01.
Get-TransportConfig | fl MaxRecipientEnvelopeLimit
* а данная команда покажет максимальное число получателей в сообщении для организации Exchange.
Задать новое значение для коннектора можно командой:
Set-ReceiveConnector "Server01\Connector02" -MaxRecipientsPerMessage 201
Для организации:
Set-TransportConfig -MaxRecipientEnvelopeLimit 5001
4. Ограничение на количество подключаемых мобильных устройств
По умолчанию, каждый пользователь Exchange может подключить к серверу 10 мобильных устройств. Если пользователь превысит данный лимит, очередной девайс не сможет быть подключен с ошибкой «максимальное количество разрешенных связей: 10».
Данная настройка задается политикой ThrottlingPolicy, посмотреть настройку можно командой в Powershell для Exchange:
Get-ThrottlingPolicy Default* | fl Name, EASMaxDevices
Изменить настройку можно для всех пользователей командой:
Set-ThrottlingPolicy DefaultThrottlingPolicy_4a035731-ff53-4a6b-b241-0a979c050eef -EASMaxDevices 15
* где DefaultThrottlingPolicy_4a035731-ff53-4a6b-b241-0a979c050eef — полное имя политики в нашей системе; EASMaxDevices — количество максимально подключаемых устройств.
Также, мы можем применить настройку к конкретному пользователю. Для этого создадим новую ThrottlingPolicy:
New-ThrottlingPolicy -Name NewEASMaxDevicesPolicy -EASMaxDevices 50
* в данном примере мы создадим новую политику со значениями по умолчанию для всех опций, кроме EASMaxDevices. Последняя будет равна 50.
... и применим политику к пользователю:
Set-ThrottlingPolicyAssociation -Identity dmosk -ThrottlingPolicy NewEASMaxDevicesPolicy
* где dmosk — пользователь в Exchange, к которому мы применяем новую политику NewEASMaxDevicesPolicy.
5. Ограничение на длину атрибута
Может сложиться ситуация, при которой размер атрибута пользователя в AD может оказаться больше, чем в Exchange. Например, при попытке выполнить команду для почтового ящика, пользовать которого имеет длину поля «Отдел» более 64 символов, мы получим ошибку:
ПРЕДУПРЕЖДЕНИЕ: Объект dmosk.local/Пользователи/Капустов Морковка Лукович поврежден и находится в несогласованном состоянии. При проверке выявлены следующие ошибки:
ПРЕДУПРЕЖДЕНИЕ: Длина свойства слишком велика. Максимальная поддерживаемая длина 64, длина заданного значения свойства 71.
* в данном примере есть пользователь Капустов Морковка Лукович, у которого атрибут пользователя имеет несовместимую с Exchange длину.
Чтобы изменить поведение консоли, необходимо сделать 2 действия:
1. С помощью ADSI Edit подключаемся к схеме AD и изменяем значения rangeUpper для атрибутов CN=Department и CN=ms-Exch-Shadow-Department. Например, на 256:
* обратите внимание, что в нашем примере меняются параметры для отображения длины атрибута «Отдел».
Ждем около 15 минут, если используется инфраструктура Active Directory с несколькими доменами.
2. В каталоге Exchange Server (например, для 2010 это может быть C:\Program Files\Microsoft\Exchange Server\V14) открываем папку ClientAccess\ecp\RulesEditor и находим файл ADAttribute.aspx — открываем его в текстовом редакторе и находим строку:
<asp:TextBox ID="AttributeValue" MaxLength="64" runat="server" DataBoundProperty="Value" width="95%" helpId="ADAttributeValue"></asp:TextBox>
... и меняем значение MaxLength с 64 на, например, 256:
<asp:TextBox ID="AttributeValue" MaxLength="256" runat="server" DataBoundProperty="Value" width="95%" helpId="ADAttributeValue"></asp:TextBox>
Перезапускаем IIS командой:
iis reset
Данное действие нужно повторить для всех серверов MS Exchange.
6. Ограничение на количество писем
Контроль скорости сообщений
Мы можем задать скорость обработки входящих сообщений — количество сообщений в минуту. Это контролируется на уровне коннектора.
Посмотреть текущую настройку можно командой:
Get-ReceiveConnector "Exchange01\Connector02" | fl MessageRateLimit
* в данном примере мы узнаем ограничение скорости для Connector02 на сервере Exchange01. По умолчанию, скорость не лимитирована (значение unlimited).
Изменить данное значение можно командой:
Set-ReceiveConnector "Exchange01\Connector02" -MessageRateLimit 2000000
* так мы зададим ограничение на 2000000 писем в минуту для коннектора Connector02 на сервере Exchange01.
Контроль пропускной способности
Ограничения, которые влияют на пропускную способность почтового сервера Exchange можно посмотреть командой:
Get-TransportServer ExTransportServer | fl MaxConcurrentMailboxDeliveries, MaxConcurrentMailboxSubmissions, MaxConnectionRatePerMinute, MaxOutboundConnections, MaxPerDomainOutboundConnections, PickupDirectoryMaxMessagesPerMinute
* где:
- ExTransportServer — имя сервера с ролью Hub Transport или Edge.
- MaxConcurrentMailboxDeliveries — максимальное количество одновременных потоков, которое может открыть сервер для отправки писем.
- MaxConcurrentMailboxSubmissions — максимальное количество одновременных потоков, которое может открыть сервер для получения писем.
- MaxConnectionRatePerMinute — максимальное возможная скорость открытия входящих соединений в минуту.
- MaxOutboundConnections — максимальное возможное количество соединений, которое может открыть Exchange для отправки.
- MaxPerDomainOutboundConnections — максимальное возможное количество исходящих соединений, которое может открыть Exchange для одного удаленного домена.
- PickupDirectoryMaxMessagesPerMinute — скорость внутренней обработки сообщений в минуту (распределение писем по папкам).
Смена значений по умолчанию возможна командой:
Set-TransportServer ExTransportServer -MaxConcurrentMailboxDeliveries 21 -MaxConcurrentMailboxSubmissions 21 -MaxConnectionRatePerMinute 1201 -MaxOutboundConnections 1001 -MaxPerDomainOutboundConnections 21 -PickupDirectoryMaxMessagesPerMinute 101
7. Настройка таймаута сессии в OWA
Узнать текущие настройки таймаута сессии в OWA:
Get-OrganizationConfig | FL ActivityBasedAuthenticationTimeout*
Выключить таймаут сессии в OWA:
Set-OrganizationConfig -ActivityBasedAuthenticationTimeoutEnabled:$False -ActivityBasedAuthenticationTimeoutWithSingleSignOnEnabled:$False
Включить таймаут сессии в OWA:
Set-OrganizationConfig -ActivityBasedAuthenticationTimeoutEnabled:$True -ActivityBasedAuthenticationTimeoutWithSingleSignOnEnabled:$True
Изменить таймаут сессии в OWA:
Set-OrganizationConfig -ActivityBasedAuthenticationTimeoutInterval 00:30:00
Значение интервала таймаута можно установить только в интервале от 5 минут до 8 часов. Изменения применяются не сразу, а по прошествии некоторого времени (около 12 часов).