rdp-cli · 0.1.0

Справочник команд rdp-cli

Все 48 команд rdp-cli 0.1.0: подключение, снимки, ввод, файлы, управление человеком и веб-доступ.

Основа — проверенный каталог версии 0.1.0. Возможности зависят от платформы и согласованного протокола; сверяйте установленную версию.

Наблюдать, действовать, проверять

USER, SESSION, OBSERVATION, X и Y нужно заменить. Передайте пароль через stdin и закройте поток: --password-stdin не открывает интерактивный запрос. Сохраните data.session, прочитайте before.png, выберите координаты на снимке и проверьте after.png. Отправка ввода ещё не означает выполнения задачи.

rdp-cli connect --host desktop.example.net --user USER --password-stdin
rdp-cli screenshot --session SESSION --out before.png
rdp-cli click --session SESSION --desktop --x X --y Y --observation OBSERVATION
rdp-cli screenshot --session SESSION --out after.png

--version показывает версию и возможности; --help-json возвращает каталог; COMMAND --help описывает параметры без запуска сеанса.

rdp-cli --version
rdp-cli --help-json
rdp-cli connect --help

JSON и общие параметры

Обычная команда выводит один JSON-объект UTF-8 в stdout: ok: true с data либо ok: false с error. stderr содержит диагностику. Коды завершения: 0 — успех, 1 — ошибка выполнения, 2 — неверные аргументы.

Справка — обычный текст. events --follow передаёт поток NDJSON; обычный events возвращает один JSON-результат с data.events и data.ndjson. В PowerShell 5.1 задайте UTF-8 для [Console]::OutputEncoding и $OutputEncoding при работе с не-ASCII текстом.

data.session
Сохраните идентификатор, полученный от connect.
data.observation
Используйте токен снимка; обновляйте после переподключения, смены управления или экранов.
data.capabilities
Проверяйте согласованные возможности перед файловыми, звуковыми и экранными операциями или буфером обмена.
data.state / data.remote_outcome
queued, sent, partial, unknown, cancelled и failed описывают ход ввода. remote_outcome: not_confirmed требует проверки результата.
data.transfer_id
Передайте ID в files status или files cancel; дождитесь конечного состояния и проверьте хеши готовых файлов.
error.code / error.message / error.retryable
Принимайте решение по стабильному коду. Сообщение и retryable дают подсказки, но не разрешают слепой повтор.

Все команды принимают --request-id и --timeout-ms. Повторно используйте ID только с той же командой и аргументами в пределах срока хранения. Локальный тайм-аут не доказывает отсутствие отправки; сначала запросите operations status.

--request-id ID · --timeout-ms MILLISECONDS

Сеансы

connect требует --host, для RDP также --user. Порты: RDP 3389, VNC 5900. Если соединение требует пароль, выберите один источник: --password, --password-stdin или --credential-ref. VNC с --vnc-security none не использует источники пароля. --domain относится к RDP; --size и --layout несовместимы. --connect-timeout-ms ограничивает подключение. reconnect оставляет паузу; disconnect не завершает вход удалённого пользователя.

rdp-cli connect#

Создать постоянный сеанс RDP/VNC

Параметр сеанса не нужен.

Параметры команды
ПараметрФормат и значенияТребование
--host

Имя или IP-адрес удалённого узла

ТекстОбязательный
--protocol

Протокол удалённого рабочего стола

Выбор
rdp | vnc
По умолчанию: rdp
Необязательный
--vnc-security

Аутентификация VNC; none выбирается явно

Выбор
vnc-auth | none
Необязательный
--port

TCP-порт: RDP 3389, VNC 5900

Положительное целое
По умолчанию: RDP 3389 · VNC 5900
Необязательный
--user

Локальная или доменная учётная запись; обязательна для RDP

ТекстНеобязательный
--domain

Домен Windows

ТекстНеобязательный
--password

Пароль; классический VNC использует первые 8 байт UTF-8

ТекстНеобязательный
--password-stdin

Читать пароль из стандартного ввода до EOF

