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

OSzone.net » Microsoft » Exchange Server » Exchange Server 2007 » Тестирование Exchange 2007 с помощью PowerShell
Автор: Нейл Хобсон
Иcточник: MSexchange.ru
Опубликована: 09.10.2008

После того как вы построили и настроили ваш новый Exchange 2007 сервер, одной из первых задач, которую вы всегда должны выполнять, является тщательное тестирование системы, прежде чем вы вносите в нее пользователей, даже ваших начальных пилотных пользователей. В этом случае можно будет разрешить любые возникшие проблемы до того, как они повлияют на пользователей. Компания Microsoft предоставила полный выбор команд Exchange Management Shell, которые можно использовать для тестирования различных служб и функций вашего сервера Exchange 2007, прежде чем вы введете его в эксплуатацию. Конечно, вы можете также использовать эти же команды во время рабочего цикла сервера, чтобы повторно тестировать функциональность в случае возникновения каких-либо сомнений по поводу корректности или оптимальности настройки сервера. Все эти команды начинаются с Test-.

В недавнем проекте я использовал различные команды Test- для тестирования конфигурации среды серверов Exchange 2007, которая была только что построена и сконфигурирована. В этой статье я рассмотрю некоторые команды, которые мне пришлось использовать. Я не буду рассматривать абсолютно все команды, которые можно использовать, так как их список довольно длинный. К тому же, каждая команда имеет несколько различных параметров, поэтому просто невозможно рассмотреть их все в одной статье. Я лишь надеюсь познакомить вас с самыми удобными командами тестирования, тем самым убедившись, что вы не забудете использовать их в следующий раз, когда вам придется тестировать только что созданный сервер Exchange 2007, или когда вы столкнетесь с проблемами в работе сервера.

В таблице 1 приведен список доступных команд, которые можно использовать в целях тестирования. Команды не будут рассматриваться в каком-то определенном порядке. В этой статье я рассмотрю команды Test-ServiceHealth и Test-OutlookWebServices, а оставшиеся команды будут рассмотрены в следующей части.

Таблица 1: Список команд тестирования

Название команды Цель
Test-ActiveSyncConnectivity Тестирует конфигурацию ActiveSync для почтового ящика
Test-EdgeSynchronization Тестирует статус синхронизации подписанных серверов Edge Transport
Test-ExchangeSearch Тестирует службу индексации содержимого на предмет корректной функциональности
Test-ImapConnectivity Тестирует IMAP4 службу на предмет корректной функциональности
Test-IPAllowListProvider Тестирует конфигурацию IP Allow List провайдера
Test-IPBlockListProvider Тестирует конфигурацию IP Block List провайдера
Test-Mailflow Тестирует отправку и получение электронной почты
Test-MapiConnectivity Проверяет почтовый ящик на предмет возможности корректного входа
Test-OutlookWebServices Тестирует параметры службы автообнаружения (Autodiscover)
Test-OwaConnectivity Проверяет Outlook Web Access на предмет корректной работы
Test-PopConnectivity Проверяет POP3 службу на предмет корректной функциональности
Test-ReplicationHealth Проверяет здоровье репликации групп хранения
Test-SenderId Проверяет обработку ID отправителя
Test-ServiceHealth Проверяет все необходимые службы на предмет успешного запуска
Test-SystemHealth Проверяет общую конфигурацию Exchange организации
Test-UMConnectivity Проверяет работу сервера единой службы сообщений (Unified Messaging)
Test-WebServicesConnectivity Проверяет работоспособность Outlook Anywhere

Test-ServiceHealth

Давайте начнем с легкой команды, Test-ServiceHealth. С новыми ролями в Exchange 2007, одной из черт, изменившихся по сравнению с предыдущими версиями Exchange, является то, что Exchange сервер теперь имеет настроенные на нем различные службы, в зависимости от ролей, которые ему предстоит выполнять. К примеру, служба Microsoft Exchange Transport будет использоваться только на транспортных серверах, таких как роли Hub Transport или Edge Transport. В качестве быстрого способа проверки того, наличествуют ли необходимые службы, и, что более важно, запущены ли они, можно использовать Test-ServiceHealth команду.

