Возможности и настройка PowerShell WebAccess (+видео)

Оболочка PowerShell существенно упростила работу сисадмину, позволив автоматизировать большинство задач и выполнять команды удаленно сразу на нескольких системах. Только для всего этого необходима PS консоль, а в век планшетников и смартфонов это серьезный недостаток, который мешает продуктивной работе. В Windows Server 2012 появился новый компонент PowerShell Web Access, предоставляющий возможность управлять своими системами практически с любого устройства, вводя команды прямо в веб-браузере. Компонент представляет собой шлюз, реализованный в виде веб-приложения IIS. Требования к клиенской стороне весьма просты: браузер должен поддерживать JavaScript и принимать плюшки. В списке официально поддерживаемых бродилок IE версии >8, Firefox, Google Chrome, Apple Safari, а также браузеры, установленные в Windows Phone, Android и iPhone/iPad. Весь обмен данными происходит по HTTPS, поэтому бояться утечки данных не стоит. Также на сервере и клиенте должна быть включена функция PowerShell remoting. Сделать это можно командой «Enable-PsRemoting –Confirm«.
Чтобы развернуть серверную часть, достаточно в мастере добавления ролей отметить компонент «Windows PowerShell Web Access» (находится в блоке PowerShell) и подтвердить установку сопутствующих компонентов и ролей (NET Framework 4.5 и Web Server (IIS), консоль управления IIS Manager), необходимых для его работы. Если ранее не была развернута роль IIS, то далее можно будет выбрать дополнительные службы ролей.
Установку можно произвести и при помощи PowerShell:

PS> Install-WindowsFeature –Name PowerShellWebAccess \
    -ComputerName <computer_name> -IncludeManagementTools \
    -Restart
</computer_name>

Далее необходимо настроить шлюз. Наиболее просто это сделать при помощи командлета Install-PswaWebApplication с именем пула в качестве параметра:

PS> Install-PswaWebApplication -WebApplicationName "WebAccess"

В случае использования Диспетчера служб IIS, процесс создания шлюза также несложен. Открываем сервер и переходим к меню Пулы приложений (Application Pools), добавляем новый пул, указав его имя и убедившись, что в выбран Framework 4.0.x в поле «Версии среды Framework…». Теперь в меню Сайты (Sites) на Default Web Site вызываем контекстное меню и выбираем пункт «Добавить приложение» (Add Application). В появившемся мастере указываем имя сайта (например, WebAccess) и физический путь (файлы находятся в C:\Windows\Web\PowerShellWebAccess\wwwroot). В поле «Пул приложений» выбираем созданный выше пул. Подтверждаем установки.
Чтобы сайт заработал, нам понадобится сертификат. Рекомендуется использовать сертификат, подписанный доверенным удостоверяющим центром, но в тестовых средах можно обойтись и самоподписанным. Чтобы его сгенерировать, достаточно добавить ключ «-UseTestCertificate» к команде Install-PswaWebApplication. В диспетчере IIS переходим к серверу и в центральном окне выбираем Сертификаты сервера (Server Certificated), теперь в окне Действия можем создать запрос сертификата или сгенерировать самоподписанный сертификат (Create Celf Signed Certificate). В последнем случае нам понадобится ввести его имя и в качестве хранилища выбрать «Размещение веб-служб». Чтобы сайт мог работать с HTTPS, необходимо создать привязку. Выбираем Default Web Site и в поле Действие — Привязки. В появившемся окне указываем протокол HTTPS и выбираем сгенерированный сертификат. В настройках сайта переходим в Параметры SSL, где ставим флажок в пункте «Требовать SSL». Теперь можно подключаться к серверу, указав в браузере имя узла и сайта (например https://example.org/WebAccess), для входа вводим свои учетные данные и имя шлюза.
Следует отметить, что доступ к веб-консоли PowerShell Web Access администратор предоставляет в явном виде, поэтому пока пользователю не назначены соответствующие права, подключиться к сеансу он не сможет. Причем администратор может ограничивать сеанс отдельными компьютерами и даже разрешенными командлетами.
Все установки хранятся в файле AuthorizationRules.xml, который должен читать веб-сервер. Чтобы упростить настройки IIS, MS предоставляет готовые шаблоны, позволяющие дать нужные права IIS. Вводим следующие команды:

PS> $applicationPoolName = "PowerShell Web Access"
PS> $authorizationFile = "C:\windows\web\
  powershellwebaccess\data\AuthorizationRules.xml"
PS> c:\windows\system32\icacls.exe $authorizationFile \
    /grant ('"' + "IIS AppPool\$applicationPoolName" + \
    '":R') > $null

Просмотреть права на файл авторизации можно при помощи icacls:

PS> c:\windows\system32\icacls.exe $authorizationFile

Для управления доступом к веб-консоли предложен целый ряд командлетов — Add|Remove|Get|Test-PswaAuthorizationRule, которые имеют огромное количество параметров. Получить примеры использования можно командой:

Get-Help <cmdlet name> -Examples
</cmdlet>

Например, разрешим пользователю User доступ к компьютеру SRV01:

PS> Add-PswaAuthorizationRule –UserName Example\User \
    -ComputerName SRV01 -ConfigurationName Admins

После введения команды получим таблицу с правами. Просмотреть список всех настроек можно при помощи командлета Get-PswaAuthorizationRule. В тестовой среде можно разрешить все и всем.

PS> Add-PswaAuthorizationRule * * *

Окно Windows PowerShell Web Access
Видео снятое для журнала Системный Администратор в котором показана настройка PowerShell WebAccess в WindowsServer 2012 R2

Теги: , ,

Понравилась статья? Оставьте комментарий или подпишитесь на RSS рассылку.

Комментарии

Комментариев пока что нет

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

(required)

(required)