Тестируем работоспособность Exchange 2007 с помощью PowerShell

exchange2007logo-2-thumbПосле того как вы установили и настроили Exchange 2007 требуется проверить работоспособность работы служб, расположенных на сервере.

Для исполнения задуманного компания Microsoft включила в Exchange Server 2007 несколько инструментов. Практически все эти инструменты запускаются в командной оболочке PowerShell и у них нет GUI интерфейса.

Не смущайтесь – работать с ними очень просто 🙂

(если нужны подробности – наверное лучше будет заглянуть сюда http://technet.microsoft.com/ru-ru/library/bb124558.aspx )

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

Для тестирования нужно запустить Power Shell:

Пуск-> Все программы -> Exchange Server 2007  -> Командная консоль Exchange

Общее правило достаточно просто:

1. Все команды в Power Shell предназначенные для тестирования начинаются с параметра Test- . То есть вы можете набрать Test- и несколько раз нажимать TAB. Нажимая TAB вы Сможете последовательно перебрать все командлеты начинающиеся с Test-  (как понимаете, данное правило распространяется на все командлеты Power Shell).

2. Если вы тестируете какую-то службу на сервере – то запускайте соответствующий командлет на этом сервере.

3. Командлеты можно запускать с параметром Server  указав целевой сервер назначения.

4. Предварительно наберите  help имя-командлета для того чтобы посмотреть справку по нему.

Все командлеты, которые вы можете использовать, перечислены ниже:

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

Test-SystemHealth Проверяет общую конфигурацию Exchange организации

Test-OutlookWebServices Тестирует параметры службы автообнаружения (Autodiscover)

Test-WebServicesConnectivity Проверяет работоспособность Outlook Anywhere

Test-MapiConnectivity Проверяет почтовый ящик на предмет возможности корректного входа

Test-ExchangeSearch Тестирует службу индексации содержимого на предмет корректной функциональности

Test-OwaConnectivity Проверяет Outlook Web Access на предмет корректной работы

Test-ActiveSyncConnectivity Тестирует конфигурацию ActiveSync для почтового ящика

Test-EdgeSynchronization Тестирует статус синхронизации подписанных серверов Edge Transport

Test-ImapConnectivity Тестирует IMAP4 службу на предмет корректной функциональности

Test-Mailflow Тестирует отправку и получение электронной почты

Test-PopConnectivity Проверяет POP3 службу на предмет корректной функциональности

Test-IPAllowListProvider Тестирует конфигурацию IP Allow List провайдера

Test-IPBlockListProvider Тестирует конфигурацию IP Block List провайдера

Test-ReplicationHealth Проверяет здоровье репликации групп хранения

Test-SenderId Проверяет обработку ID отправителя

Test-UMConnectivity Проверяет работу сервера единой службы сообщений (Unified Messaging)


Теперь немного поподробнее ….

1. Test-ServiceHealth

Позволит быстро проверить есть ли необходимые службы  и запущенны ли они. Можно запускать Test-ServiceHealth без всяких параметров для проверки локального сервера, либо запускать с параметром Server для проверки какого то другого удаленного сервера.


2. Test-OutlookWebServices

Предназначена  для проверки службы авто обнаружения  Autodiscover.  Для того, чтобы эта служба корректно работала, вы должны использовать правильные имена  Subject Alternate Names в вашем сертификате, а также все настройки данного сертификата должны быть верными и также все они должны быть завершены. Если вы это не сделаете, то процесс Autodiscover работать не будет. Проще говоря: если вы не настроите правильно ваш сертификат – Autodiscover работать не будет. Для чего нужна Autodiscover, вы можете почитать на TechNet. Если данный сервис не работает – вас, как системного администратора, ждут множественные проблемы 🙂

Настройка Autodiscover проверяется с помощью команды Test-OutlookWebServices. Служба Autodiscover работает на роли сервера клиентского доступа (Client Access Server),  запускать этот командлет нужно на том сервере,  на котором установлена роль Client Access Server.

Для проверки сервера вы можете запустить командлет с параметром fl (format-list). Это позволит вывести максимальное количество информации:

Test-OutlookWebServices | fl

3. Test-MAPIConnectivity

Пользователи внутри вашей сети подключаются к серверу скорее всего через программу Outlook. Программа Outlook использует подключение через MAPI. Данный командлет имитирует подключение клиента к вашему серверу через MAPI.  например, пользователь Иванов Иван с учетной записью ivanov жалуется что не может подключиться к серверу через Outlook. Для проверки вы можете набрать:

Test-MAPIConnectivity -identity ivanov

Данную команду следует запускать на сервере с ролью “mailbox” (то есть с ролью почтовых ящиков). Если пользователи внутри сети на могут подключиться к Exchange, то  у вас скорее всего проблемы с MAPI.

4. Test-ExchangeSearch

Данный командлет проверяет службу индексирования содержимого. У меня проблем с этой службой никогда не возникало. Если командлет выдаст ошибку, то исправляется ситуация очень просто:

1. останавливается служба индексирования

2. удаляется индекс

3. запускается служба индексирования

После чего индекс строится заново.

Запускается командлет так:

Test-ExchangeSearch -Server ServerName

где ServerName – имя удаленного сервера.

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

5. Test-OwaConnectivity

Данный командлет проверяет виртуальные директории OWA на сервере.Команду следует запускать с определенными параметрами. желательно предварительно набрать help  Test-OwaConnectivity и почитать что эта команда умеет и как ее запускать (выведет очень много справочной информации). В общем случае (к примеру можно запустить ее так:

Test-OwaConnectivity -URL https://exch-server/owa -MailboxCredential (Get-Credential MYFIRMA\Administrator) -TrustAnySSLCertificate

Данная команда проверяет виртуальные директории на вашем сервере.

Обратите внимание на https://exch-server/owa    – используется сертификат.

6. Test-OwaConnectivity

Данный командлет предназначен для проверки работоспособности Outlook Any Where.

Test-WebServicesConnectivity -ClientAccessServer MyServername -MailboxCredential (Get-Credential MYFIRMA\Administrator)

Проверяет работоспособность сервера с ролью ClientAccess с именем MyServername

Учетная запись для проверки MYFIRMA\Administrator