Вы можете запустить команду Test-ServiceHealth на локальном сервере, чтобы протестировать локально установленные службы, или использовать параметр 'Server, чтобы обозначить целевой удаленный сервер. На рисунке 1 вы видите результаты использования этой команды на сервере Exchange 2007, на котором установлены роли Mailbox, Hub Transport и Client Access Server. Обратите внимание на то, как результаты разделены для каждой роли. Как вы видите, ключевая информация представлена в столбце RequiredServicesRunning, которая очевидно показывает, успешен тест или нет. Если какая-либо необходимая служба не работает, столбец RequiredServicesRunning будет указывать False для соответствующего имени служб, перечисленных в столбце ServicesNotRunning.

*

Рисунок 1: Стандартные результаты команды Test-ServiceHealth

Test-OutlookWebServices

Возможно, одной из наиболее запутанных областей в Exchange 2007 является настройка службы Autodiscover, если говорить точнее, область, связанная с именами сертификатов. Если неправильные имена Subject Alternate Names перечислены в сертификате или определенные настройки на завершены с помощью команды Exchange Management Shell, процесс Autodiscover работать не будет. В конечном счете, для пользователей Outlook 2007 это означает, что такие службы, как Offline Address Book будут недоступны. К счастью, настройка Autodiscover может быть проверена с помощью команды Test-OutlookWebServices. Поскольку служба Autodiscover работает на роли сервера клиентского доступа (Client Access Server), следует, что данную команду нужно запускать на Client Access Server.

Главным параметром в этой команде является 'Identity параметр, который используется для тестирования Outlook провайдера и принимает форму адреса электронной почты в семействе. Возьмем пример, показанный на рисунке 2, где результаты команды Test-OutlookWebServices были переданы в команду format-list. Использовалась следующая команда:

Test-OutlookWebServices 'Identity neil@neilhobson.com | fl

*

Рисунок 2: Test-OutlookWebServices результаты

Вы заметите в вышеприведенных результатах, что с AS (Availability Service), OAB (Offline Address Book) и UM (Unified Messaging) службами был успешно установлен контакт с помощью EXCH Outlook провайдера, используя локальное FQDN имя сервера, но эти же службы не настроены для пользователя через EXPR Outlook провайдера. Это показано в ошибке на рисунке 3.

Id      : 1015
Type    : Information
Message : [EXPR]- OAB is not configured for this user.

Рисунок 3: Отсутствует конфигурация EXPR Outlook провайдера

Эти результаты указывают на то, что некоторые элементы настройки не были завершены. Чтобы убедиться в том, что дело обстоит именно так, можно запустить команды Get-WebServicesVirtualDirectory, Get-OabVirtualDirectory и Get-UMVirtualDirectory, просмотреть результаты, где должно быть видно, что 'ExternalUrl параметр пуст. К примеру, посмотрите на рисунок 4, где была запущена команда Get-OabVirtualDirectory, а ее результаты были переданы в команду format-list cmdlet и отфильтрованы, чтобы показать только параметр ExternalUrl.

*

Рисунок 4: Результаты Get-OabVirtualDirectory

Параметр 'ExternalUrl контролирует URL, который Outlook использует для получения OAB при работе во внешней сети или при подключении вне домена. И наоборот, при работе во внутренней сети Outlook получает OAB через параметр 'InternalUrl, который по умолчанию будет иметь значение FQDN имя сервера клиентского доступа. Однако вам нужно будет вручную настроить параметр 'ExternalUrl, который в данном примере примет значение вроде https://autodiscover.neilhobson.com/oab. Я не собираюсь здесь подробно обсуждать службу Autodiscover, поскольку она не является целью статьи. Главное, что вам нужно усвоить из этой статьи, это то, что когда вы видите службу, отмеченную как 'не настроенную для этого пользователя' при использовании команды Test-OutlookWebServices, скорее всего один или более 'ExternalUrl параметров отсутствуют. Не забудьте, что существуют настройки для Availability Service, OAB и Unified Messaging. Таким образом, получается три команды, которые необходимо запустить, чтобы настроить внешний URL должным образом. Например, допустим, что имя сервера клиентского доступа будет CAS1, а внешнее доменное имя – neilhobson.com, три команды настройки будут следующими:

