rdp-cli · 0.1.0

Referencia de comandos de rdp-cli

Los 48 comandos de rdp-cli 0.1.0 para conexiones, capturas, entrada, archivos, control humano y acceso web.

Referencia basada en el catálogo verificado de 0.1.0. Comprueba tu versión instalada: las funciones dependen de la plataforma y de la negociación del protocolo.

Observar, actuar y verificar

USER, SESSION, OBSERVATION, X e Y son marcadores. Envía la contraseña por stdin y cierra el flujo: --password-stdin no abre un diálogo interactivo. Guarda data.session, lee before.png, elige coordenadas de esa imagen y comprueba after.png. Enviar entrada no demuestra que la tarea haya terminado.

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 muestra la versión y las capacidades; --help-json devuelve el catálogo estructurado; COMMAND --help describe todas las opciones sin iniciar una sesión.

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

JSON y opciones comunes

Los comandos normales devuelven un objeto JSON UTF-8 por stdout: ok: true con data, o ok: false con error. stderr contiene diagnósticos. Códigos de salida: 0 éxito, 1 fallo operativo, 2 argumentos no válidos.

La ayuda es texto. events --follow transmite NDJSON; events sin seguimiento devuelve un resultado JSON con data.events y data.ndjson. En PowerShell 5.1 configura [Console]::OutputEncoding y $OutputEncoding como UTF-8 para texto no ASCII.

data.session
Conserva el ID devuelto por connect.
data.observation
Usa el token de la captura; renuévalo tras reconectar o cambiar control o pantallas.
data.capabilities
Consulta las capacidades negociadas antes de usar archivos, sonido, portapapeles o pantallas.
data.state / data.remote_outcome
queued, sent, partial, unknown, cancelled y failed describen el progreso. remote_outcome: not_confirmed exige verificar el efecto.
data.transfer_id
Consulta o cancela con ese ID; espera un estado final y revisa los hashes de archivos completados.
error.code / error.message / error.retryable
Decide según el código estable. El mensaje aporta contexto; retryable no autoriza repetir a ciegas.

Todos los comandos aceptan --request-id y --timeout-ms. Reutiliza un ID solo con idénticos argumentos y dentro de la ventana de retención. Un tiempo agotado no demuestra que no se enviara entrada: consulta operations status.

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

Sesiones

connect requiere --host y, con RDP, --user. Puertos: RDP 3389, VNC 5900. Si la conexión exige contraseña, elige una fuente: --password, --password-stdin o --credential-ref. VNC con --vnc-security none no utiliza ninguna fuente de contraseña. --domain es de RDP; --size y --layout se excluyen. --connect-timeout-ms limita la conexión. reconnect deja la sesión pausada; disconnect no cierra la sesión del usuario remoto.

rdp-cli connect#

Crear y conectar una sesión RDP/VNC persistente

No necesita una sesión.

Opciones del comando
OpciónFormato y valoresRequisito
--host

Nombre o IP del servidor remoto

TextoObligatoria
--protocol

Protocolo de escritorio remoto

Selección
rdp | vnc
Predeterminado: rdp
Opcional
--vnc-security

Autenticación VNC; none debe elegirse explícitamente

Selección
vnc-auth | none
Opcional
--port

Puerto TCP: RDP 3389, VNC 5900

Entero positivo
Predeterminado: RDP 3389 · VNC 5900
Opcional
--user

Cuenta local o de dominio; obligatoria en RDP

TextoOpcional
--domain

Dominio de Windows

TextoOpcional
--password

Contraseña; VNC clásico usa los primeros 8 bytes UTF-8

TextoOpcional
--password-stdin

Leer la contraseña de la entrada estándar hasta EOF

IndicadorOpcional
--cert-policy

Política del certificado RDP, independiente de HTTPS web

Selección
ignore | strict
Predeterminado: ignore
Opcional
--tls-profile

