Основа — проверенный каталог версии 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
Параметр сеанса не нужен.
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.
rdp-cli watch --help
rdp-cli presence show#
Показать индикатор рабочего стола
Параметр сеанса не нужен.
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.
rdp-cli control take --help
rdp-cli control release#
Вернуть управление Agent
Требуется --session SESSION.
rdp-cli control release --help
Файлы
--path относится к обменному диску сеанса, а не любому удалённому диску; --local — к файлу/каталогу клиента. Замена требует --overwrite. upload/download возвращают ID; status без ID перечисляет передачи. cancel может сохранить готовые файлы; cleanup удаляет выбранное содержимое и может вернуть FILE_BUSY.
rdp-cli files list#
Показать обменный диск
Требуется --session SESSION.
rdp-cli files list --help
rdp-cli files upload#
Загрузить файл или каталог на обменный диск
Требуется --session SESSION.
rdp-cli files upload --help
rdp-cli files download#
Скачать файл или каталог
Требуется --session SESSION.
rdp-cli files download --help
rdp-cli files status#
Проверить передачи
Требуется --session SESSION.
rdp-cli files status --help
rdp-cli files cancel#
Отменить передачу
Требуется --session SESSION.
rdp-cli files cancel --help
rdp-cli files cleanup#
Удалить обменное содержимое
Требуется --session SESSION.
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.
rdp-cli audio mute --help
rdp-cli audio volume#
Настроить громкость просмотра
Требуется --session SESSION.
rdp-cli audio volume --help
rdp-cli audio microphone#
Проверить или остановить микрофон
Требуется --session SESSION.
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.
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#
Запустить авторизованный веб-сервис
Параметр сеанса не нужен.
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.
rdp-cli access grant --help
rdp-cli access list#
Перечислить разрешения
Требуется --session SESSION.
rdp-cli access list --help
rdp-cli access revoke#
Отозвать разрешение и потоки
Требуется --session SESSION.
rdp-cli access revoke --help
Операции и события
operations status проверяет operation ID или исходный request ID без повторной отправки. events читает события; --follow продолжает, --after возобновляет по курсору. После sent проверяйте удалённое приложение.
rdp-cli operations status#
Получить сохранённый результат операции
Требуется --session SESSION.
rdp-cli operations status --help
rdp-cli events#
Читать события или следить за ними
Требуется --session SESSION.
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#
Доверять определённому отпечатку
Параметр сеанса не нужен.
rdp-cli trust add --help
rdp-cli trust remove#
Удалить запись доверия
Параметр сеанса не нужен.
rdp-cli trust remove --help
rdp-cli credentials remove#
Удалить учётные данные продукта
Параметр сеанса не нужен.
rdp-cli credentials remove --help
rdp-cli install-cli#
Установить CLI-вход на macOS или Linux
Параметр сеанса не нужен.
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 с другими аргументами или после истечения хранения.