Set-WebServicesVirtualDirectory 'Identity 'CAS1\EWS (Default Web Site)'
'ExternalUrl https://autodiscover.neilhobson.com/EWS/Exchange.asmx
SetOabVirtualDirectory 'Identity 'CAS1\OAB (Default Web Site)'
'ExternalUrl https://autodiscover.neilhobson.com/oab
Set-UMVirtualDirectory 'Identity 'CAS1\UnifiedMessaging (Default Web Site)'
'ExternalUrl https://autodiscover.neilhobson.com/UnifiedMessaging/Service.asmx

Когда эти параметры были заданы, вы можете повторно запустить команду Test-OutlookWebServices, где вы должны получить результаты успешного тестирования, используя EXPR Outlook провайдера. Примерный результат того, что вы должны увидеть, показан на рисунке 5.

Id      : 1015
Type    : Success
Message : [EXPR]-Successfully contacted the OAB service at https://autodiscover
          .neilhobson.com/ews/exchange.asmx. The elapsed time was 0 milliseconds.

Рисунок 5: Успешное тестирование EXPR Outlook провайдера

Резюме

В первой части этой серии статей мы рассмотрели две команды Test-, которые вы можете использовать для проверки конфигурации и работоспособности вашего сервера Exchange 2007. Надеюсь, вы увидели, как такие команды как Test-OutlookWebServices, обеспечивают нас полезной информацией о тех областях конфигурации, которые не были завершены. Мы закончим рассмотрение этих команд во второй части данной серии статей.



В первой части этой серии статей я рассказал о некоторых командах оболочки Exchange Management Shell, начинающихся с Test-, которые можно использовать для настройки и управления вашими Exchange 2007 серверами, прежде чем размещать их в производственной среде. Конечно, эти команды можно также использовать для разрешения проблем, возникающих после того, как сервер был запущен в производство. В первой части этой серии статей мы рассмотрели команды Test-ServiceHealth и Test-OutlookWebServices. Во второй части мы рассмотрим команды Test-MAPIConnectivity, Test-ExchangeSearch, Test-OwaConnectivity, Test-WebServicesConnectivity, Test-PopConnectivity и Test-ImapConnectivity.

Test-MAPIConnectivity

Возможно, самым очевидным способом подключения клиента будет подключение через MAPI, для которого простой тест на подключаемость можно осуществить с помощью команды Test-MAPIConnectivity. Как вы, возможно, догадались, эта команда должна войти на почтовый ящик для тестирования функциональности, и поэтому вы можете использовать параметр ‘Identity, чтобы определить этот целевой почтовый ящик. Учитывая вышесказанное, если вы не укажете целевой почтовый ящик, команда войдет на системный почтовый ящик (SystemMailbox), имеющийся в каждой базе данных.

Также следует отметить, что вы можете использовать параметр ‘Database для указания конкретной базы данных, в которую вы хотите войти. Если этот параметр не задан, команда войдет во все базы данных на локальном сервере. Как и в случае со многими другими командами, вы можете использовать параметр ‘Server для контроля над тем, какой сервер вы хотите тестировать. Результаты использования этой команды показаны на рисунке 6. Действительная команда, результаты которой показаны на этом рисунке, была простой командой Test-MAPIConnectivity безо всяких дополнительных параметров, что означает, что команда вошла в обе базы данных на локальном почтовом сервере. Обратите внимание на период, указывающий задержку входа на каждый почтовый ящик.

*
Увеличить

Рисунок 6: Результаты Test-MAPIConnectivity

Если вы столкнулись с трудностями во время процесса входа на почтовый ящик, в столбце под названием Result будет прописано слово *FAILURE*, а в столбце Error будет дано описание ошибки. К примеру, в столбце Error будет написано Database is dismounted, если тестируемая база данных была демонтирована.

Test-ExchangeSearch

С тестированием подключаемости к почтовому ящику связано тестирование индексирования содержимого на предмет корректной работоспособности. Команда Test-ExchangeSearchможет использоваться для этого процесса, и работает она путем создания сообщения с прикрепленным документом, который можно найти только с помощью поисковой службы Exchange Search. Поскольку индексирование содержимого включено по умолчанию в Exchange 2007, определенно стоит протестировать возможность поиска и получения информации заблаговременно, прежде чем загружать сервер пользователями. Действительная используемая команда очень проста:

