SCROLL

Статьи в категории «Exchange»

В этом посте я собираюсь поделиться тем, как настроить автоматический ответ или сообщение об отсутствии на рабочем месте в почтовом ящике пользователя.

В работе часто требуется заводить много внешних контактов в Exchange, руками делать это моветон, ниже опишу как я попытался автоматизировать этот процесс.

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

 

Рассмотрим как принудительно обновить автономную адресную книгу (OAB) на Exchange 2010 SP3.

 

Заходим в Консоль управления Exchange — Конфигурация организации — Почтовый ящик — Автономная адресная книга. Обновляем Автономную адресную книгу (OAB):

Или через консоль Exchange:

Get-OfflineAddressBook | Update-OfflineAddressBook

Обратил внимание что не обновляется автономная адресная книга в Exchange 2010 SP3.

В почтовом сервере Exchange 2010 при запуске тестовых команд, таких как Test-OutlookWebServices или Test-EcpConnectivity, требуется учетная запись Exchange Test.

 

Создается при помощи скрипта New-TestCasConnectivityUser.ps1 из каталога скриптов Exchange 2010 C:\Program Files\Microsoft\Exchange Server\V14\Scripts.

 

При попытке выполнить скрипт New-TestCasConnectivityUser.ps1, я получил ошибку Mailbox could not be created. Verify that OU ( Users ) exists and that password meets complexity requi rements., которая означает, что не может быть найден OU Users, либо бы заданный пароль не соответствует требованиям сложности:

[PS] C:\Program Files\Microsoft\Exchange Server\V14\scripts>.\new-TestCasConnectivityUser.ps1

Введите временный безопасный пароль для создания тестовых пользователей. Если установлен диспетчер SCOM, в целях обеспе
чения безопасности будет регулярно производиться автоматическое изменение пароля. Если диспетчер SCOM не установлен, па
роль необходимо изменять вручную.
Ввести пароль: **********
Создать тестовых пользователей: CAS1.domain.local
Нажмите сочетание клавиш CTRL+Break для выхода или клавишу ВВОД для продолжения.:
CreateTestUser : Mailbox could not be created. Verify that OU ( Users ) exists and that password meets complexity requi
rements.
C:\Program Files\Microsoft\Exchange Server\V14\scripts\new-TestCasConnectivityUser.ps1:267 знак:31
+ $result = CreateTestUser <<<< $exchangeServer $mailboxServer $securePassword $OrganizationalUnit $UMDialPlan $
UMExtension $Prompt
+ CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorException
+ FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,CreateTestUser

 

Недавно столкнулся с интересной проблемой при отправке сообщения на внешний e-mail из OTRS (Open-source Ticket Request System) при использовании почтового сервера на базе MS Exchange 2010 SP3.

 

На почтовом сервере MS Exchange 2010 для OTRS создан отдельный Соединитель получения (HubTransport), в котором разрешены анонимные подключения.

 

Все отлично работает при отправки сообщений из OTRS на внутренние e-mail адреса, но при попытке отправить сообщение на какой либо внешний e-mail (к примеру мне понадобилось подключить агента к OTRS, у которого нет внутри корпоративного e-mail) я получаю ошибку 550, 5.7.1 Unable to relay!.

Давно у меня зрела идея, создания какого либо удобного инструмента для получения различного рода информации с имеющегося в работе почтового сервера, на базе MS Exchange 2010 SP3.

 

Перед новым годом, выдались спокойные деньки и я решил что пока начинать реализацию своей задумки.

 

Цель которую я преследую в создании данного продукта, это упрощение сбора различной информации с почтового сервера (прим. квоты пользователей, размеры почтовых ящиков и баз данных и т.д. т.д..), обработка ее и дальнейшие дейтсвия с ней.  Если проект будет востребован, не только мной, но и другими пользователями, то совместными идеями, можно реализовать интересные вещи в итоговом продукте.

 

По итогу прошедшей  недели разработки, у меня уже готова базовая основа проекта, реализованы некоторые механизмы, на которых остановимся по подробней немного.

 