ФлагНеобязательный
--cert-policy

Политика сертификата RDP, независимая от Web HTTPS

Выбор
ignore | strict
По умолчанию: ignore
Необязательный
--tls-profile

modern требует TLS 1.2; legacy разрешает старые TLS и алгоритмы для этого сеанса

Выбор
modern | legacy
По умолчанию: modern
Необязательный
--credential-ref

Существующая ссылка в хранилище учётных данных

ТекстНеобязательный
--save-credential

Сохранить проверенный пароль под этой ссылкой

ТекстНеобязательный
--name

Понятное имя сеанса

ТекстНеобязательный
--size

Размер рабочего стола WIDTHxHEIGHT

ТекстНеобязательный
--layout

Схема мониторов в JSON или @file

ТекстНеобязательный
--connect-timeout-ms

Срок подключения в миллисекундах

Положительное целоеНеобязательный

rdp-cli connect --help

rdp-cli list#

Перечислить доступные сеансы

Параметр сеанса не нужен.

rdp-cli list --help

rdp-cli status#

Получить состояние сеанса

Требуется --session SESSION.

rdp-cli status --help

rdp-cli reconnect#

Переподключиться с сохранением паузы

Требуется --session SESSION.

rdp-cli reconnect --help

rdp-cli disconnect#

Отключиться без выхода пользователя

Требуется --session SESSION.

rdp-cli disconnect --help

Просмотр и состояние рабочего стола

watch открывает просмотр для человека: --viewer window или web, сначала только чтение. Командам Agent окно не нужно. presence show/hide управляет локальным индикатором; --floating добавляет кнопки, --panel открывает панель сеансов на macOS или Linux. Закрытие просмотра не разрывает соединение.

rdp-cli watch#

Открыть просмотр для человека

Требуется --session SESSION.

Параметры команды
ПараметрФормат и значенияТребование
--viewer

Тип средства просмотра

Выбор
window | web
По умолчанию: window
Необязательный

rdp-cli watch --help

rdp-cli presence show#

Показать индикатор рабочего стола

Параметр сеанса не нужен.

Параметры команды
ПараметрФормат и значенияТребование
--floating

Показать также необязательные плавающие элементы управления

ФлагНеобязательный
--panel

Также открыть панель сеансов на macOS или Linux

ФлагНеобязательный

rdp-cli presence show --help

rdp-cli presence hide#

Скрыть индикатор без отключения

Параметр сеанса не нужен.

rdp-cli presence hide --help

Управление и передача

pause принимает --session или --all и отбирает управление у человека. resume возвращает сеанс Agent. control take требует ID подключённого просмотра; release может указать его или целевой Agent. Уважайте ручную паузу и делайте новый снимок после возврата.

rdp-cli pause#

Приостановить ввод и отозвать управление

Укажите ровно одно: --session SESSION или --all.

rdp-cli pause --help

rdp-cli resume#

Вернуть сеанс Agent

Требуется --session SESSION.

rdp-cli resume --help

rdp-cli control take#

Передать управление подключённому просмотру

Требуется --session SESSION.

Параметры команды
ПараметрФормат и значенияТребование
--viewer-id

ID подключённого средства просмотра; при необходимости владельца управления

ТекстОбязательный

rdp-cli control take --help

rdp-cli control release#

Вернуть управление Agent

Требуется --session SESSION.

Параметры команды
ПараметрФормат и значенияТребование
--viewer-id

ID подключённого средства просмотра; при необходимости владельца управления

ТекстНеобязательный
--agent-id

Agent, получающий управление

ТекстНеобязательный

rdp-cli control release --help

Снимки, ввод и буфер обмена

screenshot сохраняет PNG через --out; --monitor выбирает экран. Ввод требует observation и координат экрана либо --desktop, без смешивания. drag задаёт начало/конец и необязательные ID экранов. type выбирает --text или --text-stdin; --sensitive меняет подсказку, а не снимок. key использует --keys либо --key с --state. Запись буфера заменяет удалённый текст.