modern exige TLS 1.2; legacy permite TLS y criptografía antiguos en esta sesión

Selección
modern | legacy
Predeterminado: modern
Opcional
--credential-ref

Referencia existente del almacén de credenciales

TextoOpcional
--save-credential

Guardar la contraseña válida con esta referencia

TextoOpcional
--name

Nombre legible de la sesión

TextoOpcional
--size

Tamaño del escritorio WIDTHxHEIGHT

TextoOpcional
--layout

Diseño de monitores en JSON o @file

TextoOpcional
--connect-timeout-ms

Plazo de conexión en milisegundos

Entero positivoOpcional

rdp-cli connect --help

rdp-cli list#

Listar sesiones visibles

No necesita una sesión.

rdp-cli list --help

rdp-cli status#

Consultar el estado de la sesión

Requiere --session SESSION.

rdp-cli status --help

rdp-cli reconnect#

Reconectar y permanecer en pausa

Requiere --session SESSION.

rdp-cli reconnect --help

rdp-cli disconnect#

Desconectar sin cerrar la sesión remota

Requiere --session SESSION.

rdp-cli disconnect --help

Visores y estado

watch abre un visor humano de solo lectura: --viewer window o web. Los comandos del Agent no lo necesitan. presence show/hide controla el estado local; --floating añade controles y --panel abre el panel de sesiones de macOS o Linux. Cerrar el visor de observación mantiene la conexión.

rdp-cli watch#

Abrir o activar un visor humano

Requiere --session SESSION.

Opciones del comando
OpciónFormato y valoresRequisito
--viewer

Implementación del visor

Selección
window | web
Predeterminado: window
Opcional

rdp-cli watch --help

rdp-cli presence show#

Mostrar el estado de escritorio

No necesita una sesión.

Opciones del comando
OpciónFormato y valoresRequisito
--floating

Mostrar también los controles flotantes opcionales

IndicadorOpcional
--panel

Abrir también el panel de sesiones en macOS o Linux

IndicadorOpcional

rdp-cli presence show --help

rdp-cli presence hide#

Ocultar el estado sin desconectar

No necesita una sesión.

rdp-cli presence hide --help

Control y entrega

pause usa --session o --all y revoca el control humano. resume devuelve la sesión al Agent. control take necesita un viewer ID conectado; release puede indicar ese visor o el Agent destino. Respeta la pausa humana y captura de nuevo al recibir el control.

rdp-cli pause#

Pausar entrada y revocar control humano

Elige exactamente uno: --session SESSION o --all.

rdp-cli pause --help

rdp-cli resume#

Devolver la sesión al Agent

Requiere --session SESSION.

rdp-cli resume --help

rdp-cli control take#

Dar control al visor conectado

Requiere --session SESSION.

Opciones del comando
OpciónFormato y valoresRequisito
--viewer-id

ID del visor conectado; cuando corresponda, titular del control

TextoObligatoria

rdp-cli control take --help

rdp-cli control release#

Devolver control al Agent

Requiere --session SESSION.

Opciones del comando
OpciónFormato y valoresRequisito
--viewer-id

ID del visor conectado; cuando corresponda, titular del control

TextoOpcional
--agent-id

Agent que recibirá el control

TextoOpcional

rdp-cli control release --help

Capturas, entrada y portapapeles

screenshot guarda un PNG con --out y selecciona pantalla con --monitor. La entrada requiere observation y coordenadas de pantalla o --desktop, sin mezclarlas. drag usa coordenadas iniciales/finales y pantallas opcionales. type elige --text o --text-stdin; --sensitive cambia el aviso, no oculta la captura. key usa --keys o --key con --state. Escribir en el portapapeles reemplaza el texto remoto.

rdp-cli screenshot#

Capturar un PNG coherente

Requiere --session SESSION.

Opciones del comando
OpciónFormato y valoresRequisito
--monitor

ID de monitor; screenshot también admite all

Texto
Predeterminado: all
Opcional
--out

