Настройка Windows Remote Desktop в командной строке
Если вы интересуетесь использованием Windows Remote Desktop, то вы уже наверняка знаете, что эта служба делает, но, возможно, у вас нет полного представления о ее возможностях. Windows Remote Desktop позволяет вам удаленно контролировать практически любой ПК или сервер с Windows. Вы можете удаленно управлять ПК с ПК, сервером с сервера, ПК с сервера или сервером с ПК. Серверный компонент RDP встроен в операционную систему Windows — в XP, Vista и Windows 7 (но вы должны включить remote desktop на целевом компьютере). Если вы удаленно работаете с компьютером, это соединение с ПК является единственным, и вы при этом контролируете консоль. Если же вы работаете с сервером (скажем, с Windows 2003 или 2008), вы можете подключить многих пользователей к серверу с помощью службы Terminal Services.
Однако, вне зависимости от того, используете ли вы серверную ОС или нет, клиентская часть одна и та же — Remote Desktop Connection или клиент Remote Desktop, как я ее называю. Исполняемый файл для удаленного соединения называется mstsc.exe, он располагается в %systemroot%/system32/mstsc.exe.
Давайте же разберемся с тем, что вы можете сделать с помощью mstsc.exe’
Windows
Для установки RDP-соединения из ОС Windows используется сервис «Подключение к удаленному рабочему столу».
Его можно открыть через меню Пуск -> Cтандартные -> Подключение к удаленному рабочему столу; или с помощью командной строки:
Появится окно настройки подключения к удаленному рабочему столу, где необходимо ввести IP-адрес сервера.
Здесь же вы можете подключить к серверу диск или съемный носитель (например, карту памяти или CD-диск), физически подключенный к вашему локальному компьютеру, для переноса данных на сервер. Для этого нажмите на кнопку Параметры для отображения дополнительных опций. Перейдите на вкладку Локальные ресурсы, где нажмите на кнопку Подробнее.
В открывшемся окне отметьте нужное устройство и нажмите ОК:
Далее нажмите Подключить.
При первом подключении появится уведомление о недоверенном сертификате безопасности:
Это связано с тем, что подключение к серверу шифруется сертификатом, который заверен самим сервером, а не центром сертификации. Чтобы данное уведомление не появлялось при последующих подключениях, можно отметить чекбокс «Больше не выводить запрос о подключениях к этому компьютеру». Далее нажмите Да, после чего соединение с сервером по RDP будет установлено.
При первом подключении к серверу, при появлении следующего уведомления нажмите «Да». Это позволит корректно подключаться к серверу в дальнейшем.
Примечания по команде MSTSC
- Для создания подключения к удаленной консоли необходимо быть администратором на сервере, к которому происходит подключение.
- Для каждого пользователя файлы .rdp хранятся в папке «Мои документы» как скрытые.
Для подключения к удаленному рабочему столу сервера с IP-адресом 192.168.1.1 необходимо ввести команду: mstsc /v:192.168.1.1
↑ Возможности удалённого доступа по RDP
У подключения по протоколу RDP немного функциональных возможностей, если сравнивать с большей частью стороннего софта для удалённого управления по Интернету. Из таких оптимально востребованных это настройка размера окна подключения (выбор разрешений экрана), возможность подключения звуковых устройств, дисков и различной периферии управляемого компьютера к удалённому. Все эти настройки будут доступны при раскрытии выпадающего окна «Показать параметры».
Запуск Windows Remote Desktop Connection из командной строки
В подсказке для администраторов от Криса Сандера (Chris Sander) на WindowsNetworking.com (Использование Remote Desktop Client с помощью командной строки) разъясняются основные моменты работы с Windows Remote Desktop из командной строки. Как указывает Крис, базовый синтаксис команды mstsc.exe таков::
В большинстве компьютеров, с которыми я сталкивался, через меню Start обнаружить remote desktop connection не так просто. Из-за этого я привык запускать Remote Desktop таким образом: Start — Run, потом нужно набрать mstsc и нажать Enter.
Как удаленно включить RDP через групповую политику
Данный метод включения удаленного рабочего стола на нужном компьютере возможен за счет домена Active Directory, благодаря централизованному управлению рабочих станций ваших сотрудников. Откройте редактор управления групповыми политиками. Создайте новую политику и прилинкуйте ее к нужному организационному подразделению, которое содержит нужный компьютер. После чего зайдите в свойства данной политики и измените ее настройки. Перейдите по пути:
Конфигурация компьютера — Политики — Административные шаблоны — Компоненты Windows — Службы удаленных рабочих столов — Узел сеансов удаленных рабочих столов — Подключения — Разрешать удаленное подключение с использованием служб удаленных рабочих столов
Откройте эту настройку и включите ее. Не забываем после этого обновить групповую политику на нужном компьютере и не забываем там открыть порт для RDP. Так же политиками или локально.
Конфигурация компьютера — Политики — Административные шаблоны — Сеть — Сетевые подключения — Брандмауэр Windows — Профиль домена — Разрешить исключения для входящих сообщений удаленного управления рабочим столом
Включив настройку вы можете указать конкретные ip-адреса откуда можно производить подключение или же ввести *, это будет означать, для всех.
На этом у меня все, уверен, что есть еще какие-то методы позволяющие удаленно включить RDP службу удаленных рабочих столов, но мне лень гуглить и искать их, я пользуюсь вот такими. С вами был Иван Семин, автор и создатель блога Pyatilistnik.org.
Способы старые, временем проверенные
Пожалуй, это первое, что приходит на ум, когда идет речь об удаленном запуске программ. Утилита от Марка Руссиновича используется еще со времен Windows NT и до сих пор применяется. Помимо основной функции, можно использовать ее и как Runas, и для запуска программ в пользовательской сессии терминального сервера. Psexec также позволяет задавать ядра процессора, на которых будет запускаться программа, и ее приоритет в системе.
В качестве примера посмотрим, установлено ли обновление, закрывающее нашумевшую уязвимость SMB на списке компьютеров:
В файле computers.txt находится список компьютеров. Для запуска по всему домену можно использовать \*. В файле \serversharelog.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. При необходимости логин и пароль можно задать явно.
Как удаленно включить RDP на компьютере Windows?
Также вы можете удаленно включить RDP на любом компьютере Windows. Для этого у вас должен быть удаленный доступ к этому компьютеру (через PowerShell или WMI) и ваша учетная запись состоять в группе локальных администраторов на этом компьютере.
Вы можете удаленно включить RDP через реестр. Для этого на удаленном компьютере должна быть включена служба Remote Registry (по умолчанию она отключена). Чтобы запустить службу:
Тоже самое можно выполнить удаленно из командной строки с помощью встроенной утилиты sc (позволяет создавать, управлять или удалять службы Windows):
sc \WKMDK22SQ65 config RemoteRegistry start= demand
sc \WKMDK22SQ65 start RemoteRegistry
Затем на локальном компьютере
- Запустите редактор реестра regedit.exe
- Выберите в меню Файл пункт Connect Network Registry (Подключить сетевой реестр)
- Укажите имя или IP адрес удаленного компьютера, на котором нужно включить службу RDP;
- Перейдите в раздел HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal Server ;
- Найдите параметр fDenyTSConnections (тип REG_DWORD). Если данный ключ отсутствует – создайте его. Измените его значение на 0, чтобы включить RDP.
Сразу после этого без перезагрузки удаленный компьютер должен стать доступным по RDP.
Но гораздо быстрее можно включить RDP в реестре удаленого компьютера через командную строку:
REG ADD «\WKMDK22SQ65HKLMSYSTEMCurrentControlSetControlTerminal Server» /v fDenyTSConnections /t REG_DWORD /d 0 /f
Если на удаленном компьютере настроен PowerShell remoting, вы можете выполнить на нем удаленную команду через Invoke-Command:
Invoke-Command -Computername WKMDK22SQ65 -ScriptBlock
Если в Windows установлен OpenSSH сервер, вы можете подключиться к нему любым ssh клиентом и внести изменения в реестр в локальной ssh сессии.
Также вы можете подключиться к удаленному компьютеру и включить RDP через WMI:
$compname = “WKMDK22SQ65”
(Get-WmiObject -Class Win32_TerminalServiceSetting -Namespace rootCIMV2TerminalServices -Computer $compname -Authentication 6).SetAllowTSConnections(1,1)