rdp-cli screenshot#

Сделать согласованный PNG-снимок

Требуется --session SESSION.

Параметры команды
ПараметрФормат и значенияТребование
--monitor

ID монитора; screenshot также принимает all

Текст
По умолчанию: all
Необязательный
--out

Путь к итоговому PNG

ПутьНеобязательный

rdp-cli screenshot --help

rdp-cli move#

Переместить удалённый указатель

Требуется --session SESSION.

Параметры команды
ПараметрФормат и значенияТребование
--x

Удалённая координата x

Целое числоОбязательный
--y

Удалённая координата y

Целое числоОбязательный
--monitor

ID монитора; screenshot также принимает all

ТекстНеобязательный
--desktop

Координаты всего рабочего стола вместо локальных координат монитора

ФлагНеобязательный
--observation

Токен свежего снимка экрана

ТекстОбязательный

rdp-cli move --help

rdp-cli click#

Щёлкнуть по координате

Требуется --session SESSION.

Параметры команды
ПараметрФормат и значенияТребование
--x

Удалённая координата x

Целое числоОбязательный
--y

Удалённая координата y

Целое числоОбязательный
--button

Кнопка мыши

Выбор
left | right | middle
По умолчанию: left
Необязательный
--count

Количество щелчков

Положительное целоеНеобязательный
--monitor

ID монитора; screenshot также принимает all

ТекстНеобязательный
--desktop

Координаты всего рабочего стола вместо локальных координат монитора

ФлагНеобязательный
--observation

Токен свежего снимка экрана

ТекстОбязательный

rdp-cli click --help

rdp-cli scroll#

Прокрутить в указанной точке

Требуется --session SESSION.

Параметры команды
ПараметрФормат и значенияТребование
--x

Удалённая координата x

Целое числоОбязательный
--y

Удалённая координата y

Целое числоОбязательный
--delta-x

Горизонтальные единицы колеса со знаком

Целое числоНеобязательный
--delta-y

Вертикальные единицы колеса со знаком

Целое числоНеобязательный
--monitor

ID монитора; screenshot также принимает all

ТекстНеобязательный
--desktop

Координаты всего рабочего стола вместо локальных координат монитора

ФлагНеобязательный
--observation

Токен свежего снимка экрана

ТекстОбязательный

rdp-cli scroll --help

rdp-cli drag#

Перетащить между координатами

Требуется --session SESSION.

Параметры команды
ПараметрФормат и значенияТребование
--from-x

Начальная координата x

Целое числоОбязательный
--from-y

Начальная координата y

Целое числоОбязательный
--to-x

Конечная координата x

Целое числоОбязательный
--to-y

Конечная координата y

Целое числоОбязательный
--from-monitor

ID начального монитора

ТекстНеобязательный
--to-monitor

ID конечного монитора

ТекстНеобязательный
--desktop

Координаты всего рабочего стола вместо локальных координат монитора

ФлагНеобязательный
--observation

Токен свежего снимка экрана

ТекстОбязательный

rdp-cli drag --help

rdp-cli type#

Ввести Unicode без замены буфера

Требуется --session SESSION.

Параметры команды
ПараметрФормат и значенияТребование
--text

Unicode-текст для ввода или буфера обмена

ТекстНеобязательный
--text-stdin

Читать текст для ввода или буфера обмена до EOF

ФлагНеобязательный
--sensitive

Скрыть текст в наблюдаемых событиях; снимки всё ещё показывают рабочий стол

ФлагНеобязательный
--observation

Токен свежего снимка экрана

ТекстОбязательный

rdp-cli type --help

rdp-cli key#

Отправить сочетание или состояние клавиши

Требуется --session SESSION.

Параметры команды
ПараметрФормат и значенияТребование
--keys

Сочетание вроде CTRL+S

ТекстНеобязательный
--key

Имя одной клавиши

ТекстНеобязательный
--state

Состояние клавиши или отключения звука из списка

Выбор
down | up
Необязательный
--observation

Токен свежего снимка экрана

ТекстОбязательный

rdp-cli key --help

rdp-cli clipboard get#

Прочитать удалённый буфер обмена

Требуется --session SESSION.

rdp-cli clipboard get --help

rdp-cli clipboard set#

Записать удалённый буфер обмена

Требуется --session SESSION.

Параметры команды
ПараметрФормат и значенияТребование
--text

Unicode-текст для ввода или буфера обмена

ТекстНеобязательный
--text-stdin

Читать текст для ввода или буфера обмена до EOF

ФлагНеобязательный
--observation

Токен свежего снимка экрана

ТекстОбязательный

rdp-cli clipboard set --help

Файлы

--path относится к обменному диску сеанса, а не любому удалённому диску; --local — к файлу/каталогу клиента. Замена требует --overwrite. upload/download возвращают ID; status без ID перечисляет передачи. cancel может сохранить готовые файлы; cleanup удаляет выбранное содержимое и может вернуть FILE_BUSY.

rdp-cli files list#

Показать обменный диск

Требуется --session SESSION.

Параметры команды
ПараметрФормат и значенияТребование
--path

Путь внутри каталога обмена, а не произвольного удалённого диска

ПутьНеобязательный

rdp-cli files list --help

rdp-cli files upload#

Загрузить файл или каталог на обменный диск

Требуется --session SESSION.

Параметры команды
ПараметрФормат и значенияТребование
--local

Локальный файл/каталог для отправки или цель загрузки

ПутьОбязательный
--path

Путь внутри каталога обмена, а не произвольного удалённого диска

ПутьОбязательный
--overwrite

Разрешить замену существующей цели

ФлагНеобязательный

rdp-cli files upload --help

rdp-cli files download#

Скачать файл или каталог

Требуется --session SESSION.

Параметры команды
ПараметрФормат и значенияТребование
--path

Путь внутри каталога обмена, а не произвольного удалённого диска

ПутьОбязательный
--local

Локальный файл/каталог для отправки или цель загрузки

ПутьОбязательный
--overwrite

Разрешить замену существующей цели

ФлагНеобязательный

rdp-cli files download --help

rdp-cli files status#

Проверить передачи

Требуется --session SESSION.

Параметры команды
ПараметрФормат и значенияТребование
--transfer-id

ID передачи; без него files status перечисляет передачи сеанса

ТекстНеобязательный

rdp-cli files status --help

rdp-cli files cancel#

Отменить передачу

Требуется --session SESSION.

Параметры команды
ПараметрФормат и значенияТребование
--transfer-id

ID передачи; без него files status перечисляет передачи сеанса

ТекстОбязательный

rdp-cli files cancel --help

rdp-cli files cleanup#

Удалить обменное содержимое

Требуется --session SESSION.

Параметры команды
ПараметрФормат и значенияТребование
--path

Путь внутри каталога обмена, а не произвольного удалённого диска

ПутьОбязательный

rdp-cli files cleanup --help

Звук и микрофон

audio status показывает возможности. mute/volume относятся к --viewer-id: on/off или положительный --percent. audio microphone только проверяет или останавливает. Запуск требует явного включения человеком с управлением в авторизованном просмотре.

rdp-cli audio status#

Проверить звуковые возможности

Требуется --session SESSION.

rdp-cli audio status --help

rdp-cli audio mute#

Выключить или включить звук просмотра

Требуется --session SESSION.

Параметры команды
ПараметрФормат и значенияТребование
--viewer-id

ID подключённого средства просмотра; при необходимости владельца управления

ТекстОбязательный
--state

Состояние клавиши или отключения звука из списка

Выбор
on | off
Обязательный

rdp-cli audio mute --help

rdp-cli audio volume#

Настроить громкость просмотра

Требуется --session SESSION.

Параметры команды
ПараметрФормат и значенияТребование
--viewer-id

ID подключённого средства просмотра; при необходимости владельца управления

ТекстОбязательный
--percent

Усиление воспроизведения в процентах

Положительное целоеОбязательный

rdp-cli audio volume --help

rdp-cli audio microphone#