Archivo PNG de destino

RutaOpcional

rdp-cli screenshot --help

rdp-cli move#

Mover el puntero remoto

Requiere --session SESSION.

Opciones del comando
OpciónFormato y valoresRequisito
--x

Coordenada x remota

EnteroObligatoria
--y

Coordenada y remota

EnteroObligatoria
--monitor

ID de monitor; screenshot también admite all

TextoOpcional
--desktop

Usar coordenadas de escritorio en vez de coordenadas locales del monitor

IndicadorOpcional
--observation

Token de una captura reciente

TextoObligatoria

rdp-cli move --help

rdp-cli click#

Hacer clic en una coordenada

Requiere --session SESSION.

Opciones del comando
OpciónFormato y valoresRequisito
--x

Coordenada x remota

EnteroObligatoria
--y

Coordenada y remota

EnteroObligatoria
--button

Botón del ratón

Selección
left | right | middle
Predeterminado: left
Opcional
--count

Número de clics

Entero positivoOpcional
--monitor

ID de monitor; screenshot también admite all

TextoOpcional
--desktop

Usar coordenadas de escritorio en vez de coordenadas locales del monitor

IndicadorOpcional
--observation

Token de una captura reciente

TextoObligatoria

rdp-cli click --help

rdp-cli scroll#

Desplazar en una coordenada

Requiere --session SESSION.

Opciones del comando
OpciónFormato y valoresRequisito
--x

Coordenada x remota

EnteroObligatoria
--y

Coordenada y remota

EnteroObligatoria
--delta-x

Unidades horizontales de rueda con signo

EnteroOpcional
--delta-y

Unidades verticales de rueda con signo

EnteroOpcional
--monitor

ID de monitor; screenshot también admite all

TextoOpcional
--desktop

Usar coordenadas de escritorio en vez de coordenadas locales del monitor

IndicadorOpcional
--observation

Token de una captura reciente

TextoObligatoria

rdp-cli scroll --help

rdp-cli drag#

Arrastrar entre coordenadas

Requiere --session SESSION.

Opciones del comando
OpciónFormato y valoresRequisito
--from-x

Coordenada x inicial

EnteroObligatoria
--from-y

Coordenada y inicial

EnteroObligatoria
--to-x

Coordenada x final

EnteroObligatoria
--to-y

Coordenada y final

EnteroObligatoria
--from-monitor

ID del monitor inicial

TextoOpcional
--to-monitor

ID del monitor final

TextoOpcional
--desktop

Usar coordenadas de escritorio en vez de coordenadas locales del monitor

IndicadorOpcional
--observation

Token de una captura reciente

TextoObligatoria

rdp-cli drag --help

rdp-cli type#

Escribir Unicode sin sustituir el portapapeles

Requiere --session SESSION.

Opciones del comando
OpciónFormato y valoresRequisito
--text

Texto Unicode de entrada o portapapeles

TextoOpcional
--text-stdin

Leer texto de entrada o portapapeles hasta EOF

IndicadorOpcional
--sensitive

Ocultar texto en eventos observables; las capturas siguen mostrando el escritorio

IndicadorOpcional
--observation

Token de una captura reciente

TextoObligatoria

rdp-cli type --help

rdp-cli key#

Enviar teclas o su estado

Requiere --session SESSION.

Opciones del comando
OpciónFormato y valoresRequisito
--keys

Combinación como CTRL+S

TextoOpcional
--key

Nombre de una tecla

TextoOpcional
--state

Estado de tecla o silencio de audio según los valores indicados

Selección
down | up
Opcional
--observation

Token de una captura reciente

TextoObligatoria

rdp-cli key --help

rdp-cli clipboard get#

Leer el portapapeles remoto

Requiere --session SESSION.

rdp-cli clipboard get --help

rdp-cli clipboard set#

Escribir el portapapeles remoto

Requiere --session SESSION.

