Разобравшись с графической консолью, пойдем дальше и посмотрим, как же подключиться к серверу при помощи 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)
Рис.5: Создание новой сессии PowerShell.
Примечание: Компьютер, с которого происходит подключение, должен входить в домен и при этом на нем необходимо разрешить выполнение загруженных скриптов, подписанных доверенным центром сертификации, делается это при помощи команды Set-ExecutionPolicy RemoteSigned. По умолчанию стоит режим Restricted, запрещающий выполнение любых скриптов.
Далее нужно будет импортировать серверную сессию в локальную сессию PowerShell. Для этого воспользуемся командлетом Import-PSSession:
Import-PSSession $session
Во время импорта сессии произойдет копирование доступных пользователю командлетов и параметров (см. рис.6)
Рис.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 комментарий:
Спасибо за статью довольно доходчиво все описано.
Отправить комментарий