company_banner

PowerShell Web Access: управление серверами из браузера

    PowerShell – это один из основных инструментов, который может использовать системный администратор для выполнения настройки и для управления доменной сетью. Часто у системного администратора возникает необходимость удаленно подключиться к серверу и выполнить на нем определенные задачи. Конечно, можно использовать Remote Desktop, но этом случае администратор будет ограничен – не всегда можно легко и быстро удаленно подключиться к компьютеру, не всегда под рукой есть удобный компьютер. В этой статье я расскажу вам о возможности удаленного подключения с использованием PowerShell Web Access.




    PowerShell позволяет с помощью специальных командлетов выполнить абсолютно все, что можно сделать в системе, используя графический интерфейс, а также то, что в графическом интерфейсе выполнить невозможно. Таким образом, PowerShell является универсальным средством управления.
    Основное достоинство PowerShell Web Access заключается в том, что системный администратор может работать на сервере удаленно, используя самый обычный браузер. И предвидя возможные вопросы, под обычным браузером здесь подразумевается не только InternetExplorer, но и Safari, и Mozila Filefox, и Google Chrome.

    Список поддерживаемых браузеров:
    • Windows Internet Explorer для Microsoft Windows 8.0, 9.0, 10.0 и 11.0
    • Mozilla Firefox 10.0.2
    • Google Chrome 17.0.963.56m для Windows
    • Apple Safari 5.1.2 для Windows
    • Apple Safari 5.1.2 для Mac OS


    Для установки и настройки PowerShell Web Access нужно выполнить три основных шага:
    1. Установить PowerShell Web Access
    2. Настроить шлюз
    3. Настроить правила авторизации и безопасности сайта

    Далее подробное выполнение каждого из этих шагов я вам и опишу. Кстати, уже упоминалось, что в большинстве случаев настройку Windows Server можно выполнять двумя способами – с помощью графического интерфейса и с помощью командлетов PowerShell.

    1 Установка PowerShell Web Access


    Сам процесс установки PowerShell Web Access довольно-таки обычен. Установить этот компонент можно как с помощью Мастера установки ролей и компонентов сервера (Add Roles and Features Wizard), так и с помощью командлета PowerShell.
    В Мастере установки ролей и компонентов выбираем пункт Компоненты (Features) и в нем устанавливаем дополнение для PowerShell –PowerShell Web Access. Для корректной работы PowerShell Web Access должна быть установлена роль веб-сервера (Web Server Role — IIS), которая будет автоматически выбрана для инсталляции.

    Также вы всегда можете воспользоваться альтернативным решением и использовать для установки не графический интерфейс, а командлет PowerShell (только не забудьте запустить PowerShell с правами Администратора):

    Install-WindowsFeature –Name WindowsPowerShellWebAccess -ComputerName <computer_name> -IncludeManagementTools –Restart




    Тем не менее, установка – это только первый шаг в настройке работы PowerShell Web Access.

    2 Настройка шлюза


    Настраивать шлюз необходимо на том сервере, на который была установлена роль PowerShell Web Access.
    Для настройки PowerShell Web Access, можно использовать командлет Install-PswaWebApplication. С помощью него вы установите веб приложения PowerShell Web Access на ваш сайт, созданный по умолчанию при установке IIS сервера. Путь по умолчанию к сайту выглядит следующим образом: https://<имя_сервера>/pswa. Для изменения этого значения вы можете использовать параметр WebApplicationName (если хотите изменить имя веб приложения – pswa) и WebSiteName (если хотите установить веб приложения на другой сайт). Также, для обеспечения безопасности вашей среды, необходимо использовать действительный сертификат, который подписан вашей службой Certification Authority. О том, как настроить SSL-сертификат в диспетчере служб IIS можно прочитать здесь.



    3 Настройка правил авторизации и безопасности сайта


    После того, как вы установили PowerShell Web Access и настроили шлюз (установили веб приложение), ваши пользователи смогут открыть страницу входа в браузере, но не смогут выполнить вход. Причина в том, что пока мы не предоставили доступ нашим пользователям в явном виде. Важно отметить, что при проверке подлинности при авторизации в PowerShell Web Access доступ по умолчанию ограничен, а не разрешен. Т.е. если разрешение пользователю явно не выдано, то доступа к чему-либо у этого пользователя нет.
    Добавить правила авторизации можно только с помощью командлетов PowerShell, графический интерфейс для этого не предусмотрен. Для добавления правила авторизации мы используем командлет Add-PswaAuthorizationRule с различными параметрами, позволяющими указать имя пользователя, имя компьютера и т.д. (подробнее про командлеты для PowerShell Web Access здесь):


    Теперь пользователь может из браузера подключиться к PowerShell Web Access и начать работу. Причем подключиться вы можете к любому из серверов, если имеете соответствующее разрешение.


    Сеанс PowerShell Web Access представляет собой командную строку PowerShell, с помощью которой вы можете удаленно управлять задачами на вашем сервере.
    Еще одной интересной возможностью, предлагаемой PowerShell Web Access, является возможность сохранения сеансов и переподключения к ним с различных устройств (нажмите кнопку «Save»). По умолчанию PowerShell Web Access ограничивает пользователя тремя одновременными сеансами.

    Время ожидания сеансов PowerShell Web Access не вечно. Сообщение об истечении времени ожидания отображается для вошедшего пользователя через 15 минут отсутствия активности в сеансе. Если пользователь не отвечает в течение пяти минут после вывода сообщения об истечении времени ожидания, сеанс заканчивается, и пользователь выходит из системы. Значения по умолчанию для PowerShell Web Access можно изменить в параметрах веб-сайта в диспетчере служб IIS.
    Отмечу, что так как PowerShell Web Access – это веб-консоль PowerShell для конкретного удаленного компьютера, то вы можете использовать только те командлеты или сценарии PowerShell, которые на этом удаленном компьютере доступны.
    Чем отличается веб-консоль от локальной PowerShell? Большая часть базового функционала доступна, но отличия есть:
    • При сообщении информации о ходе выполнения какой-либо задачи на экране отображается только конечный результат выполнения командлета (этапы выполнения не показываются)
    • Фоновый и основной цвета изменить в веб-консоли нельзя
    • PowerShell Web Access в своем интерфейсе не реализует ряд методов, например, любые команды, осуществляющие запись в консоль Windows
    • PowerShell Web Access не поддерживает некоторые сочетания клавиш, во многих случаях потому, что эти клавиши зарезервированы для команд браузера

    Кроме того, используя PowerShell Web Access вы попадаете под ряд ограничений:
    • Двойное подключение — попытка подключиться ко второму удаленному компьютеру из существующего подключения
    • PowerShell Web Access использует и имеет те же ограничения, что и удаленный сеанс Windows PowerShell
    • Заполнение нажатием клавиши TAB не действует в сеансах, сконфигурированных для работы в ограниченном пространстве выполнения или в режиме NoLanguage, также не может быть запущена команда exit для завершения сеанса (для выхода нужно будет нажать соответствующую кнопку на странице консоли)
    • PowerShell Web Access допускает только одно подключение к удаленному компьютеру в рамках одного сеанса браузера; нельзя выполнить один вход и подключиться к нескольким удаленным компьютерам, используя отдельные вкладки браузера
    • При бездействии сеанса шлюза PowerShell Web Access удаленное подключение между шлюзом и конечным компьютером закрывается. При этом прекращается выполнение всех командлетов или сценариев. Поэтому для выполнения длительных задач рекомендуется использовать PowerShell.


    Надеюсь, что вы нашли в этой статье полезную для себя информацию, которую сможете применить в вашей работе.
    Спасибо за внимание!

    Полезные ссылки


    Microsoft 483,03
    Microsoft — мировой лидер в области ПО и ИТ-услуг
    Поделиться публикацией
    Похожие публикации
    Комментарии 67
    • +3
      Извините, но я все чаще думаю, что Майкрософт не может сервера.
      Больше негодования
      Когда-то давно люди придумали telnet, ssh и эмуляторы терминалов. Видимо это было слишком банально. Вот веб-приложение на веб-сервере это дааа… Модно, стильно, молодежно!
      Сделайте еще аутентификацию с фейсбука и твиттера.
      • +4
        Есть предположение, что все в нашей жизни развивается по спирали. Так и с PowerShell. Например, в отличие от многих командных оболочек, командлеты PowerShell работают с объектами .NET, результат выполнения командлета — это не текстовый вывод, а тоже объект .NET. Поэтому, в частности, использовать конвейеризацию в PowerShell гораздо проще и эффективнее. Можно привести еще массу сходу незаметных, но существенных отличий. Хотя с виду да, ничем не отличается от того, что придумано 40 лет назад.
        • 0
          Ага, по спирали. Теперь консоль в браузере изобрели.
          • +1
            Ну да, по спирали. После офисных приложений в браузере — консоль PowerShell в браузере. Почему нет
            • –1
              Потому что это — неудобно. Нужно ли вообще подробнее объяснять «почему»?
              • –1
                Неудобно — не пользуйтесь, в чем вопрос то? Это один из вариантов доступа, свою аудиторию и ситуации найдет однозначно. В чем проблема, почему так жжет?
                • +1
                  Я и не пользуюсь. Тут можно только положительные мнения писать что-ли?
                  • 0
                    как правильно Александр отметил ниже, у вас нет конструктива. Ваши личные предпочтения никак не могут быть положительным или отрицательным мнением о продукте. Ибо вы оцениваете не продукт, а себя.
                    • 0
                      Ваши личные предпочтения никак не могут быть положительным или отрицательным мнением о продукте.


                      Понятно, спасибо что объяснили как работают мнения о продуктах.
          • НЛО прилетело и опубликовало эту надпись здесь
            • 0
              «Привычнее и понятнее» — понятия относительные. По моему опыту админам Windows-серверов вообще все равно, открытый код или закрытый. Что им от «открытости», они код полезут править? Им нужен инструмент для решения конкретных задач. Оснастками удобно решать одни задачи, скриптами PowerShell — другие, например, автоматизировать выполнение ряда задач на группе серверов. К этим серверам можно подключаться из консоли, находясь в сетке. В противном случае можно поднять в DMZ PowerShell Web Access и через него подключаться к нужным серверам с помощью практически любого браузера, где бы ты не находился. Такой вариант не претендует на единственное и абсолютное решение, но найдет и уже находит своих приверженцев.
              • 0
                У меня претензия к убиванию оснасток без предоставления достойной замены, после SBS 2003 лишь деградация. Взять тот же Exchange 2013 — новый веб-интерфейс умеет в лучшем случае половину от версии 2010.
                • 0
                  Претензию передам :)
                • НЛО прилетело и опубликовало эту надпись здесь
                  • 0
                    1. Открытые стандарты и открытый код — разные вещи. PowerShell использует вполне конкретный стандарт Web Services for Management (WS–Management). Впервые он реализован в Windows в версии Windows Server 2003 R2 в 2005 году. Так что постулаты Гейтса последовательно реализовываются.
                    2. С моей точки зрения «удобство» сравнивать бессмысленно. Это очень субъективная вещь. В конечном итоге, используйте то, что Вам нравится. SSH для Windows можно легко найти, Telnet входит в состав Windows. Можно сравнивать к примеру, что и как Вы сможете сделать в Windows Server с помощью одного или другого инструмента. Уверен, в этом смысле PowerShell выиграет. Но еще раз, это лишь одна из возможностей управления, которая есть у админа.
                    3. Начиная с Windows Server 2012, для любой службы ОС в обязательном порядке выпускается набор соответствующих командлетов PowerShell для управления и настройки службы. Это правило. В этом смысле PowerShell просто более универсален для управления конкретно Windows-серверами.
                    • НЛО прилетело и опубликовало эту надпись здесь
                      • 0
                        1. Дискуссия перестает быть конструктивной, а потому интересной. Вот это "междусобойчик"? Так можно про любую организацию сказать.

                        2. Иван, так а зачем тулзы для PowerShell? Он сам и есть тулза. Что значит «запустил SSH и все»? Я от задач отталкиваюсь и поэтому говорю, что к примеру получить инфу о настройках, скажем IIS, на 10 серверах можно одним командлетом. Развернуть и поддерживать требуемую конфигурацию, не знаю, ADFS на ферме серверов можно одним скриптом. Есть библиотека готовых скриптов, которая поддерживается сообществом, есть инструменты отладки и анализа скриптов и пр. Вы пробовали хоть какую-то задачу решить с помощью PowerShell?

                        3. Графический интерфейс для многих гораздо удобнее. Но развернуть сервак только с командной строкой (Server Core) можно с Windows Server 2008, уже шесть лет как.

                        • НЛО прилетело и опубликовало эту надпись здесь
                          • 0
                            1. Да, использует. Могу сказать про VMware и Cisco. Насчет остальных можете посмотреть самостоятельно.
                            2. Все есть. От настройки сетевух, то переподключения к сеансу. Не все по тем клавишам, к которым Вы привыкли.
                            3. GDI — да, прочее — нет.
                        • 0
                          Ну да, запустил Powershell и что? Где lshw, top, ifconfig? Почему не как в линуксе?!?
                          Есть core без гуя, есть конфиг файлы (xml) но вы продолжайте в том же духе талдычить про телнет — вы наверное, единственный кто здесь про него помнит.
                          • 0
                            Самое офигительно в PowerShell, что он заставил тысячи сисадминов вспомнить программирование и начать писать скрипты.
                            • 0
                              самое офигенное в PS, что он позволил наконец-то забыть про VBS
                      • –1
                        SSH + SFTP

                        Неудобно. Фиг знает что там делать: аргументы не автодополняются, Get-Help не работает, про -Examples можно даже не спрашивать.
                        PowerShell

                        Удобно. Exchange рулится через пайпы, а консоль как родная после Cisco CLI и dsmadmc.
                        • НЛО прилетело и опубликовало эту надпись здесь
                          • 0
                            У меня память дырявая, потому автодополнение выручает — стандарт именования у большинства командлетов схожий.

                            В man расстраивает отсутствие примеров, а тут иногда наберёшь Get-Help -Examples и получаешь три экрана примеров.

                            С конфигами когда как, иногда всё просто и логично, иногда не очень. Средства массового применения настроек тоже не такие наглядные как Invoke-Command. Хотя в последнем не уверен, наверняка есть свои инструменты.

                            Про ГУЙ — спорно, после появления ASA с ASDM в консоль почти не залезаю, только если из любопытства.
                • 0
                  дело не в моде, а в практичности. Браузер есть у каждого. SSL также присутствует у каждого. Возникла необходимость и с любого устройства, хоть с телевизора, подключайся и работай. В первую очередь это универсальное решение.
                  И для размышления: как вы думаете, почему трафик стали оборачивать SSL, а не SSH?
                  • +1
                    В какой еще такой практичности? «Практичность» это когда я могу хотя бы шрифты поменять. Что майкрософту стоило, например, расширить RDP с возможностью эмуляции консоли? И вот этот момент вообще убивает:
                    нельзя выполнить один вход и подключиться к нескольким удаленным компьютерам, используя отдельные вкладки браузера

                    Ваш вопрос для размышления в стиле «почему Вася больше любит яблоки, а не вертолеты?», не знаю что на него ответить.
                    • 0
                      Два комментария выше говорят о том, что «практичность» может толковаться очень по-разному.
                      Я не уловил, где Вы не можете поменять шрифты, что означает «расширить RDP с возможностью эмуляции консоли», и для чего Вы хотите это использовать?
                      • 0
                        Я уже узнал, что оказывается для PS есть другой механизм удаленного доступа (PSRemoting), который как раз аналог ssh/telnet. Значит не все так плохо, предложение насчет рдп снимается.

                        Ну я так понял, что приблуда, описанная в статье, не позволяет как бы то ни было кастомизировать консоль. Что если мне нужен другой шрифт? Моноширинный или нет? Или я хочу поменять цвет? Это все так просто было бы сделать, но этого никто не сделал по какой-то невнятной причине. Почему нельзя в разных вкладках подключаться тоже непонятно. Какие-то искусственные ограничения.
                      • 0
                        как-то вы в кучу все мешаете «почему в ч.б. телевизоре нет цвета, если я хочу?».
                        • 0
                          Это намек что как бы надо жрать что дают?
                          • 0
                            это намек на классику «кому-то нравится арбуз, а кому-то свиной хрящик».
                            • 0
                              Есть PWS, есть PS-Remoting, есть RDP. Это разные инструменты для разных ситуаций. Хотите цветную консоль — берите PS-Remoting. Нужен экстренный доступ на сервер с мака? Используйте PWS. Что вы еще там «жрать» собираетесь?
                              • 0
                                А, так PS-Remoting это win-only? Ну вообще замечательно. То есть нормально админить виндовые сервера через консоль я могу только с винды, а во всех остальных случаях придется использовать или непонятно зачем нужный для консоли RDP или вот такой неудобный костыль через браузер?

                                Супер, сказать нечего.
                                • 0
                                  www.powershellserver.com/ так лучше?
                                  • 0
                                    Да. Вопрос сводится к одному в итоге — почему Майкрософт снова изобретает велосипеды и костыли вместо внедрения универсального решения?
                                    • 0
                                      По мне так связка RDP-PSR-PWS более чем универсальна. Не у всех «универсальность = ssh».
                                      • 0
                                        Это понятно. Я о том, что подразумевается, что винда будет администрироваться с винды. А если вас таки угораздило сидеть на чем-то другом или не дай боже с мобилы в отпуске — вот, кушайте что дают. Неудобно, странно, но хоть как-то. Вместо того чтобы внедрить готовые, проверенные решения получается вот так, как есть.

                                        Это все мне напоминает ситуацию с покупкой Windows 8. Решил я как-то маме для ноута купить новую винду. Пошел в онлайн-магазин Майкрософта, купил. Мне дали скачать экзешник. Экзешник блин, который загрузит тебе образ. А у меня мак. Куда я его дену? Винды под боком нигде нет, что мне делать? А если я вдруг захочу перейти с мака на винду? Майкрософт даже не допускает что такое возможно?

                                        Это все просто какая-то бесконечная консервативность, бюрократия и неумение видеть современные тенденции.
                                        • 0
                                          все это делается для основной ЦА продукта. Если основной части потребителей проще скачать екзешник, то на сайте и будет лежать экзешник.
                                          • 0
                                            Расширение ЦА не требуется? Это дерьмовое и недальновидное отношение к потенциальным клиентам. Одна из причин, по которой многие не любят Майкрософт.
                                            • 0
                                              Это часть корпоративной политики любой коммерческой организации. Вот попробуйте мп3 залить на тот же айфон — у вас ничего не выйдет. Нельзя всем угодить, поэтому мс старается угодить своей ЦА и своему клиенту (у них и это-то с трудом получается). Самое смешное что запили они SSH сервер из коробки, то толпы линуксоидов начали бы кричать «фууууу да это уже у нас с 1802го года уже есть а мс только-только додумались!» — вот им и приходится выкручиваться.
                                              • НЛО прилетело и опубликовало эту надпись здесь
                    • 0
                      • Windows® Internet Explorer® для Microsoft Windows® 8.0, 9.0, 10.0 и 11.0
                      • Mozilla Firefox® 10.0.2
                      • Google Chrome™ 17.0.963.56m для Windows
                      • Apple Safari® 5.1.2 для Windows
                      • Apple Safari 5.1.2 для Mac OS®

                      Работает только в указанных версиях??
                      • 0
                        Тестировался в этих версиях и поэтому официально поддерживается. Работать должен в любых браузерах, которые поддерживают cookies, JavaScript и HTTPS
                      • –1
                        Microsoft изобрела велосипед ssh? Не понимаю только, почему в браузере и что помешало вынести отдельным демоном?
                        • +1
                          никто не мешал. Enable-PSRemoting
                          • +1
                            Да, давно я уже не касался семейства MS Windows. Видимо, все же есть перемены к лучшему.
                            • 0
                              Вот так всегда. Сторонники СПО зачастую поливают помоями продукты MS, даже не зная всего функционала. «Тюююю повершел какой-то… Тююю, дотнет какой-то поддерживает...» На предложение почитать и разобраться, говорят что не собираются копаться в этой ерунде, хотя сами больше любители тыкать в ман (и да, в повершелле тоже есть ман, прикиньте?). Очень раздражают эти двойные стандарты.
                              • 0
                                Позвольте, лично я ничего не поливаю помоями. Я просто выражаю удивление, видимо, связанное с незнанием. Разъяснили — хорошо. Моя специализация — UNIX, но это не значит, что я не признаю полезность продуктов компании Microsoft. Каждый продукт хорош в своей нише.
                                • НЛО прилетело и опубликовало эту надпись здесь
                                  • 0
                                    Как хорошо делить все на черное и белое. Есть еще специалисты, которые решают задачи исходя из тех. требований и стараясь найти оптимальное решение, в независимости от того, к какой категории (спо\неспо) принадлежит это решение. Рвотный рефлекс как оправдание собственной лени и узколобости это вообще замечательная находка.
                                    Я как постарше (у меня курсач по фокспро был, кстати) могу вспомнить вам слаку и генту (скоро еще и init.d), но не буду. Потому что любой хороший программный продукт развивается. Есть тупиковые ветви, а есть перспективные направления — это все выясняется только опытным путем. И дотнет закопают, вполне возможно — будет другой *нет Это нормально. Это эволюция.
                                    • НЛО прилетело и опубликовало эту надпись здесь
                                      • 0
                                        похоже, у вас с виндой что-то глубоко личное.
                                        • НЛО прилетело и опубликовало эту надпись здесь
                                          • 0
                                            и что у вас в ISA не завелось? Просто интересно.
                                            • НЛО прилетело и опубликовало эту надпись здесь
                                    • –1
                                      Кстати, давайте вместе горевать про закопанный дотнет — habrahabr.ru/post/243065/
                                    • 0
                                      Тююю. Вон выше какой-то евангелист микрософта утверждает, что в никсах нету автодополнения аргументов и примеров использования команд. Так кто чего не знает и где двойные стандарты?
                                      • 0
                                        Если бы евангелист, просто сочувствующий описал опыт с той стороны баррикад.
                                        А автодоплнения как в PoSH или у Cisco там действительно нет, сейчас специально зашел на сервер с CentOS и bash, набрал «yum upd» и нажал Tab — ничего не произошло, на "?" тоже никакой реакции. Даже сокращения не работают, вроде «yum upd tzdata».
                                        • 0
                                          Ок, специально для вас. Все действия по табу.
                                          CentOS 6.6, zsh 4.3.10

                                          Если все еще не верится, то могу даже дать гостевой доступ по ssh.
                                          • 0
                                            Круто! Из коробки нигде такого не видел, это фишка zsh или в bash просто надо что-то включить/доставить?
                                            • 0
                                              ничего особого

                                              yum install zsh
                                              curl -L install.ohmyz.sh | sh

                                              все
                                              • 0
                                                забыл, еще понадобится установить дефолтным шеллом

                                                chsh /bin/zsh

                                                теперь точно все
                                              • 0
                                                лукавите. у меня установлен CentOS 6.6 с bash 4.1.2 из коробки. Никаких автодополнений команд в нем нет. Zsh сторонний командный процессор. Но если вы хотите пообщаться в таком русле, то предложите аналог аргумента -Whatif.
                                                И вы как-то проигнорировали примеры исполнения команд.
                                                • 0
                                                  Выполнение пары команд из состояния «из коробки» ни разу не лукавство. Вы ОС никогда не настраиваете что-ли? И в каком месте zsh «сторонний»? Он в любом дистрибутиве в стандартных репах лежит.

                                                  Whatif — чем вас ключи -i (interactive) и -v (verbose) не устраивают?

                                                  Примеры исполнения команд — man или info для совсем уж конкретного гайда. Попробуйте например info grep.
                                  • 0
                                    хм, если у меня есть доступ только к терминалу, то через links/lynx можно подключиться?
                                    • 0
                                      Консоль в веб-интерфейсе — очень удобная штука, активно пользуюсь такой для TSM. Теперь буду и для Exchange, а то Management Tools не ставятся на XP.

                                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                      Самое читаемое