Проверить или остановить микрофон

Требуется --session SESSION.

Параметры команды
ПараметрФормат и значенияТребование
--action

Состояние или остановка микрофона; включение требует человека в средстве просмотра

Выбор
status | stop
По умолчанию: status
Необязательный

rdp-cli audio microphone --help

Экраны

monitors возвращает топологию. monitors set принимает JSON или @file; --allow-reconnect разрешает переподключение, если динамическая смена недоступна. Проверьте топологию и снимок заново. VNC сообщает размер framebuffer, но отклоняет запросы смены компоновки.

rdp-cli monitors#

Получить согласованную топологию

Требуется --session SESSION.

rdp-cli monitors --help

rdp-cli monitors set#

Изменить расположение экранов

Требуется --session SESSION.

Параметры команды
ПараметрФормат и значенияТребование
--layout

Схема мониторов в JSON или @file

ТекстОбязательный
--allow-reconnect

Разрешить переподключение, если динамическая схема недоступна

ФлагНеобязательный

rdp-cli monitors set --help

Веб-доступ

web start задаёт адрес, сертификат/ключ TLS или доверенный прокси; --ice-server повторяемый. Вне loopback нужны LAN/VPN, HTTPS и авторизация. access grant требует --permission и --expires-in в секундах. Права: session.observe/control, clipboard.read/write, files.read/write, audio.listen/send. Отзыв закрывает связанные потоки.

rdp-cli web start#

Запустить авторизованный веб-сервис

Параметр сеанса не нужен.

Параметры команды
ПараметрФормат и значенияТребование
--listen

Адрес прослушивания

ТекстНеобязательный
--tls-cert

Файл сертификата HTTPS

ПутьНеобязательный
--tls-key

Файл закрытого ключа HTTPS

ПутьНеобязательный
--trust-proxy

Доверять настроенному прокси

ФлагНеобязательный
--ice-server

URL STUN/TURN для WebRTC

ТекстНеобязательный · Повторяемый

rdp-cli web start --help

rdp-cli web status#

Получить состояние веб-сервиса

Параметр сеанса не нужен.

rdp-cli web status --help

rdp-cli web stop#

Остановить веб-доступ без закрытия сеансов

Параметр сеанса не нужен.

rdp-cli web stop --help

rdp-cli access grant#

Выдать ограниченное веб-разрешение

Требуется --session SESSION.

Параметры команды
ПараметрФормат и значенияТребование
--permission

Разрешение для токена доступа

ТекстОбязательный · Повторяемый
--expires-in

Срок разрешения в секундах

Положительное целоеОбязательный

rdp-cli access grant --help

rdp-cli access list#

Перечислить разрешения

Требуется --session SESSION.

rdp-cli access list --help

rdp-cli access revoke#

Отозвать разрешение и потоки

Требуется --session SESSION.

Параметры команды
ПараметрФормат и значенияТребование
--grant-id

Идентификатор разрешения

ТекстОбязательный

rdp-cli access revoke --help

Операции и события

operations status проверяет operation ID или исходный request ID без повторной отправки. events читает события; --follow продолжает, --after возобновляет по курсору. После sent проверяйте удалённое приложение.

rdp-cli operations status#

Получить сохранённый результат операции

Требуется --session SESSION.

Параметры команды
ПараметрФормат и значенияТребование
--operation-id

Идентификатор операции

ТекстНеобязательный
--request-id

ID корреляции/идемпотентности; operations status ищет исходный запрос

ТекстНеобязательный

rdp-cli operations status --help

rdp-cli events#

Читать события или следить за ними

Требуется --session SESSION.

Параметры команды
ПараметрФормат и значенияТребование
--follow

Продолжать получать новые события

ФлагНеобязательный
--after

Продолжить после курсора событий

ТекстНеобязательный

rdp-cli events --help

Доверие, учётные данные и установка

