Как запустить приложение удаленно
Этичный хакинг и тестирование на проникновение, информационная безопасность
Операционная система Windows предоставляет различные способы управления удалёнными системами. Telnet, RDP, VNC — это только некоторые из них. Но эти варианты обычно связаны с графическим интерфейсом пользователя. Если мы предпочитаем интерфейс командной строки, есть альтернатива под названием PsExec.
PsExec — это портативный инструмент от Microsoft, который позволяет удалённо запускать процессы с использованием учётных данных любого пользователя. Это немного похоже на программу удалённого доступа, но вместо того, чтобы управлять удаленным компьютером с помощью мыши, команды отправляются на компьютер через командную строку.
Примечание: некоторые антивирусные сканеры сообщают, что один или несколько инструментов заражены вирусом «remote admin» («удалённый администратор»). Ни один файл из пакета PsTools не содержит вирусов, но они использовались вирусами, поэтому они вызывают уведомления о нежелательном ПО.
Вы можете использовать PsExec не только для управления процессами на удалённом компьютере, но и для перенаправления вывода консоли приложения на локальный компьютер, создавая впечатление, будто процесс выполняется локально.
Что такое PsExec и PsTools
На самом деле, PsExec это всего лишь один из инструментов из пакета PsTools. Программа PsExec используется чаще всего, поэтому обычно упоминается она, но в данной инструкции будут рассмотрены как примеры использования PsExec, так и примеры использования других инструментов из пакета PsTools.
Поскольку все утилиты имеют интерфейс командной строки, то если вы совсем не ориентируетесь в командной строке Windows (например, даже не знаете, как её открыть), то вначале ознакомьтесь со статьёй «Настройка рабочего окружения PowerShell в Windows и Linux».
Распакуйте скаченный архив, например, в папку PSTools.
Программа PsExec не требует установки. Но для запуска исполнимых файлов в командной строке нужно указать путь до них в файловой системе. Это можно сделать двумя способами:
1. Перед запуском программ перейти в папку со скаченными исполнимыми файлами, например, у меня это папка C:\Users\MiAl\Downloads\PSTools\, тогда, используя команду cd, в папку с файлами я перехожу следующим образом:
2. Скопировать папку PSTools в директорию C:\Windows\System32\ тогда все файлы PSTools будут доступны следующим образом:
Выберите любой вариант, который вам удобнее.
Что нужно для PsExec
Для работы PsExec на удалённом компьютере не требуется никакого программного обеспечения — то есть на компьютере, которым вы будете управлять, не нужно устанавливать никакую клиентскую часть. Но нужно соблюдение некоторых условий, чтобы PsExec работала, поэтому если первая попытка не удалась, то проверьте следующие требования.
1. На обеих машинах, т.е. удалённом компьютере (которым будем управлять) и локальном компьютере (с которого будем управлять), должен быть включён общий доступ к файлам и принтерам. Для их включения смотрите статью «SMB: настройка общей сетевой папки в Windows».
2. В современных Windows 10 у меня PsExec работала только с учётной записью «Администратор», видимой по той причине, что необходимы административные общие ресурсы (подробнее о них смотрите в статье «Как включить административные общие ресурсы в ОС Windows 10, 8 или 7 (C$, D$, $admin и другие)»).
На серверах Windows учётная запись «Администратор» включена по умолчанию.
В более старых версиях Windows, видимо, достаточно включения общего сетевого ресурса $admin для предоставления доступа к папке \Windows\. В Windows 10 папки $admin как сетевого ресурса нет вовсе.
3. Проверьте, что сетевой доступ к файлам и принтерам включён в файерволе. Для этого нажмите Win+r, введите там firewall.cpl.
Во вкладке «Разрешение взаимодействия с приложениями или компонентами в брандауэре защитника Windows»
найдите «Общий доступ к файлам и принтерам» и убедитесь, что стоит галочка в столбце «Частная» - если его там нет, то нажмите кнопку «Изменить параметры», поставьте галочку и нажмите ОК.
4. Убедитесь, что оба компьютера принадлежат к одной и той же рабочей группе (Workgroup).
5. Убедитесь, что вы правильно вводите пароль администратора удалённого компьютера.
Как включить учётную запись администратора
В моих тестах на последних Windows 10 и Windows Server 2019 команда PsExec работает только с учётной записью Администратор. Поэтому в этом разделе описано, как активировать пользователя Администратор, который по умолчанию присутствует в Windows, но в обычных, не серверных версиях, этот пользователь отключён.
Пользователя Администратор должен быть активен только на удалённом компьютере, где будут выполняться команды с помощью PsExec. На локальном компьютере учётная запись Администратор не требуется.
1. Нажмите клавиши Win+r, чтобы открыть окно запуска команды.
2. Введите lusrmgr.msc и нажмите Enter.
3. Откройте Пользователи.
4. Щёлкните правой кнопкой мыши Администратор и выберите Свойства.
5. Снимите флажок «Отключить учётную запись» и нажмите ОК.
6. Снова щёлкните правой кнопкой мыши учётную запись администратора и выберите «Задать пароль».
7. Укажите пароль для учётной записи администратора и нажмите «ОК».
Как запустить команду на удалённой системе
Основное использование команды PsExec — это просто запуск команды в удалённой системе. Чтобы запустить команду в удалённой системе, мы должны указать имя пользователя и пароль вместе с командой для запуска на удалённом компьютере.
Общий вид команды для запуска на удалённой системе:
- \\КОМПЬЮТЕР — имя компьютера Windows или его IP адрес в локальной сети
- -u Администратор — если операционная система на ином языке, то имя пользователя также будет другим, например, на английском это Administrator
- -p ПАРОЛЬ — пароль пользователя Администратор. Эту опцию можно пропустить, тогда команда запросит пароль для ввода
- КОМАНДА — программа, которую нужно выполнить на удалённой системе. После команды могут идти её опции.
Пример выполнения команды ipconfig на удалённом компьютере \\hackware-server от имени пользователя Администратор с паролем Aa1:
Как мы видим, команда выполняется в удалённой системе без проблем.
У удалённого компьютера HACKWARE-SERVER IP адресом является 192.168.0.53, поэтому следующая команда эквивалентна предыдущей:
Обратите внимание, что в Windows (в противоположность Linux), регистр букв в именах компьютеров, командах и путях не имеет значения — можно использовать буквы любого регистра в любых местах.
Как в PsExec запустить команду с аргументами
Аргументы программы достаточно указать через пробел после самой команды:
После запуска команды в удалённой системе вывод команды будет напечатан в текущий стандартный вывод, который является нашей текущей оболочкой (окном командной строки). Этот вывод может быть перенаправлен в файл с помощью символа >. Если у нас много удалённых систем для запуска команд, эта опция будет очень полезна.
В этом примере выходные данные команды ipconfig сохраняются в файл с именем HACKWARE-SERVER_ifconfig.
Для вывода содержимого файла можно использовать команду Get-Content или её более короткий псевдоним cat:
Pass The Hash (использование хеша вместо пароля)
Указывать в командной строке пароль плохо для безопасности. А использование интерактивного ввода не позволяет использовать psexec.exe в скриптах. Выход из этой ситуации — использовать хеш пароля.
PsExec не может напрямую использовать хеш (хотя это ошибочно утверждается в некоторых инструкциях). Для применения хеша (Pass The Hash) с PsExec нужно использовать Windows Credential Editor или Mimikatz или Metasploit.
Пример выполнения Pass The Hash с PsExec. Вначале в Mimikatz:
Затем PsExec запускается без указания имени пользователя и пароля
Примеры NTLM хешей и где их брать в статье «Как взломать пароль Windows».
Как копировать исполнимый файл с локального на удалённую систему
Выполнение команд в удалённой системе — очень полезная функция, но есть и другая полезная функция, которая облегчит работу системных администраторов и пентестеров. PsExec может использоваться для копирования исполнимых файлов из локальной системы в удалённую систему. Мы задействуем опцию -c для операции копирования. По завершении команд скопированный экземпляр будет удалён.
В этом примере мы скопируем cmd.exe. После завершения операции копирования в удалённой системе будет запущен cmd.exe.
Как мы видим, мы получаем оболочку cmd в удалённой системе.
С опцией -c можно указать любой файл.
Ещё один пример:
В последнем примере как использовать PsExec мы используем опцию -c для копирования программы ccleaner.exe на удалённый компьютер J3BCD011, а затем запускаем выгруженный файл с параметром /S, который говорит CCleaner включить тихую установку (не требует ввода пользователя). Добавление такого аргумента требует cmd.
Как запустить приложение с графическим интерфейсом на удалённой системе
Операционные системы Windows предоставляют по умолчанию графический интерфейс. PsExec можно использовать для открытия приложения с графическим интерфейсом на удалённой системе в указанной пользовательской консоли. Пользовательская консоль просто означает рабочий стол пользователя.
В этом примере мы запустим notepad.exe на удаленной системе. Пользователь удаленного системного администратора может взаимодействовать с этим блокнотом. То есть программа откроется на удалённой системе, как-либо взаимодействовать с ней на локальной системе не получится.
Поскольку используется опция -i, программа откроется в интерактивном режиме, что означает, что она фактически запустится на экране удалённого компьютера. Если бы -i была опущена в вышеупомянутой команде, то команда выполнялась бы в скрытом режиме, что означает не показывать какие-либо диалоговые окна или другие окна.
Мы получим нашу локальную оболочку после того, как удалённый пользователь закроет блокнот. После закрытия код выхода будет напечатан в консоли psexec.
Как запустить команду как пользователь SYSTEM
При выполнении команд в удалённой системе привилегии и владелец процесса будут предоставлены пользователем. Если нам нужно изменить владельца удалённых команд на пользователя SYSTEM, мы указываем опцию -s.
В этом примере мы будем использовать regedit.exe:
Обратите внимание, что если на локальном компьютере нужно запустить программу с привилегиями SYSTEM (это намного более высокий привилегии, чем Администратор), то psexec также поможет. Например, чтобы получить доступ к разделам реестра Windows HKEY_LOCAL_MACHINE\SAM\SAM\ достаточно выполнить команду:
Как создать интерактивную оболочку с подключением к удалённой системе
До сих пор мы выполняли команды удалённо. После выполнения команды подключение к удалённой системе закрывалось. Это как сессионное соединение. С помощью PsExec мы можем получить удалённую оболочку или командную строку (по аналогии SSH в Linux). PsExec подключается удалённо и предоставляет нам оболочку MS-DOS. Чтобы получить удалённую оболочку, мы указываем команду cmd.exe в удалённой системе.
Но начнём с того, что посмотрим информацию о текущей системе и пользователе:
Теперь создадим шелл до другого компьютера:
Во-первых, обратите внимание, что изменилось приглашение командной строки (вместо PowerShell она стало CMD).
Теперь просмотрим информацию о текущем пользователе и системе:
Как можно убедиться, мы теперь находимся в командной строке другого компьютера — это и есть шелл, интерактивная оболочка.
Локальным пользователем является hackware-mial\mial, а после подключения пользователь стал hackware-server\администратор. Локальная система имеет версию 10.0.18363.720, а удалённая — версию 10.0.17763.1039.
Инструменты PsTools
До сих пор мы рассмотрели возможности утилиты PsExec, которая является самой популярной в пакете PsTools. Но в PsTools ещё много утилит для типичных действий, которые регулярно выполняют системные администраторы. Рассмотрим их далее.
Как вывести список открытых удалённо файлов с помощью PsFile
Команду PsFile можно использовать для просмотра или закрытия открытых файлов. Синтаксис очень похож на команду PSexec. В этом примере мы перечислим все открытые удалённо файлы.
Как получить список SID на удалённой системе с PsGetSid
SID используется для более детальной идентификации пользователей Windows. Мы можем перечислить SID предоставленных пользователей с помощью команды PsGetSid, как показано ниже.
Как получить информацию об удалённой системе с PSInfo
PsInfo — это инструмент, используемый для получения об удалённой системе информации, такой как время работы, версия, вариант Windows и т. д.
Следующая информация об удалённой системе предоставлена в PsInfo:
- Uptime показывает, сколько дней и часов работает система
- Kernel Version показывает ядро операционной системы
- Product Type показывает версию операционной системы
- Product Version версия продукта
- Kernel Build Number номер сборки ядра
- Registered Organization организация
- Registered Owner владелец
- IE Version показывает версию Internet Explorer
- System Root показывает, где установлена операционная система
- Processor показывает количество процессоров или потоков
- Processor Speed скорость (частота) центрального процессора
- Processor Type показывает подробную версию и имя процессора
- Physical Memory количество физической памяти
- Video Driver показывает имя загруженного драйвера
Как получить процессов в удалённой системе с PsList
Процессы, запущенные в удалённой системе, могут быть легко перечислены с помощью команды PsList.
Вывод предоставит следующую информацию о процессах удалённой системы.
- Name — это имя исполняемого файла
- Pid — это ID процесса, который идентифицирует процессы (то есть отделяет друг от друга, является уникальной характеристикой процессов)
- Pri является приоритетом, который влияет на производительность процесса в периоды высокой нагрузки
- Thd — это номер потока
- Hnd — это счётчик открытых файловых обработчиков
- CPU Time — это общее использование ресурсов центрального процессора
- Elapsed Time — это время от начала процесса
Как убить процесс в удалённой системе с PsKill
Процессы, запущенные в удалённой системе, могут быть легко остановлены с помощью команды PsKill. Чтобы убить процесс, мы должны указать идентификатор процесса или имя процесса в качестве аргумента. Мы убьём удалённый процесс с идентификатором процесса 2064.
Как получить список журналов событий на удалённой системе с помощью PsLogList
Журналы удалённой системы могут быть легко выгружены в локальную систему с помощью команды PsLogList. Если мы используем эту команду без каких-либо дополнительных параметров, она выведет все журналы событий из удалённой системы, которые заполнят окно консоли. Так что для примера мы с опцией -m ограничим вывод последними 5 минутами журналов событий.
Как изменить пароль на удалённой системе с помощью PsPasswd
Пароли пользователей удалённой системы можно легко изменить с помощью команды PsPasswd. В этом примере мы изменим пароль администратора на 123456Aa.
Пинг с PsPing
Ещё одним полезным инструментом является PsPing, который создает ICMP-пакеты для проверки связи. Команда в примере запускается на локальной системе (но может быть запущена и удалённо).
Для запуска пинга с удалённого компьютера:
Управление службами в удалённой системе с помощью PsService
Команда PsService используется для просмотра, запуска, остановки служб в удалённой системе.
Как вывести список служб
Мы можем перечислить удалённые сервисы с опцией query.
Как запустить службу удалённо
Удалённый сервис может быть запущен с опцией start. В этом примере мы запустим сервис с именем mysql.
После запуска сервиса будет выведена информация о нём.
Как остановить службу удалённо
В следующем примере мы остановим службу mysql:
Как выключить, перезагрузить, приостановить удалённую систему с PsShutdown
Удалённую систему можно отключить командой PsShutdown, как показано ниже.
В наше время даже для собак придумали удаленное управление.
Возвращаясь к циклу «Конспект Админа», мне хотелось бы рассказать о вариантах запуска исполняемых программ на удаленных компьютерах. Эта статья будет интересна тем, у кого еще нет систем централизованного управления, но уже есть понимание утомительности ручного обхода рабочих станций и серверов. Либо тем, кому решения «под ключ» не интересны ввиду неспортивности.
В качестве того, зачем нужен такой запуск программ, можно привести недавнюю истерию с Петей\Не-Петей, когда все бросились проверять\отключать 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, оправдывая свое название, может подключаться к удаленным компьютерам при помощи 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, что само по себе достойно отдельной статьи ― стоит такую сделать или уже лишнее?
Кстати, поделитесь вашими способами скрытого и не очень запуска программ на удаленных компьютерах. Ну, за исключением эксплойтов.
В этой статье объясняется, как запустить приложение для Windows на удаленном устройстве.
Начиная с Windows 10 версии 1607, приложение UWP может запускать приложение UWP или классическое приложение для Windows удаленно на другом устройстве, которое также работает с Windows 10 версии 1607 или выше, при условии что вход на обоих устройствах выполнен с той же учетной записью Майкрософт (MSA). Это самый простой вариант использования Project Rome.
Функция удаленного запуска создает удобную пользовательскую среду для выполнения задач, и пользователь может начать выполнять задачу на одном устройстве и завершить на другом. Например, если пользователь слушает музыку на телефоне в своей машине, придя домой, он или она может продолжить воспроизведение на Xbox One. Удаленный запуск позволяет приложениям передавать контекстные данные в запускаемое удаленное приложение и продолжать работу в нем.
Предварительная настройка
Добавление возможности remoteSystem
Чтобы приложение могло запускать другое приложение на удаленном устройстве, вам потребуется добавить возможность remoteSystem в манифест пакета приложений. Можно использовать конструктор манифестов пакетов, чтобы добавить его, выбрав удаленная система на вкладке возможности , или вручную добавить следующую строку в файл Package. appxmanifest проекта.
Возможность совместной работы на разных устройствах
Кроме того на клиентском устройстве должно быть разрешено использование на нескольких устройствах. Этот параметр, доступ к которому можно получить в разделе Параметры: Система > Общие возможности > Передача между устройствами, включен по умолчанию.
Поиск удаленного устройства
Сначала вам потребуется найти устройство, к которому нужно подключиться. В статье Обнаружение удаленных устройств подробно описано, как это сделать. Мы воспользуемся простым способом, не прибегая к фильтрации по типу устройства или подключения. Мы создадим наблюдатель удаленных систем для поиска удаленных устройств и создадим обработчики событий, которые возникают при удалении или обнаружении устройств. Так мы получим коллекцию удаленных устройств.
В коде из этих примеров требуется, чтобы в ваших файлах класса имелся оператор using Windows.System.RemoteSystems .
Перед удаленным запуском необходимо сначала вызвать метод RemoteSystem.RequestAccessAsync() . Проверьте полученное значение и убедитесь, что у вашего приложения есть разрешение на доступ к удаленным устройствам. Эта проверка может не удаться, если вы не добавили возможность remoteSystem в приложение.
Обработчики событий наблюдателя систем вызываются при обнаружении устройства, к которому можно подключиться, или прекращении доступа к нему. Мы будем использовать эти обработчики событий для ведения актуального списка устройств, к которым можно подключиться.
Мы будет отслеживать устройства по идентификатору удаленной системы с помощью словаря. Для содержания исчисляемого списка устройств используется класс ObservableCollection. Класс ObservableCollection также упрощает привязку списка устройств к пользовательскому интерфейсу, но мы не будем этого делать в нашем примере.
Добавьте вызов метода BuildDeviceList() в код запуска приложения перед запуском удаленного приложения.
Запуск приложения на удаленном устройстве
Запустите приложение удаленно, указав устройство, к которому требуется подключиться, в API RemoteLauncher.LaunchUriAsync. Для этого метода существует три перегрузки. В самой простой из них, используемой в этом примере, указывается универсальный код ресурса (URI), с помощью которого активируется приложение на удаленном устройстве. В этом примере с помощью URI открывается приложение "Карты" на удаленной системе с трехмерным представлением башни Спейс-Нидл.
Другие перегрузки RemoteLauncher.LaunchUriAsync позволяют указывать такие параметры, как URI веб-сайта для проверки невозможности запуска подходящего приложения, способного обработать этот URI, на удаленном устройстве, и необязательный список имен семейства пакетов, который можно использовать для запуска этого URI на удаленном устройстве. Вы также можете предоставить данные в виде пар "ключ-значение". Вы можете передать данные приложению, которое запускается, чтобы предоставить контекст для удаленного приложения, например название песни, которую требуется воспроизвести, и текущее расположение воспроизведения при передаче воспроизведения с одного устройства на другое.
В практических сценариях можно предоставить пользовательский интерфейс для выбора целевого устройства. Однако для упрощения этого примера мы воспользуемся только первым удаленным устройством из списка.
Объект RemoteLaunchUriStatus, возвращаемый методом RemoteLauncher.LaunchUriAsync(), содержит сведения об успешном удаленном запуске или причинах его сбоя.
Связанные разделы
Удаленное управление предполагает подключение к другому компьютеру для получения доступа и распоряжения ресурсами. Благодаря этой возможности, пользователь может решать множество дополнительных задач дистанционно: проводить консультации, диагностику, мониторинг компьютера. Таким образом, упрощаются задачи, которые, зачастую, невозможно или нерационально выполнять на расстоянии.
Не останутся без внимания стандартные возможности Windows, а именно протокол удаленного рабочего стола (RDP), который будет рассмотрен в первую очередь. В конце обзора — сравнительная таблица с подробной информацией о наличии необходимых функций в упоминаемых приложениях.
RDP — протокол удаленного рабочего стола Windows
Начиная с Windows NT, предусмотрена поддержка протокола удаленного рабочего стола RDP (Remote Desktop Protocol). Соответственно, Windows 7 предлагает пользователю RDP 7 (доступно также обновление для Windows XP), Windows 8 — RDP 8 (доступно также для Windows 7 SP1). Возможности текущей версии, RDP 8, и будут рассмотрены.
Подключение к удаленному рабочему осуществляется с помощью приложения mstsc.exe, после ввода имени удаленного компьютера. Также в данном диалоге доступны параметры подключения.
Во вкладке «Экран» указывается разрешение удаленного рабочего стола (с возможностью включения полноэкранного режима), глубина цвета (до 32 бит).
В разделе «Локальные ресурсы» можно выбрать режим воспроизведения звука (на удаленном или текущем компьютере), включить запись аудио с удаленного рабочего стола. Также в этом разделе настраивается доступ к принтеру, локальному диску, дисководу, PnP-устройствам, портам.
Качество передачи данных регулируется во вкладке «Взаимодействие». Можно не только выбрать профиль подключения, но также самостоятельно определить параметры отображения: фон рабочего стола, сглаживание, визуальные эффекты, кэширование изображений. Все эти опции влияют на скорость передачи данных при удаленном доступе и способны существенно оптимизировать сетевой трафик.
Настройки безопасности доступны через компонент «Система» («Свойства системы» в Панели управления). Во вкладке «Удаленный доступ» можно разрешить подключения удаленного помощника, а также удаленные подключения к компьютеру. Проверка подлинности осуществляется на уровне сети. Также позволяется ограничить доступ, указав список разрешенных пользователей удаленного рабочего стола самостоятельно.
Таким образом, в штате Windows предусмотрен базовый инструментарий для работы с протоколом RDP. Но, как и предполагалось, расширенные настройки безопасности, поддержка мобильных платформ, презентационные функции пользователю не предлагаются.
Teamviewer
TeamViewer — пожалуй, самая известная программа для удаленного контроля среди бесплатных. Инструментарий позволяет налаживать удаленный доступ к домашнему компьютеру, управлять Рабочим столом с различных платформ и устройств, администрировать сервера Windows. Кроме того, разработчики выделяют корпоративные возможности TeamViewer: программу можно использовать для организации конференций, консультаций и помощи коллегам по работе.
Программа TeamViewer доступна для платформ Windows, Linux, Mac (с ограничениями), возможен удаленный доступ с устройств на базе ОС Android и iOS. Клиент TeamViewer может быть установлен в полной версии дистрибутива («Всё в одном»), в качестве системной службы (TeamViewer Host), в портативном формате, на терминальном сервере и других вариантах. Следует выделить модуль TeamViewer QuickSupport, который не требует установки и оптимален для выполнения срочных задач.
В полной версии программы доступны клиентская и операторская части. Интерфейс TeamViewer представлен главным окном с двумя вкладками — «Удаленное управление» и «Конференция».
Удаленное управление
Пользователь получает в распоряжение уникальный ID, для идентификации компьютера в сети, и временный пароль. Также, используя ID партнера (опционально — IP-адрес) и зная его пароль, можно установить подключение к удаленном устройству.
- Удаленное управление: удаленное управление устройством или совместная работа на одном компьютере
Все действия производятся на другом компьютере через окно удаленного управления. При этом, возможна смена разрешения и масштабирование, переключение между активными мониторами и другие опции. - Передача файлов: обмен файлами во время сеанса
Для обмена данными в TeamViewer используется двухпанельный файловый менеджер, в котором доступны ресурсы хоста и клиента и основные файловые операции для работы с ними, как то: создание папок, удаление, копирование и др. - VPN: режим виртуальной сети
Между компьютерами можно установить виртуальную частную сеть для предоставления общего доступа к устройствам (принтеры, съемные носители и др.).
Конференции
В данной вкладке TeamViewer возможно создание блиц-конференции либо подключение к существующей. Среди доступных инструментов можно отметить голосовую и видеосвязь, демонстрацию экрана, запись сеанса с возможностью конвертации в AVI. «Белая доска» (Whiteboard) используется как полотно для рисования, создания набросков, комментариев.
В целях безопасности, в программе используется шифрование сеансов (AES 256 бит) и трафика (обмен ключами RSA). Файлы, передаваемые во время сеанса, имеют подпись VeriSign, конечный пользователь должен дать свое согласие о получении. Посредством настроек TeamViewer возможно ограничение доступа: установка доступа ко всем операциям только после подтверждения или запрет на исходящие сеансы.
Резюме
TeamViewer — универсальное решение возможностью выбора метода удаленного контроля. Благодаря широко представленным мультимедийным функциям, удобной организации контактов, программа оптимальна для проведения конференций.
Ammyy Admin
Ammyy Admin не требует установки и совмещает в себе простой интерфейс и гибкую функциональность. Программа бесплатна, не имеет ограничений при домашнем использовании. Распространяется для платформ Windows, Linux/FreeBSD, мобильные устройства не поддерживаются.
В главном окне доступны клиентский и операторский модули. Пользователь получает в распоряжение ID, который генерируется с привязкой к оборудованию. Опционально, при подключении можно задействовать IP.
Клиентскую часть можно активировать или остановить, тем самым установив запрет на подключения; по умолчанию Ammyy Admin работает в режиме ожидания. Отследить статус подключения можно с помощью индикаторов, расшифровка которых находится в руководстве.
Адресная книга есть, контакты можно объединять в группы, изменять порядок контактов, вручную добавлять новые адреса. Сетевой статус компьютеров, однако, отслеживать нельзя.
Из основных режимов подключения можно выделить Desktop (удаленный Рабочий стол), File manager (Файловый менеджер) и Microsoft RDP. RDP позволяет подключиться к удаленному рабочему столу, предусмотрены штатные функции Windows.
Из других режимов, остаются Voice Chat (голосовой чат) и Speed Test (тест скорости соединения). Очевидно, что мультимедийные возможности здесь представлены не столь полно, как в TeamViewer: Ammyy Admin не позиционируется как некое корпоративное решение. Можно отметить функцию демонстрации экрана, что в сочетании с голосовым чатом делает Ammyy Admin программой, пригодной для удаленной помощи.
Файловый менеджер — двухпанельный, через него доступны стандартные файловые операции между клиентом и оператором.
Резюме
Основные преимущества Ammyy Admin — это скорость работы, простой и быстрый интерфейс, относительная независимость от серверов Ammyy и бесплатность. Вероятно, для работы в команде это не самое оптимальное решение, но для индивидуального использования, с несколькими компьютерами в распоряжении, — вполне.
Supremo Remote Desktop
Supremo Remote Desktop — удобный портативный инструмент для удаленного контроля, дистанционной помощи другим пользователям. Работает под управлением Windows XP и выше, мобильные устройства не поддерживаются.
Программа запускается без установки, для начала работы хост и клиент должны загрузить Supremo Remote Desktop с сайта разработчика. Традиционно, поддерживаются два режима работы: использование компьютера в качестве точки доступа и подключение к удаленному устройству. В первом случае, доступ открывается по нажатию кнопки Start. В секции Your credentials доступны данные, необходимые для подключения: ID и пароль, генерируемый вначале сессии. Клиент запрашивает авторизацию при входе (опция Ask authorization), тем самым предотвращаются попытки несанкционированного доступа к компьютеру.
Для подключения к хосту используется поле Your partner, можно также выбрать адрес из адресной книги (Address Book). Список активных соединений отображается в секции Connections главного окна программы.
Из других инструментов, имеющихся в Supremo Remote Desktop, можно отметить множественное подключение пользователей к одной машине. Для передачи файлов используется менеджер, имеющий сходство с классическим двухпанельным, доступна закачка и скачивание файлов. Никаких презентационных и мультимедийных функций не предусмотрено. Это, безусловно, ограничивает использование Supremo в качестве удаленного помощника.
Резюме
Supremo Remote Desktop — простая в использовании программа, обладающая стандартным набором инструментов для удаленного контроля. На нее могут обратить внимание пользователи, которые не нуждаются в мультимедийных функциях.
mRemoteNG
Интерфейс mRemoteNG представлен несколькими секциями, в наличии панели, вкладочность — в результате, пользователю легко настроить внешний вид программы на свой лад. Основные опции доступны в секции «Конфигурация». Здесь можно указать необходимый для подключения протокол и сопутствующие параметры: настройки подключения, протокол, шлюз, внешний вид, ресурсы и другие. В «Конфигурации» отображается статус подключения хоста.
Соединение с устройствами осуществляется через панель быстрого подключения — здесь несложно создать несколько конфигураций, что, в случае с множеством протоколов, весьма удобно. Соединения можно группировать, а конфигурации легко импортировать / экспортировать.
Передача файлов осуществляется по протоколу SSH — что не очень привычно для рядового пользователя и в то же время, более надежно по части безопасности. К дополнительным функциям относится сканер портов, в список можно добавить внешние инструменты.
В глаза бросается невнятность mRemoteNG. Это проявляется в непривычном интерфейсе: он не столь удобен в работе и настройке с каждым конкретным протоколом. В конфигурации соединений многие параметры сокращены до неузнаваемости — это можно списать на качество локализации. При попытке найти описание функций, документация умалчивает, ее разделы пустуют.
Резюме
Примечательная особенность mRemoteNG — объединение популярных протоколов в единую графическую оболочку. Настроив несколько соединений, отпадает необходимость в использовании нескольких специализированных решений. Этот плюс в некоторой степени компенсирует неинтуитивность прогаммы и отсутствие документации.
TightVNC
TightVNC Software занимается разработкой нескольких продуктов: TightProjector, RFB Player, VNC Reflector и TightVNC. TightVNC — программа для удаленного контроля, использовать ее можно для решения проблем с компьютером, образовательных целей, администрирования.
TightVNC — кроссплатформенное решение. Для Linux, однако, на момент написания обзора доступна только старая версия программы, Mac OS не поддерживается. Тем не менее, в наличии есть версия TightVNC на платформе Java, что предполагает возможность удаленного контроля через веб-сервер. На платформе Windows, TightVNC устанавливается как обычное приложение или в качестве системного сервиса. Поддерживается «тихий» режим, достаточно легко перенести конфигурацию на другие компьютеры или удаленно обновить сервера.
Инструментарий TightVNC делится на два модуля: WinVNC — серверная часть, устанавливаемая на удаленной машине, и приложение Viewer, предназначенное для просмотра содержимого экрана удаленного сервера. В настройках подключения Viewer, задаются адрес VNS-сервера, скорость передачи.
Следует заметить, что TightVNC не генерирует пароль доступа, его нужно самостоятельно определить в настройках. Статус соединения можно узнать по отображению значка в области уведомлений: если к компьютеру подключен хотя бы один пользователей, цвета иконки меняются.
Разработчики намекают, что передача данных через VNC, несмотря на изначальную DES- защиту пароля, несовершенна. В целях безопасности, рекомендуется использовать SSH-тунеллинг. В то же время, настройки TightVNC позволяют снизить вероятность неавторизованного доступа к нулю. В дальнейших версиях программы также планируется ввести более надежные методы защиты.
Резюме
TightVNC удивляет большим количеством настроек, касающихся соединения, безопасности. Это хороший выбор для администратора, но по части переноса на сервер и дальнейшего обслуживания — не лучший вариант для малоопытного пользователя.
Remote Utilities
Remote Utilities — решение, по уверению разработчика, предназначенное для малого и среднего бизнеса. Удаленный контроль возможен напрямую, через локальную сеть или Интернет. При работе с набором утилит не требуется корректировка брандмауэра или предварительная настройка.
Комплекс работает только под Windows, для Linux предлагается установить эмулятор Wine — но только для работы с RUT-Viewer. Мобильная версия отсутствует.
Remote Utilities состоит из трех модулей: просмотрщик — устанавливается на локальный компьютер, хост — на удаленный, агент — модуль для поддержки пользователей. Агент, следует отметить, оптимален для быстрого налаживания связи между клиентом и хостом. Удаленная установка, равно как и обновление, несложна, благодаря инструменту Remote installation tool.
Предусмотрены штатные инструменты для удаленного контроля, такие как удаленный менеджер устройств, просмотрщик реестра, терминал и менеджер файлов. Менеджер двухпанельный, с возможностью копирования и перемещения данных, запуск и открытие приложений и документов на удаленном хосте. Также в наличии поддержка терминалов, контроль питания.
Текстовый чат весьма прост, но нужно учесть, что Remote Utilities также предлагает пользователям аудио-/видео- чаты. Здесь стоит упомянуть возможность захвата видео и регулировку качества передачи — от 24-битной передачи цвета до оптимизированной «картинки» для сети с ограниченной передачей (в дополнение, есть параметр Network usage mode в настройках Properties удаленного компьютера). Одним словом, присутствуют те возможности, которые не раз перечислялись в подобных программах с поддержкой RDP.
Резюме
Простой комплект утилит для удаленного соединения, без выбора протокола соединения, однако предельно понятный в установке и настройке. По существу, не хватает кроссплатформенности и удобного интерфейса для одновременной работы с несколькими устройствами.
[+] Удаленная установка и обновление в удаленном режиме
[+] Наличие базовых настроек для RDP
[+] Работа по локальной и сети Интернет
[+] Бесплатность (при некоммерческом использовании)
Перечисленные программы позволяют контролировать ПК с других компьютеров или мобильных устройств через интернет. Получив удалённый доступ к устройству, вы сможете управлять им так, будто оно находится рядом: менять настройки, запускать установленные приложения, просматривать, редактировать и копировать файлы.
В статье вы увидите такие термины, как «клиент» и «сервер».
Клиент — это любое устройство (ПК, планшет или смартфон), а сервер — удалённый компьютер, к которому оно подключается.
1. Удалённый помощник (Microsoft Remote Assistance)
- К каким платформам можно подключаться: Windows.
- С каких платформ возможно подключение: Windows.
«Удалённый помощник» — встроенная в Windows утилита, благодаря которой можно быстро подключать компьютеры друг к другу без сторонних программ. Этот способ не позволяет обмениваться файлами. Но к вашим услугам полный доступ к удалённому компьютеру, возможность совместной работы с другим пользователем и текстовый чат.
Инструкция для сервера
Инструкция для клиента
- Откройте файл, созданный сервером, и введите полученный пароль. После этого вы увидите экран удалённого компьютера и сможете наблюдать за ним в специальном окне.
- Чтобы управлять файлами и программами чужого компьютера так, будто вы находитесь рядом с ним, кликните в верхнем меню «Запросить управление» и дождитесь ответа от сервера.
Файл и пароль являются одноразовыми, для следующего сеанса они уже не подойдут.
2. Удалённый рабочий стол (Microsoft Remote Desktop)
- К каким платформам можно подключаться: Windows (только в редакциях Professional, Enterprise и Ultimate).
- С каких платформ возможно подключение: Windows, macOS, Android и iOS.
Это средство представляет собой ещё одну встроенную в Windows программу, предназначенную для удалённого доступа. От предыдущей она отличается прежде всего тем, что выступающий сервером компьютер нельзя использовать во время подключения: его экран автоматически блокируется до конца сеанса.
Зато клиентом может быть Mac и даже мобильные устройства. Кроме того, подключённый пользователь может копировать файлы с удалённого компьютера через общий буфер обмена.
Чтобы использовать «Удалённый рабочий стол», нужно правильно настроить сервер. Это займёт у вас некоторое время. Но если не хотите разбираться в IP‑адресах и сетевых портах, можете использовать другие программы из этой статьи. Они гораздо проще.
Инструкция для сервера
- Включите функцию «Удалённый рабочий стол». В Windows 10 это можно сделать в разделе «Параметры» → «Система» → «Удалённый рабочий стол». В старых версиях ОС эта настройка может находиться в другом месте.
- Узнайте свои локальный и публичный IP‑адреса, к примеру с помощью сервиса 2IP. Если устройством‑клиентом управляет другой человек, сообщите ему публичный IP, а также логин и пароль от своей учётной записи Windows.
- Настройте на роутере перенаправление портов (проброс портов или port forwarding). Эта функция открывает доступ к вашему компьютеру для других устройств через интернет. Процесс настройки на разных роутерах отличается, инструкцию для своей модели вы можете найти на сайте производителя.
В общих чертах действия сводятся к следующему. Вы заходите в специальный раздел настроек роутера и создаёте виртуальный сервер, прописывая в его параметрах локальный IP‑адрес и порт 3389.
Открытие доступа к компьютеру через перенаправление портов создаёт новые лазейки для сетевых атак. Если боитесь вмешательства злоумышленников, ещё раз подумайте, стоит ли использовать именно этот способ.
Инструкция для клиента
- Наберите в поиске по системе «Подключение к удалённому рабочему столу» и запустите найденную утилиту. Или нажмите клавиши Win+R, введите команду mstsc и нажмите Enter.
- В открывшемся окне введите публичный IP‑адрес компьютера, который выступает сервером. Затем укажите логин и пароль от его учётной записи Windows.
После этого вы получите полный контроль над рабочим столом удалённого компьютера.
3. Общий экран (Screen Sharing)
- К каким платформам можно подключаться: macOS.
- С каких платформ возможно подключение: macOS.
Пожалуй, простейший способ установить удалённое подключение между двумя компьютерами Mac — сделать это с помощью стандартного macOS‑приложения «Общий экран». Сторонние утилиты для этого вам не понадобятся.
Получив запрос, пользователь на стороне сервера может разрешить полное управление своим компьютером и его содержимым или только пассивное наблюдение.
4. Удалённый рабочий стол Chrome (Chrome Remote Desktop)
- К каким платформам можно подключаться: Windows, macOS, Linux.
- С каких платформ возможно подключение: Windows, macOS, Linux, Android, iOS.
«Удалённый рабочий стол Chrome» — очень простая кросс‑платформенная программа для организации удалённого доступа. Её десктопная версия представляет собой приложение для Google Chrome, которое позволяет управлять всей системой без лишних настроек.
В десктопной версии «Удалённый рабочий стол Chrome» отображаются два раздела меню: «Удалённый доступ» и «Удалённая поддержка». В первом необходимо задать имя и пароль для подключения к компьютеру. Во втором можно сгенерировать код для соединения (сервер), также ввести код (клиент) для подключения к удалённому ПК.
Мобильное приложение «Удалённый рабочий стол Chrome» предоставляет удалённый доступ к компьютеру. При этом подключаться в обратную сторону — с компьютера к мобильному устройству — нельзя. В то же время десктопная версия может сделать компьютер как клиентом, так и сервером.
Читайте также: