WinRM и WinRS являются нововведением в Windows Vista,
Windows Server 2003 R2, Windows Server 2008 (и Server 2008
Core). Это новые мощные средства командной строки,
предлагающие системным администраторам улучшенные возможности
удаленного управления и удаленного выполнения программ на
машинах с Windows. Однако, их нужно сперва включить, кроме
того, вам потребуется некоторое время на изучение их
функциональности. Вам повезло: в этой статье есть все, что
потребуется вам для того, чтобы начать использовать эти
средства прямо сегодня!
Что такое Windows Remote Management (WinRM) (Удаленное
управление Windows)?
Windows Remote Management (сокращенно WinRM) – это новая
удобная служба удаленного управления для Windows Server 2003
R2, Windows Vista и Windows Server 2008. WinRM - это
«серверный» компонент этого приложения удаленного управления,
а WinRS (Windows Remote Shell – удаленная среда Windows) – это
«клиент» для WinRM, которые запускается на удаленном
компьютере, пытаясь удаленно управлять сервером WinRM. Однако
должен заметить, что на ОБОИХ компьютерах должен быть
установлен и включен WinRM, чтобы WinRS мог работать и
получать информацию об удаленной системе. WinRM основан на
стандартах Web Services for Management (службы для управления)
(WS-Management).
Это означает, что WinRM использует протокол HTTP (порт 80) и
запросы SOAP для выполнения работы. Это хорошо тем, что
запросы HTTP легко пересылать через брандмауэр. Из этого
вытекают хорошее и плохое следствия: с одной стороны, так
проще будет управлять удаленным компьютером через Internet,
но, с другой стороны, злоумышленнику проще удаленно атаковать
этот же компьютер. Еще одно небольшое преимущество
использования порта 80 в том, что нет необходимости открывать
другие порты на сервере, если входящие HTTP соединения уже
были разрешены.
Согласно утверждениям Microsoft, WinRM представляет собой
«Новое средство от Microsoft для установления основанного на
стандартах API для системного управления». Так что, если вы
ранее и не были заинтересованы в изучении таких средств, мне
кажется, тот факт, что «это новый стандарт Microsoft» делает
его достойным изучения.
Возможно, вы уже знакомы с базой данных Windows Management
Instrumentation (WMI) (Инструментарий управления Windows). Но,
на всякий случай, скажу, что эта база данных содержит
всевозможную информацию об аппаратном и программного
обеспечении компьютера. Почти каждое приложение, управляющее
системой Windows, опускается не уровень базы данных WMI для
выполнения всех административных задач на данном ПК.
WinRM будет использовать базу данных WMI для выполнения
задач, аналогичных тем, которые вы, возможно, выполняли с
помощью других программных средств вроде VBScript.
Преимущество WinRM в том, что он использует HTTP(порт 80), как
я уже говорил, кроме того, есть даже специальный код,
позволяющий WinRM разделять входящие соединения на порт 80 с
компонентом IIS, который уже, возможно, работает с этим
портом.
WinRM поддерживает различные типы аутентификации для
предотвращения выполнения кем угодно административных задач на
ваших клиентах и серверах. Конечно, вам необходимо помнить,
что, включая WinRM, вы открываете еще один путь для атакования
вашей системы. Однако, как я для любого открытого порта, если
аутентификация и шифрование установлены как следует, можно
считать, что вы приняли все разумные меры
предосторожности.
Производитель вашего ПО, управляющего системой, возможно,
уже запланировали использовать WinRM в следующих выпусках
своего ПО, так что вы, возможно, уже используете WinRM через
другие приложения. Однако вы можете использовать этот
компонент и собственноручно, с помощью команды
winrm.cmd. С этим средством CLI вы можете очень
просто извлекать информацию из базы данных WMI для любой
решаемой вами задачи.
Как вы увидите ниже, WinRM обладает интерфейсом командной
строки с множеством параметров. Справочная информация о WinRM
будет вам показана даже в том случае, когда он не включен на
вашей системе.
Рисунок 1:параметры командной строки WinRM
Как включать и использовать WinRM?
Если вы используете Windows 2008 Server, WinRM уже
установлен, но не включен по умолчанию. Это хорошая
предосторожность. Самый простой способ проверить, включен ли
WinRM и запущен ли на вашей машине, это перейти к командной
строке и набрать:
winrm enumerate winrm/config/listener
Если вы не получаете ответа, значит, WinRM не запущен. Для
настраивания WinRM на автоматический запуск и разрешение
удаленного доступа используйте команду winrm
quickconfig, например:
C:\Users\Administrator> winrm
quickconfigWinRM is not set up to allow remote
access to this machine for management.The following
changes must be made:Create a WinRM listener on
HTTP://* to accept WS-Man requests to any IP on this
machine.Make these changes [y/n]? yWinRM
has been updated for remote management.Created a WinRM
listener on HTTP://* to accept WS-Man requests to any IP on
this machine.C:\Users\Administrator>После
настройки quickconfig, я перезапустил команду перечисления со
следующими результатами: C:\Users\Administrator>
winrm e
winrm/config/listenerListenerAddress =
*Transport = HTTPPort =
80HostnameEnabled = trueURLPrefix =
wsmanCertificateThumbprintListeningOn =
10.253.15.98, 127.0.0.1, ::1, fe80::5efe:10.253.15.98%11,
fe80::9583:2148:e1ef:6444%10C:\Users\Administrator>
Теперь я знаю, что WinRM включен.
Кстати, если вы хотите отключить WinRM, нужно использовать
такую команду:
winrm delete
winrm/config/listener?IPAdress=*+Transport=HTTP
Для использования WinRM все узлы, взаимодействующие с ним,
должны быть членами того же домена, что и узел с WinRM. Если в
вашем случае это не так, рекомендую ознакомиться с различными
сценариями безопасности в статье ‘Remotely
managing your Server Core using WinRM and WinRS‘.
Что такое WinRS и как его использовать?
WinRS – это аббревиатура для Windows Remote Shell
(удаленная среда Windows). С WinRS вы можете делать удаленные
запросы на машины с Windows, на которых запущен WinRM. Однако
не забывайте, что на вашей машине также необходимо запускать
WinRM для работы с WinRS.
Как вы видите на диаграмме ниже, winrs представляет
собой полнофункциональное средство командной строки с огромным
количеством справочной информации по работе и ним.
Рисунок 2: параметры командной строки WinRS
Одним из самых обычных способов использования WinRS
является выполнение команд на удаленной машине. Конечно же,
это взаимодействие происходит с помощью протокола HTTP (порт
80) (по умолчанию).
Ниже представлен пример использования WinRS: я выполнил
команды на узле localhost. Я запустил две команды: ‘
‘ver‘ и ‘dir C:‘. В каждом случае в ответ была
получена адекватная информация.
Рисунок 3: демонстрация команд WinRS
Итоги
WinRM и WinRS представляют собой очень мощные новые
средства, о которых системные администраторы Windows просто
обязаны узнать. Подумайте о возможностях удаленного управления
с WinRM/WinRS! Вы можете устанавливать программы, изменять
настройки, решать проблемы (конечно, если проблема не в
сетевом взаимодействии). Вы можете пойти дальше и соединить
WinRS со скриптом для выполнения этих задач на нескольких
компьютерах. Кроме того, помните, что вне зависимости от того,
используете ли вы эти средства или нет, ваше ПО, управляющее
системой, скоро будут их использовать так или иначе.
Для подробного знакомства с WinRM смотрите следующие
ссылки: