Разбираясь с Windows Server 2012 наткнулся на одну интересную фичу, которой стоит уделить отдельное внимание. Называется она Windows PowerShell Web Access и представляет из себя PowerShell шлюз, через который можно подключаться к удаленным серверам и работать с консолью PowerShell прямо в веб-браузере.
При этом все, что требуется для работы с PowerShell Web Access — это любое устройство (телефон, планшет и т.п.), имеющее доступ в интернет и браузер с поддержкой JavaScript и включенными cookies.
Выглядит красиво, посмотрим, как это работает. В качестве примера организуем доступ к отдельно стоящем серверу по имени Server2012.
Шаг 1.
Устанавливаем компонент WindowsPowerShellWebAccess. Для этого открываем консоль PowerShell и вводим команду:
Add-WindowsFeature -Name WindowsPowerShellWebAccess -IncludeManagementTools -Restart
Поскольку IIS по умолчанию устанавливается без средств управления, для установки IIS Manager указываем параметр -IncludeManagementTools, а ключ -Restart перезагрузит сервер при необходимости.
Шаг 2.
Устанавливаем веб-приложение PswaWebApplication:
Install-PswaWebApplication
Для тестовой среды можно указать ключ -UseTestCertificate. В этом случае будет создан самоподписанный сертификат сроком на 3 месяца.
Шаг 3.
По умолчанию все соединения запрещены и для подключения необходимо создать правила авторизации, в которых явно указать, кто и куда может подключаться. Делается это с помощью командлета Add-PswaAuthorizationRule, который имеет следующий вид:
Add-PswaAuthorizationRule –UserName <domain\user | computer\user> -ComputerName <computer_name> -ConfigurationName <session_configuration_name>
В тестовой среде для предоставления доступа всем пользователям со всех компьютеров можно просто ввести:
Add-PswaAuthorizationRule * * *
Мы поступим по другому и разрешим доступ группе локальных администраторов к компьютеру Server2012 с конфигурацией по умолчанию:
Add-PswaAuthorizationRule –UserGroupName Server2012\Administrators -ComputerName Server2012 -ConfigurationName Microsoft.PowerShell
Шаг 4.
Теперь нам надо настроить PowerShell Web Access на использование SSL сертификата. Открываем Диспетчер IIS и в свойствах сервера выбираем пункт «Сертификаты сервера». Здесь есть несколько вариантов:
- При установке веб-приложения указать ключ -UseTestCertificate;
- Создать самозаверенный сертификат в оснастке диспетчера IIS , выбрав одноименный пункт в меню справа;
- Обратиться в центр сертификации и получить нормальный сертификат, который затем и установить.
Первые два варианта подходят только для тестовой среды, поэтому выберем третий. Для этой цели я не поленился и поднял центр сертификации, в котором и запросил сертификат.
Установив сертификат идем в настройки веб-сайта по умолчанию и выбираем пункт «Привязки». Указываем тип подключения https и выбираем нужный SSL-сертификат.
Чтобы максимально защитить подключение можно включить использование сертификатов на стороне клиента. Для этого в свойствах веб-приложения выбираем параметры SSL и отмечаем пункт «Требовать SSL». Имейте в виду, что в этом случае придется устанавливать сертификат на каждого клиента.
На этом конфигурирование Windows PowerShell Web Access можно считать законченным. Подключаемся к шлюзу, набрав в строке адреса https://Server2012/pswa и вводим имя компьютера и свои учетные данные. Если учетные данные на шлюзе и на конечном сервере различаются, то задаем их в дополнительных параметрах подключения.
Жмем на кнопку и попадаем в консоль PowerShell Web Access. Функционал ее аналогичнен стандартной оболочке PowerShell — автозавершение команд по Tab, стрелки вверх/вниз – прокрутка истории и т.д. Для завершения сеанса есть специальная кнопка «Выход».
И еще один важный момент: прежде чем подключаться к удаленному серверу, необходимо убедиться в том, что на нем разрешено удаленное управление PowerShell. Включается оно командлетом Enable-PSRemoting.