Test-ExchangeSearch ‘Server <SERVER>

На рисунке 7 показаны результаты выполнения этой команды без каких-либо дополнительных параметров. Как вы видите, команда ищет почтовый ящик SystemAttendant и осуществляет поиск на локальном сервере, поскольку никакого параметра ‘Server не было задано.

*
Увеличить

Рисунок 7: Прогресс Test-ExchangeSearch

По окончании процесса отображаются результаты, и, как видно из рисунка 8, элемент был успешно найден в течение девяти секунд. Одним из ключевых параметров команды Test-ExchangeSearch является параметр ‘IndexingTimeout, который контролирует то, насколько долго будет осуществляться процесс поиска необходимого элемента, прежде чем будет возвращен отчет об ошибке. Стандартный параметр составляет 120 секунд, что является достаточным временем для такого теста. Если вы снизите это значение, команда начнет поиск, как показано выше на рисунке 7 и, если время превышено, она немедленно остановит поиск и вернет отчет об ошибке, как показано на рисунке 8, где в колонке ResultFound будет написано False, а в колонке SearchTime будет написано -1.

*
Увеличить

Рисунок 8: Результаты Test-ExchangeSearch

Test-OwaConnectivity

Гораздо более сложная команда – это команда Test-OwaConnectivity. Причина, по которой я назвал эту команду очень сложной, заключается в том, что в ней есть гораздо больше параметров, которые можно использовать, чем для других команд, описанных в этой статье. По сути, команду Test-OwaConnectivity можно использовать для проверки всех виртуальных директорий OWA на сервере клиентского доступа (Client Access Server) или на одном URL. Давайте рассмотрим пример с одним URL.

Чтобы протестировать один URL, нужно использовать два основных параметра, при этом за раз можно использовать только по одному из этих параметров. Это ‘URL параметр и ‘TestType параметр. ‘URL параметр просто указывает OWA URL, который вы хотите проверить, в то время как ‘TestType параметр можно использовать для проверки внутреннего и внешнего OWA URL. По умолчанию ‘TestType параметр будет тестировать внутренний URL, но вы можете настроить его на тестирование внешнего URL путем ввода ‘TestType:External параметра.

Нам также необходимо учитывать мандаты, которые мы будем использовать для входа и тестирования подключаемости OWA. Это осуществляется с помощью параметра ‘MailboxCredential, в результате использования которого отображается диалоговое окно аутентификации, в котором вам нужно ввести подробности учетной записи. И последний параметр, который следует рассмотреть, это параметр ‘TrustAnySSLCertificate, который особенно полезен, когда вы тестируете внутренние URLs, поскольку в этих случаях типичным является соответствие имен сертификатов внешним URL, а не внутренним URL. Этот параметр эффективно обеспечивает ситуацию, в которой такие ошибки, как подтверждение сертификата, не остановят процесс тестирования OWA. Давайте посмотрим примерный случай, в котором мы тестируем локальный внутренний URL сервера Exchange 2007 под названием E2K7, используя мандаты учетной записи администратора и доверие любому SSL сертификату. Используем следующую команду:

Test-OwaConnectivity ‘URL https://E2K7/owa -MailboxCredential (Get-Credential NGH\Administrator) -TrustAnySSLCertificate

Результаты этой команды показаны на рисунке 9.

*
Увеличить

Рисунок 9: Результаты Test-OwaConnectivity

Как и в случае со многими другими командами, рассмотренными в этой статье, вы видите, что длительность процесса показывается наряду с общими успешными или ошибочными результатами. Если мы не будем использовать доверие любому SSL сертификату, и наш сертификат будет иметь имя, отличающееся от имени, используемого в параметре ‘URL, у нас появится ошибка следующего содержания:

‘WARNING: The test was unable to log on to Outlook Web Access because the SSL certificate did not validate.’

Ошибка показана на рисунке 10.

*
Увеличить

Рисунок 10: Ошибка Test-OwaConnectivity

Test-WebServicesConnectivity

Чтобы протестировать функциональность и настройку Outlook Anywhere, вы можете использовать команду Test-WebServicesConnectivity. Как и команда Test-OwaConnectivity эта команда тоже довольно сложная в силу наличия многих параметров. Однако на базовом уровне следующая команда может использоваться для тестирования Outlook Anywhere:

Test-WebServicesConnectivity ‘ClientAccessServer E2K7 ‘MailboxCredential (Get-Credential NGH\administrator)

Вы заметили, что мы снова использовали параметр Get-Credential, чтобы получить имя соответствующей учетной записи и пароль, и на этот раз мы работали с сервером клиентского доступа под названием E2K7. На рисунке 11 показаны результаты использования этой команды, где показаны различные выполнявшиеся тесты и длительность.

*
Увеличить

Рисунок 11: Результаты Test-WebServicesConnectivity

Эта команда также полезна в качестве руководства при решении проблем с настройками. К примеру, посмотрите на результаты на рисунке 12, где показано сообщение об ошибке, указывающее на проблемы с настройкой сертификата в конкретной системе.

*
Увеличить

Рисунок 12: Ошибка Test-WebServicesConnectivity

Test-PopConnectivity и Test-ImapConnectivity

Ни для кого не секрет, что команды Test-PopConnectivity и Test-ImapConnectivity используются для тестирования функциональности служб POP3 и IMAP4. Некоторые из ключевых параметров, используемых с этими командами, включают ‘ClientAccessServer и ‘MailboxCredential параметры для создания входа либо через POP3, либо через IMAP4. К примеру, команда, представленная ниже, вывела результаты, показанные на рисунке 13.

Test-PopConnectivity ‘ClientAccessServer E2K7 ‘MailboxCredential (Get-Credential NGH\Administrator)

*
Увеличить

Рисунок 13: Ошибка Test-PopConnectivity

И опять вы видите общий результат теста, а также его период. Глядя на столбец Error, становится довольно очевидно, в чем заключается проблема, поскольку служба POP3 отключена по умолчанию в новой установке Exchange 2007. Вот, что вы увидите при успешном тестировании.

*
Увеличить

Рисунок 14: Успешное выполнение Test-PopConnectivity

Ранее в этой статье мы рассматривали, как Test-ExchangeSearch команда использовала ‘IndexingTimeout параметр для управления тем, насколько долго тестирование ждало, прежде чем решить, что элемент не найден в хранилище информации. Обе команды Test-PopConnectivity и Test-ImapConnectivity также могут использовать параметр ‘Timeout для управления таймаутом, стандартное значение для этого параметра составляет 30 секунд. Я рекомендую вам изучить другие параметры, которые можно использовать с этими командами.

Параметр MonitoringContext

Если вы посмотрите на параметры, доступные для использования с командами Test, вы заметите один параметр, который будет повторяться в качестве опций для всех команд, а именно MonitoringContext параметр. Этот параметр обычно используется в Exchange Management Pack для Systems Center Operations Manager (SCOM). Этот параметр возвращает информацию о событиях осмотра, счетчики производительности и предоставленную информацию, которую мы видели в скриншотах на протяжении этих двух частей.

Если вы хотите видеть эту информацию в результатах команды, просто включите параметр MonitoringContext. Это простой логический параметр, а, следовательно, двумя возможными вариантами будут $true или $false. Если параметру MonitoringContext задано значение $true, вы будете получать дополнительную информацию, связывающую события осмотра и счетчики производительности. К примеру, на рисунке 15 показаны результаты команды Test-MAPIConnectivity, использованной с параметром MonitoringContext, который имеет значение $true. Обратите внимание, что все значения длительности даны в разделе PerformanceCounters, и не представляют собой округленные значения, которые мы видели ранее на рисунке 6.

*
Увеличить

Рисунок 15: Результаты Тest-MAPIConnectivity с параметром MonitoringContext

Резюме

В двух частях этой серии статей я представил вам несколько Test- команд, которые вы можете использовать для тестирования конфигурации и работы вашего Exchange 2007 сервера. Как я говорил в этой статье, существует множество дополнительных параметров, которые можно использовать, поэтому я настоятельно рекомендую вам изучить эти команды полностью и не забывать использовать их во время тестирования вашей Exchange среды.


Ссылка: http://www.oszone.net/7530/Exchange_2007_PowerShell