Opciones del comando
OpciónFormato y valoresRequisito
--text

Texto Unicode de entrada o portapapeles

TextoOpcional
--text-stdin

Leer texto de entrada o portapapeles hasta EOF

IndicadorOpcional
--observation

Token de una captura reciente

TextoObligatoria

rdp-cli clipboard set --help

Archivos

--path es relativo a la unidad de intercambio; --local es un archivo o directorio cliente. Sobrescribir requiere --overwrite. upload/download devuelven un ID; status sin ID lista transferencias. cancel conserva archivos ya completados. cleanup elimina contenido seleccionado y puede devolver FILE_BUSY.

rdp-cli files list#

Listar la unidad de intercambio

Requiere --session SESSION.

Opciones del comando
OpciónFormato y valoresRequisito
--path

Ruta relativa al intercambio de archivos, no a cualquier disco remoto

RutaOpcional

rdp-cli files list --help

rdp-cli files upload#

Subir archivos o directorios

Requiere --session SESSION.

Opciones del comando
OpciónFormato y valoresRequisito
--local

Archivo/directorio local de carga o destino de descarga

RutaObligatoria
--path

Ruta relativa al intercambio de archivos, no a cualquier disco remoto

RutaObligatoria
--overwrite

Permitir sustituir un destino existente

IndicadorOpcional

rdp-cli files upload --help

rdp-cli files download#

Descargar archivos o directorios

Requiere --session SESSION.

Opciones del comando
OpciónFormato y valoresRequisito
--path

Ruta relativa al intercambio de archivos, no a cualquier disco remoto

RutaObligatoria
--local

Archivo/directorio local de carga o destino de descarga

RutaObligatoria
--overwrite

Permitir sustituir un destino existente

IndicadorOpcional

rdp-cli files download --help

rdp-cli files status#

Consultar transferencias

Requiere --session SESSION.

Opciones del comando
OpciónFormato y valoresRequisito
--transfer-id

ID de transferencia; si se omite en files status, lista las transferencias

TextoOpcional

rdp-cli files status --help

rdp-cli files cancel#

Cancelar una transferencia

Requiere --session SESSION.

Opciones del comando
OpciónFormato y valoresRequisito
--transfer-id

ID de transferencia; si se omite en files status, lista las transferencias

TextoObligatoria

rdp-cli files cancel --help

rdp-cli files cleanup#

Eliminar contenido del intercambio

Requiere --session SESSION.

Opciones del comando
OpciónFormato y valoresRequisito
--path

Ruta relativa al intercambio de archivos, no a cualquier disco remoto

RutaObligatoria

rdp-cli files cleanup --help

Audio y micrófono

audio status consulta capacidades. mute/volume afectan a un --viewer-id: on/off y --percent positivo. audio microphone solo consulta o detiene. Para iniciar el micrófono, una persona con control debe habilitarlo en un visor autorizado.

rdp-cli audio status#

Consultar capacidades de audio

Requiere --session SESSION.

rdp-cli audio status --help

rdp-cli audio mute#

Silenciar o reactivar un visor

Requiere --session SESSION.

Opciones del comando
OpciónFormato y valoresRequisito
--viewer-id

ID del visor conectado; cuando corresponda, titular del control

TextoObligatoria
--state

Estado de tecla o silencio de audio según los valores indicados

Selección
on | off
Obligatoria

rdp-cli audio mute --help

rdp-cli audio volume#

Ajustar el volumen de un visor

Requiere --session SESSION.

Opciones del comando
OpciónFormato y valoresRequisito
--viewer-id

ID del visor conectado; cuando corresponda, titular del control

TextoObligatoria
--percent

Ganancia de reproducción en porcentaje

Entero positivoObligatoria

rdp-cli audio volume --help

rdp-cli audio microphone#

Consultar o detener el micrófono

Requiere --session SESSION.

Opciones del comando
OpciónFormato y valoresRequisito
--action