Приложение для связи с почтовым сервером и получения от него какой либо информации от него, используется оболочка powershell. Полученная информация обрабатывается и формируется в табличном виде, для возможности дальнейшей работы с ней (тут можно уже фантазировать над всевозможным функционалом).

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

В работе имеется почтовый сервер на базе MS Exchange 2010 SP3. Необходимо в пользовательских почтовых ящиках, в корневой папке (Входящие), создать пользовательскую папку.

 

Задачу будем решать при помощи Microsoft Exchange Web Services Managed API 2.0 и скрипта написанном на PowerShell.

 

Скачиваем с оф. сайта Microsoft Exchange Web Services Managed API 2.0 . Устанавливаем на сервер, на котором развернут почтовый сервер Exchange.

 

Теперь необходимо назначить роль «ApplicationImpersonation«, для пользователя от имени которого будет выполнятся подключение к EWS. Выполним команду в EMS (Exchange Managment Shell):

New-managementroleassignment –Role "ApplicationImpersonation" –user administrator

В один прекрасный момент заметил что почта прекратила ходить, причиной тому стала нехватка свободного места на локальном диске, на котором располагаются почтовые базы данных Exchange Server:

 

Каталоги в которых располагаются базы данных Exchange Server, были заполнены отработанными лог-файлами/журналами транзакций:

Рассмотрим как делать резервную копию баз данных MS Exchange Server 2010, используя оснастку Windows Server Backup в Windows Server 2012 R2.

 

Резервное копирование выполняется с помощью VSS (Volume Shadow Copy Service), с условием полной архивацией указанного тома. Только с этими условиями, сделанная резервная копия будет считаться корректной, в базы данных будет записана информация о времени выполнении резервной копии, а так же удалятся логи транзакций журналов Exchange.

 

Если оснастка Windows Server Backup не добавлена в систему, добавляем ее с помощью мастера добавления ролей и компонентов:

В этой статье я рассматривал как выполнить единичный запрос на экспорт почтового ящика посредством Exchange Managment Shell. Сейчас же появилась необходимость в инструменте, для массового экспорта указанных почтовых ящиков в автоматическом режиме.

 

Решать данную задачу будем с помощью скрипта для Powershell. Задача скрипта:

  • Возможность выполнять одиночный экспорт указанного почтового ящика
  • Возможность выполнять массовый экспорт, указанных почтовых ящиков

 

[stextbox id=’warning’]По-умолчанию в PowerShell включена максимальная политика безопасности, которая позволяет выполнять команды PowerShell в командной строке, но не позволяет в той же командной строке выполнить скрипт с командами PowerShell. Разрешить выполнение скриптов в Powershell:

powershell -Command Set-ExecutionPolicy RemoteSigned[/stextbox]

Ниже представлен листинг получившегося у меня скрипта. Скрипт с комментариями, разобраться в нем не должно составить труда:

Появилась необходимость в создании NO-REPLY электронного адреса (прим. no-reply@example.com), для отправки пользователями, различного рода информацию клиентам, но не с их собственным адресом электронной почты и без возможности получения ответов на отправленные письма (односторонняя связь).

 

Все действия будут производится в AD (Windows Server 2012 R2) и MS Exchange 2010 SP3 (Windows Server 2012 R2).

 

Переходим в оснастку «Пользователи и компьютеры» и добавляем нового пользователя (NO-REPLY), с параметрами запрета смены пароля и без срока ограничения действия пароля:

Во время работы MS Exchange 2010 SP3 забирает под себя всю доступную оперативную память и если необходимо, отдает ее другим службам и приложениям. Зарезервированная оперативная память выделяется под создание кеша для дисковой подсистемы базы данных Exchange.

 

Таблица значений размеров кэша базы данных по умолчанию для Exchange 2010 (Exchange 2010 Limiting Database Cache)

Физическая память на сервере (ОЗУ) Размер кэша базы данных (только Mailbox) Размер кэша базы данных (с несколькими ролями)
2GB 512 MB Not Supported
4GB 1 GB Not Supported
8GB 3.6 GB 2 GB
16GB 10.4 GB 8 GB
24GB 17.6 GB 14 GB
32GB 24.4 GB 20 GB
48GB 39.2 GB 32 GB
64GB 53.6 GB 44 GB
96GB 82.4 GB 68 GB
128GB 112.2 GB 92 GB

 

