Exchange 2007 был первой версией Exchange, где архитектура управления была основана на Windows PowerShell (точнее на PowerShell 1.0). На самом деле оба компонента, консоль Exchange 2007 Management Console и оболочка управления (Shell), были построены на основе механизма PowerShell, который обеспечивал множество преимуществ. Хотя для этого потребовалось некоторое время, многие администраторы Exchange быстро научились использовать оболочку и оптимизировали эффективность работы организации благодаря этому.
Не удивительно, что архитектура управления в Exchange 2010 также построена на Windows PowerShell, однако это версия Windows PowerShell 2.0. PowerShell 2.0 включает множество усовершенствований, и, конечно, Exchange 2010 использует некоторые из них. Одним из улучшений является функция PowerShell Remoting, использующая WS-Management (так же известную, как WS-MAN или WinRM), которая представляет собой компонент Windows Server 2008 и Windows Vista, и имеет своей задачей управление серверами, устройствами и приложениями более простым способом по всей организации.
В этой статье я расскажу о том, что собой представляет удаленный PowerShell, и как эта новая функция позволяет управлять серверами Exchange 2010 в организации, а также в нескольких организациях Exchange 2010 с помощью консоли и оболочки управления (EMC и EMS) и с помощью Windows PowerShell 2.0 – все эти компоненты расположены на одном сервере управления.
Примечание:эта статья рассматривает бета версию Exchange 2010, поэтому информация может измениться с последующими сборками Exchange 2010.
Что такое Remote PowerShell?
Чтобы объяснить это, давайте вернемся к Exchange 2007. Хотя оболочка управления Exchange 2007 Management Shell (EMS) позволяла администраторам Exchange управлять всеми серверами Exchange 2007 в организации Exchange с единого сервера управления, на котором были установлены инструменты управления Exchange Management, команды выполнялись на хосте/в процессах самого сервера. Затем сервер управления создавал RPC подключения к серверам Exchange, с которыми производились манипуляции.
В Exchange 2010 архитектура управления основана на Remote PowerShell, включенном в Windows PowerShell 2.0. Компонент Remote PowerShell обеспечивает модель разрешений на основе RBAC, что позволяет предоставлять более многогранные разрешения (Exchange 2007 использовал ACL), стандартный протокол, который позволяет проще управлять серверами Exchange 2010 через брандмауэры, и эксплицитно разделяет «клиентскую» и «серверную» часть командной обработки. Вдобавок, он использует WS-MAN, который обеспечивает более тесную и стабильную интеграцию с операционной системой Windows.
Текущие публичные бета версии Exchange 2010 включают локальную и удаленную оболочку Exchange Management Shell, но это лишь потому, что все команды находятся в стадии перемещения на версию удаленной оболочки Exchange Management Shell. Поэтому к моменту выхода RTM, Exchange 2010 уже не будет включать локальную версию оболочки Exchange Management Shell.
Это означает, что не зависимо от того, используете ли вы локально установленные инструменты управления или специально выделенный сервер управления для администрирования Exchange 2010, вы все равно будете использовать удаленную версию Exchange Management Shell (рисунок 1). Как уже говорилось ранее, публичные бета версии продукта Exchange 2010 также включают локальную версию оболочки Exchange Management Shell, поэтому при необходимости (все еще есть команды, которые не работают должным образом на удаленной версии EMS) вы сможете использовать и ее.
Рисунок 1: Remote Exchange Management Shell
При запуске удаленной версии Exchange Management Shell, она подключается к локальному виртуальному каталогу PowerShell (рисунок 2), созданному мастером установки в IIS, когда инструменты управления Exchange 2010 устанавливаются на машину.
Рисунок 2: Виртуальный каталог PowerShell в IIS Manager
Когда удаленная EMS подключается к виртуальному каталогу PowerShell, любые необходимые команды импортируются с сеанса серверной стороны (также известного как пространство выполнения (runspace)) на сеанс клиентской стороны (рисунок 3) или, если говорить точнее, импортируются ссылки на эти команды. После импорта ссылок на команды, можно начинать процесс управления сервером Exchange 2010 также, как вы обычно это делаете с помощью EMS.
Увеличить
Рисунок 3: Создание сеанса PowerShell и импорт команд стороны сервера
Включение прав удаленного управления Exchange для пользователей
По умолчанию учетная запись Active Directory, которую вы использовали для установки Exchange 2010 в своем лесу, получит права удаленного управления с помощью PowerShell. Если вы хотите предоставить эти права другой учетной записи AD, вам нужно воспользоваться командой Set-User с параметром RemotePowerShellEnabled. Если я, например, хочу предоставить это право своей собственной учетной записи, я воспользуюсь следующей командой:
Set-User ‘Henrik Walther’ -RemotePowerShellEnabled $True
Увеличить
Рисунок 4: Предоставление права управления Remote PowerShell пользователю
Подключение к удаленному серверу Exchange 2010 Server с помощью Remote EMS
Если вы хотите подключиться к виртуальному каталогу PowerShell на другом сервере Exchange 2007 в организации или в другой организации Exchange, вам нужно использовать команды New-PSSession и Import-PSSession.
При создании нового сеанса Exchange Management Shell с удаленным сервером Exchange 2010, интересным является то, что любые команды, выполняемые вами в оболочке на локальном сервер Exchange 2010, на самом деле выполняются на сервере Exchange 2010, к которому вы подключились.
Давайте подключимся к удаленному серверу Exchange 2010 в одной организации Exchange.
Если сертификат, установленный на удаленном сервере Exchange 2010, к которому вы хотите подключиться, не является доверенным для локальной машины, в первую очередь нужно импортировать сертификат или создать переменную, которая пропускает ЦС сертификата, CN, и проверки отзыва сертификата. Для создания такой переменной введите:
$SkipCertificate = New-WSManSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck
Увеличить
Рисунок 5: Создание переменной для пропуска проверки сертификата
Теперь создаем новый сеанс remote EMS:
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://<E2K10Server>.domain.com/PowerShell/ -Authentication NegotiateWithImplicitCredential -SessionOption $SkipCertificate
Увеличить
Рисунок 6: Команда для создания нового сеанса PowerShell с имплицитными мандатами
Примечание:поскольку мы подключаемся к локальному серверу Exchange 2010 в лесу, мы используем имплицитные мандаты (аутентификацию Kerberos).
Когда сеанс remote EMS создан, давайте импортируем его в сеанс клиентской стороны:
Import-PSSession $Session
Увеличить
Рисунок 7: Создание нового сеанса remote EMS и импортирование команд стороны сервера
Явно указанные учетные данные
Если вы хотите подключиться к серверу Exchange 2010 в другой организации Exchange, вам нужно использовать явно указанные учетные данные, что означает, что вам нужно сначала создать переменную с помощью команды:
$UserCredential = Get-Credential
Рисунок 8: Создание переменной пользовательских учетных данных
После этого можно создавать сеанс remote EMS с помощью команды:
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://<Exchange 2010 server name>/PowerShell/ -Credential $UserCredential
Увеличить
Рисунок 9: Команда для создания нового сеанса remote EMS с явно указанными учетными данными
Использование консоли EMC
Теперь, когда вы увидели, как использовать удаленную версию оболочки EMS для управления серверами Exchange 2010 в организации или в разных организациях, пришло время рассмотреть консоль управления EMC и способы управления несколькими организациями Exchange 2010 из одной консоли EMC.
Итак, давайте откроем консоль Exchange Management Console (EMC). В навигационной панели выбираем Microsoft Exchange и нажимаем Добавить лес Exchange (Add Exchange Forest) в Панели действий (Action pane), как показано на рисунке 10. Когда открывается окно добавления леса, вводим учетные данные администратора, которые будут использоваться для подключения к другой организации Exchange. Поскольку мы подключаемся к другой местной (on-premise) организации Exchange, выбираем Microsoft Exchange On-Premises.
Примечание: Можно использовать опцию Microsoft Exchange Online для подключения к организации Exchange 2010 в облаке. В настоящее время можно подключиться лишь к временному домену на Exchange Labs или Live@edu.
Теперь вводим URL виртуального каталога удаленной версии PowerShell, к которому нужно подключиться. Используем следующий формат:
https://E2K10Server.domain.com/PowerShell/
Затем нажимаем OK.
Увеличить
Рисунок 10: Добавление организации Exchange из другого леса в EMC
Удаленная организация Exchange теперь будет добавлена в панели навигации с левой стороны консоли EMC, как показано на рисунке 11.
Увеличить
Рисунок 11: Дополнительная организация Exchange добавлена в EMC
Теперь можно управлять этой организацией также, как вы управляли локальными организациями Exchange.
Примечание: Поскольку Exchange 2010 все еще находится в разработке, не забывайте, что у вас могут возникать ошибки во время выполнения определенных задач управления удаленными организациями Exchange.
Перемещение почтовых ящиков между лесами с помощью консоли EMC
В отличие от Exchange 2007 у вас теперь есть возможность выполнять перемещение почтовых ящиков между лесами непосредственно из консоли EMC. Причина, по которой я упомянул этот факт в данной статье, заключается в том, что одним из требований, до того как вы сможете переместить почтовый ящик в другой лес посредством EMC, является то, что вы должны добавить организацию Exchange целевого леса в EMC, как мы делали в предыдущем разделе. После этого, нажмите правой клавишей на почтовом ящике (или нескольких ящиках), который хотите переместить, и выберите Новый запрос перемещения (New Move Request) из контекстного меню (рисунок 12).
Увеличить
Рисунок 12: Создание нового запроса перемещения
Это вызовет мастера создания нового запроса перемещения (рисунок 13). Как вы видите, нужно выбрать целевой лес в раскрывающемся меню.
Увеличить
Рисунок 13: Указание целевого леса, в который нужно переместить почтовый ящик
Я не буду здесь показывать весь процесс миграции почтового ящика, поскольку это не входит в тематику статьи, но если вы начнете работать с этой функцией, важно обратить внимание, что вам нужно переместить/реплицировать учетные записи пользователей AD в целевой лес с помощью ILM или другого инструмента миграции, прежде чем перемещать почтовые ящики. Как некоторые из вас знают, это отличается от Exchange 2007, в котором не требовалось наличие учетных записей AD для перемещения почтовых ящиков.
Управление серверами Exchange 2007 и 2010 с одной машины
Еще одним замечательным моментом, особенно при перемещении Exchange 2007 на Exchange 2010 в больших организациях, включающих тысячи пользователей, является то, что в отличие от перехода с Exchange 2003 на Exchange 2007, можно устанавливать инструменты управления Exchange 2007 и Exchange 2010 на одну машину. Да, именно так. Вы просто устанавливаете все предварительные, необходимые компоненты Exchange 2010 на машину. Эти компоненты представляют собой Windows PowerShell 2.0, WS-MAN и .NET Framework 3.5. После установки этих компонентов вы устанавливаете инструменты управления Exchange 2010, а вслед за ними – инструменты управления Exchange 2007.
Примечание:пожалуйста, не забывайте о том, что только инструменты управления Exchange 2007 и 2010 могут одновременно использоваться на одной машине. Никогда не стоит пытаться установить роли каких-либо других версий сервера Exchange на машину.
Рисунок 14: Exchange 2010 Setup.exe Bootstrapper
Обязательно выберите только Инструменты управления (Management Tools) на странице Выбор роли сервера (Server Role Selection) (рисунок 15).
Увеличить
Рисунок 15: Выбор инструментов управления на странице выбора ролей сервера
После успешной установки инструментов управления нажмите Готово (рисунок 16).
Увеличить
Рисунок 16: Инструменты управления Exchange 2010 успешно установлены
Теперь запустите мастера установки Exchange 2007 Setup (рисунок 17).
Рисунок 17: Exchange 2007 Setup.exe Bootstrapper
Обязательно проверьте, что выбрана только опция Инструменты управления на странице Выбор ролей сервера (рисунок 18).
Увеличить
Рисунок 18: Выбор инструментов управления на странице выбора ролей сервера
После успешной установки инструментов управления нажмите Готово (рисунок 19).
Увеличить
Рисунок 19: Инструменты управления Exchange 2007 успешно установлены
После установки инструментов управления вы сможете найти их в закладке Все программы в меню Пуск, как показано на рисунке ниже.
Рисунок 20: Где найти инструменты управления
Дела обстоят даже лучше, поскольку вы можете запускать инструменты управления для каждой версии Exchange одновременно (рисунок 21).
Рисунок 21: Две консоли управления Exchange 2007 и 2010
Интересно то, что, что можно на самом деле создать пользовательскую версию консоли MMC, включая оснастку инструментов управления из обеих версий Exchange (рисунок 22).
Увеличить
Рисунок 22: Оснастки консоли управления Exchange 2007 и 2010 в одной MMC
Использование Windows PowerShell 2.0
Итак я показал вам, как управлять Exchange 2010 с помощью удаленной версии оболочки EMS и консоли EMC? Для управления Exchange 2010 даже не требуется установка инструментов управления Exchange 2010 на машину, по крайней мере, если вы управляете с помощью оболочки Shell. Я уже упоминал, что при подключении к виртуальному каталогу PowerShell на удаленном сервере Exchange 2010 нужные команды будут импортированы в сеанс клиентской стороны/пространство выполнения.
Если вам нравится работать с программной оболочкой, единственными требуемыми компонентами на машине, с которой осуществляется управление серверами Exchange 2010, будут Windows PowerShell 2.0 и WS-MAN.
Примечание: На момент написания этой статьи компонент WS-MAN можно устанавливать лишь на машины Windows Server 2008 и Windows Vista, однако ходят слухи, что команда разработчиков WS-MAN работает над созданием версии для Windows XP.
После установки компонентов WS-MAN и Windows PowerShell 2.0 на машину, запустите Windows PowerShell, перейдя в меню Пуск > Все программы > Windows PowerShell V2 (CTP3) > Windows PowerShell V2 (CTP3), как показано ниже.
Рисунок 23: Запуск Windows PowerShell 2.0 (CTP3)
Увеличить
Рисунок 24: Windows PowerShell 2.0 (CTP3)
И снова мы воспользуемся командами New-PSSession и Import-Session. Если сертификат, установленный на удаленный сервер Exchange 2010, которым вы собираетесь управлять, не является доверенным для локальной машины, вам нужно, либо импортировать сертификат, либо создать переменную для пропуска проверки ЦС сертификата, CN и проверки отзыва. Для этого вводим команду:
$SkipCertificate = New-WSManSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck
Увеличить
Рисунок 25: Создание переменной пропуска проверки сертификата
Теперь создаем новый сеанс PowerShell:
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://<E2K10Server>.domain.com/PowerShell/ -Authentication NegotiateWithImplicitCredential -SessionOption $SkipCertificate
Увеличить
Рисунок 26: Команда создания нового сеанса PowerShell с имплицитными учетными данными
Когда сеанс PowerShell создан, давайте импортируем его в клиентский сеанс/пространство выполнения:
Import-PSSession $Session
Увеличить
Рисунок 27: Создание нового сеанса PowerShell и импорт команд стороны сервера
Увеличить
Рисунок 28: Импортирование нового сеанса PowerShell в сеанс клиентской стороны/пространство выполнения
Явно указанные мандаты
Если вы хотите подключиться к другому серверу Exchange 2010 в другой организации Exchange, вам нужно использовать явно указанные мандаты, что означает, что сначала вам нужно создать переменную с помощью команды:
$UserCredential = Get-Credential
Увеличить
Рисунок 29: Создание переменной пользовательских мандатов
Затем можно создавать сеанс PowerShell, используя следующую команду:
Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://<Exchange 2010 server name>/PowerShell/ -Credential $UserCredential
Увеличить
Рисунок 30: Команда создания нового сеанса PowerShell с явно указываемыми учетными данными
Примеры управления с помощью Remote PowerShell
Теперь давайте попробуем получить список почтовых ящиков в организации Exchange с помощью команды Get-Mailbox.
Увеличить
Рисунок 31: Список всех почтовых ящиков в удаленной организации Exchange
Теперь давайте создадим новый почтовый ящик.
New-Mailbox -Name 'Test User 2' -UserPrincipalName 'Testuser2@exchangelabs.dk'
Нажимаем enter, затем указываем пароль для почтового ящика и снова нажимаем enter.
Увеличить
Рисунок 32: Создание нового почтового ящика в удаленной организации Exchange
А теперь давайте создадим новую группу рассылки и добавим в нее нового тестового пользователя.
New-DistributionGroup -Name ‘Test Distribution Group’
Увеличить
Рисунок 33: Создание новой группы рассылки в удаленной организации Exchange
Мы добавим пользователя в эту группу с помощью команды:
Add-DistributionGroupMember -Identity ‘Test Distribution Group’ -Member ‘Test user 2’
Увеличить
Рисунок 34: Добавление нового пользовательского почтового ящика в группу рассылки
Теперь давайте убедимся, что соответствующий ящик был добавлен в группу рассылки:
Get-DistributionGroupMember -identity ‘Test Distribution Group’
Увеличить
Рисунок 35: Список членов новой группы рассылки
Это были лишь самые простые примеры, однако вы можете выполнять гораздо более сложные задачи. На самом деле, в оболочке EMS можно выполнять абсолютно любые задачи управления.
Отключение удаленного сеанса PowerShell
Когда вы закончили работу по управлению удаленным сервером или организацией Exchange 2010, вы можете отключить удаленный сеанс PowerShell, используя следующую команду:
Remove-PSSession $Session
На этом закончим данную статью, надеюсь, она вам понравилась.