Consultar o detener el micrófono; iniciarlo requiere un visor humano

Selección
status | stop
Predeterminado: status
Opcional

rdp-cli audio microphone --help

Pantallas

monitors consulta la topología. monitors set acepta JSON o @file; --allow-reconnect permite reconectar si no hay cambio dinámico. Lee la nueva topología y captura otra imagen. VNC informa del framebuffer pero rechaza cambios solicitados de disposición.

rdp-cli monitors#

Consultar la topología negociada

Requiere --session SESSION.

rdp-cli monitors --help

rdp-cli monitors set#

Cambiar la disposición de pantallas

Requiere --session SESSION.

Opciones del comando
OpciónFormato y valoresRequisito
--layout

Diseño de monitores en JSON o @file

TextoObligatoria
--allow-reconnect

Permitir reconexión si no hay cambio dinámico de monitores

IndicadorOpcional

rdp-cli monitors set --help

Acceso web

web start configura escucha, certificado/clave TLS o proxy de confianza; --ice-server se puede repetir. Fuera de loopback se necesitan LAN/VPN, HTTPS y autorización. access grant usa --permission repetible y --expires-in en segundos. Permisos: session.observe/control, clipboard.read/write, files.read/write y audio.listen/send. Revocar cierra sus flujos.

rdp-cli web start#

Iniciar el servicio web autorizado

No necesita una sesión.

Opciones del comando
OpciónFormato y valoresRequisito
--listen

Dirección de escucha

TextoOpcional
--tls-cert

Archivo de certificado HTTPS

RutaOpcional
--tls-key

Archivo de clave privada HTTPS

RutaOpcional
--trust-proxy

Confiar en el proxy configurado

IndicadorOpcional
--ice-server

URL STUN/TURN para WebRTC

TextoOpcional · Repetible

rdp-cli web start --help

rdp-cli web status#

Consultar el servicio web

No necesita una sesión.

rdp-cli web status --help

rdp-cli web stop#

Detener acceso web sin cerrar sesiones

No necesita una sesión.

rdp-cli web stop --help

rdp-cli access grant#

Crear una autorización web limitada

Requiere --session SESSION.

Opciones del comando
OpciónFormato y valoresRequisito
--permission

Permiso concedido al token de acceso

TextoObligatoria · Repetible
--expires-in

Duración del permiso en segundos

Entero positivoObligatoria

rdp-cli access grant --help

rdp-cli access list#

Listar autorizaciones

Requiere --session SESSION.

rdp-cli access list --help

rdp-cli access revoke#

Revocar autorización y flujos

Requiere --session SESSION.

Opciones del comando
OpciónFormato y valoresRequisito
--grant-id

Identificador del permiso

TextoObligatoria

rdp-cli access revoke --help

Operaciones y eventos

operations status consulta por operation ID o request ID original sin repetir entrada. events lee eventos; --follow continúa y --after usa un cursor. Un resultado sent necesita verificación en la aplicación remota.

rdp-cli operations status#

Consultar un resultado conservado

Requiere --session SESSION.

Opciones del comando
OpciónFormato y valoresRequisito
--operation-id

Identificador de operación

TextoOpcional
--request-id

ID de correlación/idempotencia; operations status consulta la petición original

TextoOpcional

rdp-cli operations status --help

rdp-cli events#

Leer o seguir eventos

Requiere --session SESSION.

Opciones del comando
OpciónFormato y valoresRequisito
--follow

Seguir eventos nuevos

IndicadorOpcional
--after

Continuar después de un cursor de eventos

TextoOpcional

rdp-cli events --help

Confianza, credenciales e instalación

trust asocia destino RDP y huella en modo estricto. credentials remove borra la referencia indicada. En macOS y Linux, install-cli/uninstall-cli gestionan la entrada CLI y --prefix elige su ubicación; Windows ejecuta el archivo descargado. presence show --panel abre el panel de sesiones en macOS y Linux. El catálogo se verificó con el CLI publicado de macOS 0.1.0; las diferencias de Linux se contrastaron con su implementación publicada. licenses muestra versiones y licencias de terceros.