Иногда случается так что Exchange перестает следовать этой таблице и правилом отдачи оперативной памяти под нужны системы или других приложений. Это приводит с снижению производительности системы, самого Exchange сервера и полному зависанию.

При отключении или удалении почтового ящика в MS Exchange 2010 SP3, он помечается как «Отключенный» (Disable) и «Удаленный» (SoftDeleted). При этом сам ящик физически будет по прежнему находится в базе данных, в течении установленного времени хранения (по-молчанию 14 дней).

 

При помощи консольной оснастки Exchange Management Shell (Командлет Remove-StoreMailbox), можно удалить помеченный как «Отключенный», «Удаленный» немедленно.

 

Отобразить все почтовые ящики на сервере, помеченные как «Отключенные» (Disabled), выполним команду:

Get-MailboxStatistics -Server EXCHANGE | where {$_.DisconnectReason -eq "Disabled"} | Select DisplayName, MailboxGuid, Database

DisplayName    MailboxGuid                                  Database
-----------    -----------                                  --------
Студент        8bcb9ac4-c2d8-4089-8d3d-e80a82a6ca50         USER

Отобразить все почтовые ящики на сервере, помеченные как «Удаленные» (SoftDeleted), выполним команду:

Get-MailboxStatistics -Server EXCHANGE | where {$_.DisconnectReason -eq "SoftDeleted"} | Select DisplayName, MailboxGuid, Database

Получение информации о размере почтового ящика, можно получить как в графической оснастке Exchange Managment Console, так и через консольную оснастку Exchange Management Shell.

 

При просмотре свойств почтового ящика через графическую оснастку, мы получаем довольно скудную информацию:

После установки в IIS перенаправления URL-адреса с HTTP на HTTPS, перестала скачиватся автономная адресная книга (OAB).

Имеется развернутый почтовый сервер Microsoft Exchange Server 2010, который находится в бэкэнде локальной сети. На фронтэнде находится веб-сервер Apache на базе Debian 8.

Рассмотрим как импортировать/экспортировать почтовые ящики пользователей в MS Exchange 2010 SP3.

 

Импортирование/Экспортирование почтовых ящиков в Exchange 2010 SP3, осуществляется посредством Exchange Managment Shell (Командлеты New-MailboxImportRequest и New-MailboxExportRequest). Для возможности импорта/экспорта почтовых ящиков, необходимо выдать пользователю разрешение.

 

Добавление прав доступа

В Active Directory в подразделении Microsoft Exchange Security Groups создаем глобальную группу Mailbox Import Export и добавляем в нее пользователей, которым будет разрешено импортировать/экспортировать почтовые ящики.

 

 

Рассмотрим практический перенос почтового сервера на базе MS Exchange 2010 SP3, с одного сервера (Windows Small Business Server 2011) на другой (Windows Server 2012 R2).

 

Исходные данные:

  • Windows Small Business Server 2011 (OLD_MAIL) + MS Exchange 2010 SP2 (Mailbox Role, Client Access Role, Hub Trunsport Role)
  • Windows Server 2012 R2 (NEW_MAIL)

 

План переноса:

  1. Установка MS Exchange 2010 SP3 с ролями (Mailbox Role, Client Access Role, Hub Trunsport Role) на Windows Server 2012 R2 (NEW_MAIL)
  2. Создание базы данных на сервере NEW_MAIL, подключение ее.
  3. Перенос почтовых ящиков в базу данных на сервер NEW_MAIL из базы данных с сервера OLD_MAIL.
  4. Перенос общих папок (Public Folders), выполнение репликации с сервера OLD_MAIL на NEW_MAIL.
  5. Перенос системных почтовых ящиков
  6. Перенастраиваем всех коннекторы отправки/получения, OWA и т.д. на NEW_MAIL
  7. Вывод из эксплуатации (удаление) старого сервера (OLD_MAIL).