1000++ способ запуска команд на удаленном компьютере
В наше время даже для собак придумали удаленное управление.
Возвращаясь к циклу «Конспект Админа», мне хотелось бы рассказать о вариантах запуска исполняемых программ на удаленных компьютерах. Эта статья будет интересна тем, у кого еще нет систем централизованного управления, но уже есть понимание утомительности ручного обхода рабочих станций и серверов. Либо тем, кому решения «под ключ» не интересны ввиду неспортивности.
В качестве того, зачем нужен такой запуск программ, можно привести недавнюю истерию с Петей\Не-Петей, когда все бросились проверять\отключать SMBv1 и загружать обновления. Да и провести инвентаризацию или установить срочный патч таким методом тоже можно.
Когда-то давно я устроился работать в организацию в период эпидемии Kido\Conficker. Наиболее простым способом выяснить, все ли хорошо в ИС компании, была славная утилита от Касперского под названием Kido Killer, которая проверяла наличие вируса и устраняла его. Запускать программу на доброй сотне машин руками было невесело, поэтому пришлось знакомиться с автоматизацией.
Если в операционных системах *nix для удаленного запуска, как правило, используется SSH, то у Windows способов запуска программ и скриптов воистину как песка в пустыне. Я разберу основные варианты, как общеизвестные, так и экзотические. Таких очевидных вещей как telnet-сервер касаться не буду, тем более Microsoft уже убрала его из современных ОС.
Способы старые, временем проверенные
Psexec
Пожалуй, это первое, что приходит на ум, когда идет речь об удаленном запуске программ. Утилита от Марка Руссиновича используется еще со времен Windows NT и до сих пор применяется. Помимо основной функции, можно использовать ее и как Runas, и для запуска программ в пользовательской сессии терминального сервера. Psexec также позволяет задавать ядра процессора, на которых будет запускаться программа, и ее приоритет в системе.
В качестве примера посмотрим, установлено ли обновление, закрывающее нашумевшую уязвимость SMB на списке компьютеров:
В файле computers.txt находится список компьютеров. Для запуска по всему домену можно использовать \\*. В файле \\server\share\log.txt будут появляться имена рабочих станций или серверов без обновления. Если в домене существуют компьютеры с *nix на борту или нет доступа к административному сетевому ресурсу Admin$ ― команда на этой машине не выполнится, но обработка продолжится. Чтобы скрипт не зависал при каждой попытке подключения, можно задать тайм-аут с помощью ключа -n.
Если компьютер выключен ― мы об этом не узнаем. Поэтому лучше предварительно проверять доступность машин или собирать в файле информацию об успешном или неудачном выполнении.
К минусам Psexec можно отнести то, что она из-за своего удобства и популярности часто используется вирусописателями. Поэтому антивирусные системы могут обнаруживать утилиту как опасность вида remote admin.
По умолчанию процесс на удаленной машине выполняется от имени пользователя, запустившего Psexec. При необходимости логин и пароль можно задать явно или же использовать аккаунт SYSTEM.
Для управления системами Windows с помощью разных графических утилит часто используется WMI (Windows Management Instrumentation) ― реализация объектно-ориентированного стандарта управления WBEM. В качестве утилиты с графическим интерфейсом для работы с WMI можно использовать wbemtest.exe.
Для работы с WMI из консоли создана wmic.exe. Например, для проверки установленных обновлений вместо жутковатой конструкции из предыдущего примера можно использовать простую команду:
Использовать список компьютеров также можно командой /node:»@computers.txt».
Еще при помощи WMI можно запускать программы – синтаксис предельно прост:
К сожалению, в отличие от Psexec, получить вывод в консоли не получится ― придется выводить результаты команды в файл.
По умолчанию процесс на удаленной машине выполняется от имени пользователя, запустившего wmic. При необходимости логин и пароль можно задать явно.
Групповые политики и скрипты
Если предыдущие варианты не требовали доменной среды, то в этом случае потребуется домен. Поддерживаются скрипты при входе и выходе пользователя из системы, а также при ее включении и выключении. Поскольку каждый администратор Windows сталкивался с ними, я не буду подробно расписывать как ими пользоваться ― лишь напомню, где их искать.
Скрипты, выполняющиеся при старте и завершении системы.
Скрипты, выполняющиеся при входе и выходе пользователя из системы.
Скрипты, настраиваемые в пользовательском разделе, выполняются от имени пользователя, а в разделе компьютера ― под аккаунтом SYSTEM.
Назначенные задания
Довольно интересный способ, заслуживающий право на жизнь. Назначенные задания можно создавать из командной строки при помощи утилиты schtasks.exe, выполнять их, затем удалять. Подробнее с синтаксисом можно ознакомиться в документации, я же разберу пример использования назначенных заданий в доменной среде. Предположим, нам нужно выполнить команду как можно быстрее вне зависимости от того, выключен компьютер или нет. Для этого используются так называемые предпочтения групповых политик (Group Policy Preference).
Искать установку назначенных заданий следует в конфигурации компьютера или пользователя ― «Настройка ― Параметры панели управления ― Назначенные задания».
Создание нового назначенного задания.
Для выполнения команды или скрипта ASAP понадобится создать «Немедленную задачу (Windows 7 и выше)». Если вдруг в инфраструктуре остались машины под управлением Windows XP, то подойдет «Очередное задание (Windows XP)».
Стоит сделать несколько политик с соответствующими WMI-фильтрами или создать два разных назначенных задания в одной политике с нацеливанием ― например, при помощи того же WMI-фильтра. Это поможет избежать конфликтов в разнородной среде со старыми и новыми Windows.
Пример WMI-фильтра для применения политики только на компьютерах с Windows XP:
В остальном процедура создания назначенного задания тривиальна. Единственное, не забывайте отметить пункт «Применить один раз и не применять повторно», если задача не требует повторного запуска.
Запускаем немедленную задачу только один раз.
При использовании таких назначенных заданий программа запустится, как только компьютер получит обновление групповой политики. Это удобно: не нужно проверять доступность компьютеров в случае Psexec и wmic и заставлять пользователей перезагружать машины, как в случае скриптов групповых политик. При необходимости можно скопировать файл скрипта локально в разделе «Настройка ― Конфигурация Windows ― Файлы».
Назначенные задания позволяют явно задать имя пользователя для запуска программы, в том числе и для SYSTEM.
Через реестр
Модификация реестра на пользовательских машинах ― странный вариант, лишь на случай крайней необходимости. Можно использовать ветки Run или RunOnce. Подробнее о них ― в документации. Сама модификация реестра может проводиться через групповые политики или из командной строки ― например, такой командой:
В зависимости от ветки реестра, процесс будет выполняться или под пользователем, выполнившим вход в систему, или под аккаунтом SYSTEM.
Есть и другие способы, такие как правка ярлыков в папке «Автозагрузка» или добавление в ярлык к популярной программе && script.cmd, но эти методы уже из серии «можно, но не нужно».
Теперь перейдем к новым инструментам.
Способы новые или куда же без PowerShell
PowerShell, оправдывая свое название, может подключаться к удаленным компьютерам при помощи WMI, RPC и WS-Management (WSMan). Использование последнего метода требует предварительной настройки.
Командлеты, не требующие предварительной настройки, как правило, имеют параметр ComputerName, но не имеют параметра Session. Посмотреть список таких командлетов можно командой:
Для настройки WSMan в общем случае достаточно выполнить команду Enable-PSRemoting-Force. Она запустит службу удаленного управления WinRM и пропишет исключения в фаерволе ― в принципе, это можно сделать для всего домена при помощи групповых политик. Подробнее настройка описана в документации.
После того как все компьютеры будут готовы принимать запросы, мы сможем подключаться при помощи соответствующих командлетов PowerShell. Для проверки возможности подключения используется командлет Test-WSMan.
Проверка возможности подключения.
Для того чтобы выполнить определенную команду или скрипт, используется командлет Invoke-Command со следующим синтаксисом:
Где COMPUTER ― имя компьютера, COMMAND ―– имя команды, а USERNAME ― имя пользователя, если оно нужно.
Смотрим содержимое диска С удаленного компьютера.
Если же нам нужно получить полноценную консоль ― не автоматизации ради, а ради управления конкретным компьютером, ― то можно использовать командлет Enter-PSSession.
Работаем в консоли удаленного компьютера.
Напомню, что с помощью JEA можно ограничить доступные подобной сессии командлеты или дать доступ нужным без прав администратора.
Конечно, кроме встроенных средств и небольших утилит, существует множество программ для управления структурой. Помимо взрослых решений, для управления конфигурациями вроде Chef, Ansible и MS SCCM можно использовать и средства мониторинга вроде Zabbix, и даже консоль управления антивирусом Касперского.
В период гетерогенных структур хорошо бы иметь возможность унифицированного управления Windows и Linux. Это можно сделать и с помощью PowerShell, что само по себе достойно отдельной статьи ― стоит такую сделать или уже лишнее?
Кстати, поделитесь вашими способами скрытого и не очень запуска программ на удаленных компьютерах. Ну, за исключением эксплойтов.
Источник
Бесплатные программы для удаленного управления компьютерами
Программы удаленного управления компьютером позволяют дистанционно управлять другим компьютером через Интернет или в локальной сети. Это удобно, когда необходимо помочь не очень опытному пользователю, например, родственнику или другу, плохо разбирающемуся в компьютере что-либо сделать на нем, не сходя со своего уютного кресла и не тратя при этом свои нервы и время на телефонные разговоры. Такие программы еще удобно использовать для удаленной работы, например, из дома для подключения в офис и наоборот — для доступа к своему домашнему ПК, для системного администрирования целого парка компьютеров и серверов.
Проведем сравнительный анализ программ удаленного управления, выделим их преимущества и недостатки.
TeamViewer
Одна из самых популярных программ для удаленного доступа, ее можно быстро скачать и установить или сразу запустить, без установки, с этим сможет справиться даже не очень опытный пользователь. При запуске программа отображает окно с ID и паролем для доступа к данному компьютеру, а также TeamViewer позволяет подключится к другому компьютеру задав его ID и пароль.
Преимущества:
В программе доступно несколько основных режимов работы это удаленное управление, передача файлов, чат, демонстрация своего рабочего стола. Программа позволяет настроить круглосуточный доступ к компьютеру, это будет удобно для системного администрирования. Скорость работы вполне достойная, есть версии для всех мобильных платформ, для различных операционных систем, что очень радует. Простой и вполне понятный интерфейс плюс ряд дополнительных утилит для расширения функционала программы, будут полезны для служб удаленной поддержки.
Недостатки:
Хоть программа и является бесплатной, но только для не коммерческого использования, а также при работе с ней более 5 минут возникает ряд трудностей, например TV может заблокировать сеанс удаленного подключения, распознав его как коммерческое использование. Для круглосуточного удаленного доступа или администрирования нескольких компьютеров, компьютерной сети, придется платить за дополнительные модули программы. Стоимость программы высокая.
Итог:
Данная программа идеально подойдет для разового удаленного подключения или использования ее непродолжительные периоды времени. Удобно использовать с мобильных платформ, но не администрировать большое количество компьютеров. За дополнительные модули придется доплачивать.
LiteManager
Простая, но довольно таки мощная по возможностям программа, состоит из двух частей, первая это Server который нужно установить или запустить на удаленном компьютере и Viewer, который позволяет управлять другим компьютером. Для работы программа требует немного больше навыков и опыта от управляющего, хотя работа сервером даже проще чем в TeamViewer, сервер можно один раз установить и больше не каких действий от пользователя не нужно, ID будет всегда постоянный, его даже можно задать самому в ручную, что очень удобно для запоминания. Версия LiteManager Free является бесплатной для личного и коммерческого использования.
Преимущества:
В программе помимо основных режимов удаленного доступа: удаленного управления, передачи файлов, чата, диспетчера задач, редактора реестра, есть и уникальные функции, например: инвентаризация, запись экрана, удаленная установка. Программа бесплатна для использования на 30-ти компьютерах, ее можно использовать для круглосуточного доступа без каких либо дополнительных модулей. Отсутствуют какие-либо ограничения по времени работы. Есть возможность настройки своего собственного ID сервера для настройки корпоративной службы поддержки. В программе нет каких-либо ограничений по времени работы и блокировок.
Недостатки:
Не хватает клиента под мобильные платформы или другие системы, есть ограничения на 30 компьютеров в бесплатной версии, для администрирования большего количества необходимо приобрести лицензию. Некоторые, специфичные режимы работы доступны только в Pro версии.
Итог:
Программа Litemanager подойдет для оказания удаленной поддержки, для администрирования нескольких десятков компьютеров абсолютно бесплатно, для настройки собственной службы удаленной поддержки. Стоимость программы самая низкая в своем сегменте и лицензия не ограничена по времени.
Ammy admin
Программа в основном аналогична TeamViewer, но более простой вариант. Присутствуют только основные режимы работы — просмотр и управления, передача файлов, чат. Программа может работать без установки, бесплатная для некоммерческого использования.
Преимущества:
Простая и легкая программа, можно работать как в Интернете, так и в локальной сети, обладает минимальными настройками и не требует каких-то особых умений и навыков. По сравнения с TeamViewer более мягкая лицензионная политика.
Недостатки:
Минимум функций для удаленного управления, администрировать большой парк компьютеров будет сложно, при долгом использование, более 15 часов в месяц, сеанс работы может быть ограничен или заблокирован, платная для коммерческого использования,
Итог:
Данная программа больше подойдет для разового подключения к компьютеру и не сильно сложных манипуляциях, например в качестве оказания помощи не опытному пользователю в настройке компьютера.
RAdmin
Одна из первых программ удаленного управления и известная в своем кругу, не мог ее не упомянуть, больше предназначенная для системного администрирования, основной акцент сделан на безопасности. Программа состоит из двух: компонент сервера и клиента. Требует установки, не опытному пользователю будет не просто с ней разобраться, программа предназначена в основном для работы по IP адресу, что не совсем удобно для оказания тех. поддержки через Интернет. Программа платная, но обладает бесплатным тестовым периодом.
Преимущества:
У программы высокая скоростью работы, особенно в хорошей сети, благодаря видео драйверу захвата рабочего стола, повышенной надежностью и безопасностью. Встроена технология Intel AMT, что позволяет подключаться к BIOS удаленного компьютера и настраивать его. Реализованы только основные режимы работы удаленное управление, передача файлов, чат и т.д.
Недостатки:
Почти нет возможности для работы без IP адреса, т.е. соединяться по ID. Отсутствует клиент для мобильных систем. Нет бесплатной версии, только тестовый период 30 дней. Для работы с программой необходимы навыки опытного пользователя. При подключении видео драйвер может отключать графическую оболочку Aero, иногда мигает экран.
Итог:
Программа больше подойдет для системных администраторов для администрирования компьютеров и серверов в локальной сети. Для работы через Интернет, возможно, придется настроить VPN туннель.
Заключение
Есть еще много аналогичных программ для удаленного доступа, это более новые (Airoadmin, Supremo), немного устаревшие (VNC, Dameware, PCAnywhere) и другие более дорогие красивые, но выполняющие те же самые основные функции. Если решите приобрести лицензию, обратите внимание, что некоторые программы лицензируются на временное пользование на год, после чего нужно платить еще и еще.
Думаю, выбрать подходящую программу для себя вы сможете сами, или лучше всего использовать несколько решений в комплексе.
Источник