rdp-cli trust list#

Listar registros de confianza RDP

No necesita una sesión.

rdp-cli trust list --help

rdp-cli trust add#

Confiar en una huella concreta

No necesita una sesión.

Opciones del comando
OpciónFormato y valoresRequisito
--target

Destino de confianza RDP

TextoObligatoria
--fingerprint

Huella del certificado

TextoObligatoria

rdp-cli trust add --help

rdp-cli trust remove#

Eliminar un registro de confianza

No necesita una sesión.

Opciones del comando
OpciónFormato y valoresRequisito
--target

Destino de confianza RDP

TextoObligatoria

rdp-cli trust remove --help

rdp-cli credentials remove#

Eliminar una credencial del producto

No necesita una sesión.

Opciones del comando
OpciónFormato y valoresRequisito
--reference

Referencia de credencial que se eliminará

TextoObligatoria

rdp-cli credentials remove --help

rdp-cli install-cli#

Instalar la entrada CLI en macOS o Linux

No necesita una sesión.

Opciones del comando
OpciónFormato y valoresRequisito
--prefix

Prefijo de instalación controlado por el usuario

RutaOpcional

rdp-cli install-cli --help

rdp-cli uninstall-cli#

Eliminar la entrada CLI creada

No necesita una sesión.

rdp-cli uninstall-cli --help

rdp-cli licenses#

Mostrar versiones y licencias de terceros

No necesita una sesión.

rdp-cli licenses --help

Condiciones de protocolo y plataforma

  • RDP usa por defecto --cert-policy ignore y --tls-profile modern. strict verifica confianza y nombre; legacy permite TLS antiguo de forma explícita. No cambian la validación HTTPS del visor web.
  • VNC rechaza --user, --domain, --size, --layout, --cert-policy y --tls-profile. La autenticación clásica usa ocho bytes UTF-8 de la contraseña; sin autenticación exige --vnc-security none y ninguna contraseña. Los transportes VNC admitidos no están cifrados.
  • VNC no ofrece archivos, audio, micrófono ni cambios activos de pantallas. El portapapeles UTF-8 requiere negociación; de otro modo solo acepta Latin-1.
  • Los archivos RDP requieren redirección de unidades. Audio, portapapeles, micrófono y varias pantallas dependen también del servidor.
  • Windows/macOS tienen visor y estado nativos. Linux necesita servicios de pantalla para ventanas, audio para sonido y Secret Service para credenciales guardadas; sin escritorio siguen disponibles las operaciones CLI admitidas.
  • La escritura Unicode se envía con pausas de compatibilidad. Ajusta el tiempo de espera para textos largos y verifica el resultado; ningún visor garantiza todos los caracteres en todos los servidores.

Recuperación de errores

OBSERVATION_REQUIRED / INVALID_COORDINATES
Captura de nuevo y comprueba pantallas y coordenadas.
SESSION_PAUSED / CONTROL_HELD_BY_HUMAN
Detén la entrada y espera a que una persona devuelva el control al Agent.
AUTH_FAILED / VNC_AUTH_FAILED
Comprueba cuenta, fuente de contraseña y política remota.
RDP_TLS_HANDSHAKE_FAILED / CERTIFICATE_UNTRUSTED
Revisa TLS, política de certificados y huella; un fallo TLS no implica contraseña incorrecta.
CAPABILITY_UNAVAILABLE / CLIPBOARD_ENCODING_UNSUPPORTED
Consulta capacidades o codificación y elige una operación compatible.
REQUEST_TIMEOUT / REQUEST_ID_CONFLICT / REQUEST_WINDOW_EXPIRED
Consulta operación y pantalla antes de reintentar; no reutilices IDs con otros argumentos ni tras expirar su retención.