понедельник, 23 мая 2011 г.

Exchange 2010 Remote Management - часть2

imageРазобравшись с графической консолью, пойдем дальше и посмотрим, как же подключиться к серверу при помощи Exchange Management Shell.

Подключение к Exchange Management Shell (EMS)

Что касается EMS, то тут нужно знать, что командная консоль сервера Exchange 2010 всегда подключается к нему через виртуальный каталог IIS (http://YourMailServer/PowerShell), независимо от того, локально вы работаете, или удаленно.

Существует два основных различия запуска EMS на удаленном компьютере, и зависят они от того, установлены Management Tools на компьютер или нет.

Подключение к EMS при наличии Management Tools

Если вы запускаете EMS с компьютера, на котором уже установлены Средства управления Exchange (Management Tools), то происходит примерно следующее:

  • Загружается оснастка Microsoft.Exchange.Management.PowerSell.E2010.
  • Выполняется скрипт RemoteExchange.ps1, который импортирует некоторые специфичные функции Exchange.
  • Выполняется функция Connect-ExchangeServer, которая инициирует удаленное подключение к сессии PowerShell на локальном сервере, если локально сервер Exchange найден не будет, то будет предпринята попытка подключиться сначала к CAS серверу в том же сайте, затем к серверу с ролью Mailbox, потом к HUB и только в последнюю очередь к UM.
  • После подключения к серверу Exchange, в PowerShell сессию импортируются доступные командлеты и параметры.

Примечание: Чтобы подключиться к другому серверу Exchange из уже открытой сессии EMS, нужно самостоятельно запустить функцию Connect-ExchangeServer, указав ей параметр –auto для автоматического поиска сервера, либо параметром –ServerFQDN для подключения к конкретному серверу.

Подключение к EMS без Management Tools

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

  • Создание сессии PowerShell;
  • Импорт созданной серверной сессии в локальную сессию PowerShell.

Для создания новой сессии используем командлет New-PSSession, при этом, если вы хотите подключиться к серверу под той учетной записью, с которой работаете сейчас, то учетные данные пользователя указывать не обязательно, если же нужно использовать учетные данные другого пользователя, то их следует указывать в параметре Credential, предварительно получив командлетом Get-Credential. При этом нужно знать, что по умолчанию сервер производит аутентификацию при помощи Kerberos. Чтобы использовать другой метод аутентификации, его нужно указать в параметре Authentication. В результате команда может выглядеть примерно следующим образом:

$session=New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://YourMailServer/powershell -Credential (Get-Credential)

img5

Рис.5: Создание новой сессии PowerShell.

Примечание: Компьютер, с которого происходит подключение, должен входить в домен и при этом на нем необходимо разрешить выполнение загруженных скриптов, подписанных доверенным центром сертификации, делается это при помощи команды Set-ExecutionPolicy RemoteSigned. По умолчанию стоит режим Restricted, запрещающий выполнение любых скриптов.

Далее нужно будет импортировать серверную сессию в локальную сессию PowerShell. Для этого воспользуемся командлетом Import-PSSession:

Import-PSSession $session

Во время импорта сессии произойдет копирование доступных пользователю командлетов и параметров (см. рис.6)

img6

Рис.6: Импорт сессии и копирование командлетов.

Когда процесс завершится, в разделе ExportedCommands можно увидеть список импортированных командлетов. Также список доступных командлетов можно получить при помощи команды Get-Command.

Теперь можно работать так, как будь-то вы находитесь непосредственно на удаленном сервере.

После завершения работы нужно не забыть разорвать установленную сессию командой

Remove-PSSession $session

Автоматизация подключения к серверу Exchange через PowerShell

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

Я вижу, по крайней мере, два пути решения этой задачи:

1. Сохранить в виде скрипта (например, c:\EMS.ps1) описанные выше команды создания сессии PowerShell и импорта её к себе в локальную сессию и запускать этот скрипт каждый раз, когда нужно подключиться к серверу Exchange. При этом при запуске скрипта нужно использовать ярлык, в котором будет указана следующая команда:

powershell.exe -NoExit -command c:\EMS.ps1

Примечание: Параметр –NoExit необходим, чтобы окно PowerShell не закрывалось после выполнения скрипта.

2. Либо импортировать запуск Exchange Management Shell прямо в профиль PowerShell пользователя, таким образом, чтобы каждый раз при запуске PowerShell у вас происходило автоматическое подключение к Exchange. Делается это следующим образом:

Если профиль PowerShell у вас ещё не создан, то создать его нужно командой

New-Item -Path $profile -ItemType file -force

В результате будет создан файл Microsoft.PowerShell_Profile.ps1, в который можно будет добавить необходимые команды. Отредактировать файл профиля проще всего в блокноте, выполнив команду notepad $profile.

Далее опять есть два пути добавления Exchange Management Shell в профиль и зависят они снова от наличия Management Tools:

  • Если Management Tools не установлены, то просто добавим ранее описанные команды создания удаленной сессии PowerShell и её импорта в локальную сессию в профиль PowerShell:

$session=New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://YourMailServer/powershell -Credential (Get-Credential)

Import-PSSession $session

  • Если же Exchange Management Tools есть в наличии, то правильнее будет интегрировать Exchange Management Shell в сессию PowerShell таким же образом, каким она открывалась бы самостоятельно при запуске через соответствующий ярлык. Для этого нужно в профиль добавить те действия, речь о которых шла в самом начале этого раздела:

Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010

. $env:ExchangeInstallPath\bin\RemoteExchange.ps1

Connect-ExchangeServer -auto

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

Заключение

Итак, в двух частях мы рассмотрели вопросы удаленного подключения, как к графической, так и к командной консоли управления сервером Exchange 2010. Надеюсь, теперь ваша работа с Exchange Server 2010 станет ещё комфортнее и продуктивнее.

Часть 1

1 комментарий:

Alexandr Elizarov комментирует...

Спасибо за статью довольно доходчиво все описано.

Отправить комментарий