trust связывает точную RDP-цель с отпечатком в строгом режиме. credentials remove удаляет указанную запись продукта. На macOS и Linux install-cli/uninstall-cli управляют CLI-входом, а --prefix выбирает каталог; Windows запускает скачанный файл. presence show --panel открывает панель сеансов на macOS и Linux. Каталог проверен с опубликованным macOS CLI 0.1.0; отличия Linux сверены с опубликованной реализацией Linux. licenses показывает версии и лицензии сторонних компонентов.

rdp-cli trust list#

Перечислить доверенные RDP-сертификаты

Параметр сеанса не нужен.

rdp-cli trust list --help

rdp-cli trust add#

Доверять определённому отпечатку

Параметр сеанса не нужен.

Параметры команды
ПараметрФормат и значенияТребование
--target

Цель доверия RDP

ТекстОбязательный
--fingerprint

Отпечаток сертификата

ТекстОбязательный

rdp-cli trust add --help

rdp-cli trust remove#

Удалить запись доверия

Параметр сеанса не нужен.

Параметры команды
ПараметрФормат и значенияТребование
--target

Цель доверия RDP

ТекстОбязательный

rdp-cli trust remove --help

rdp-cli credentials remove#

Удалить учётные данные продукта

Параметр сеанса не нужен.

Параметры команды
ПараметрФормат и значенияТребование
--reference

Удаляемая ссылка на учётные данные

ТекстОбязательный

rdp-cli credentials remove --help

rdp-cli install-cli#

Установить CLI-вход на macOS или Linux

Параметр сеанса не нужен.

Параметры команды
ПараметрФормат и значенияТребование
--prefix

Префикс установки под контролем пользователя

ПутьНеобязательный

rdp-cli install-cli --help

rdp-cli uninstall-cli#

Удалить созданный CLI-вход

Параметр сеанса не нужен.

rdp-cli uninstall-cli --help

rdp-cli licenses#

Показать сторонние версии и лицензии

Параметр сеанса не нужен.

rdp-cli licenses --help

Условия протокола и платформы

  • RDP использует --cert-policy ignore и --tls-profile modern. strict проверяет доверие и имя; legacy явно допускает старый TLS. Проверка веб-HTTPS не меняется.
  • VNC отклоняет --user, --domain, --size, --layout, --cert-policy и --tls-profile. Классическая проверка использует восемь байтов UTF-8 пароля. Без проверки нужны --vnc-security none и отсутствие пароля. Поддерживаемые VNC-транспорты не зашифрованы.
  • VNC не предоставляет файлы, звук, микрофон или активную смену экранов. UTF-8 буфера требует согласования; иначе доступен только Latin-1.
  • Файлам RDP нужна переадресация диска. Звук, буфер, микрофон и несколько экранов также зависят от политики сервера.
  • Windows/macOS имеют нативный просмотр и индикаторы. Linux требует служб экрана/звука и Secret Service для сохранённых паролей; поддерживаемые CLI-операции работают и без рабочего стола.
  • Unicode вводится с задержками совместимости. Выберите тайм-аут для длинного текста и проверьте результат; просмотр не гарантирует любые символы на любом сервере.

Восстановление после ошибки

OBSERVATION_REQUIRED / INVALID_COORDINATES
Сделайте новый снимок, проверьте экраны и координаты.
SESSION_PAUSED / CONTROL_HELD_BY_HUMAN
Остановите ввод и дождитесь явной передачи обратно Agent.
AUTH_FAILED / VNC_AUTH_FAILED
Проверьте аккаунт, источник пароля и политику сервера.
RDP_TLS_HANDSHAKE_FAILED / CERTIFICATE_UNTRUSTED
Проверьте TLS, сертификат и отпечаток; ошибка TLS не означает неверный пароль.
CAPABILITY_UNAVAILABLE / CLIPBOARD_ENCODING_UNSUPPORTED
Проверьте возможности/кодировку и выберите поддерживаемую операцию.
REQUEST_TIMEOUT / REQUEST_ID_CONFLICT / REQUEST_WINDOW_EXPIRED
Перед повтором проверьте операцию и экран; не используйте ID с другими аргументами или после истечения хранения.