Objetivo de la guía
Envía un libro local a una sesión RDP y recupera una copia sin modificar. Comprueba el estado de la transferencia y su SHA-256; después podrás aplicar el mismo proceso a los resultados guardados por una aplicación remota. Los pasos se basan en la interfaz de rdp-cli 0.1.0 y el flujo de archivos verificado el 21 de septiembre de 2026. Son instrucciones para reproducirlo, no una nueva ejecución de pruebas.
Preparar la sesión y el archivo
Descarga la versión correspondiente al equipo local y sigue el inicio rápido para conectar con un servidor Windows RDP autorizado. Guarda data.session y sustituye SESSION. El servidor debe permitir la redirección de unidades y quien ejecuta el comando debe tener permiso de archivos. VNC no ofrece esta unidad de intercambio.
Cada sesión tiene su propio directorio de intercambio. --path es una ruta relativa a ese directorio, no una ruta arbitraria como C:\Users\.... La aplicación remota lo ve como una unidad redirigida. Las operaciones de archivos por CLI no requieren un visor ni tomar el control del teclado y del ratón.
Guarda el libro de ejemplo en el directorio local actual como service-activity.xlsx: ocupa 4.489 bytes y contiene 12 meses de datos ficticios de servicio. Los ejemplos usan rdp-cli en PATH. En Windows, trabaja desde la carpeta del EXE y usa .\rdp-cli.exe; en Linux, usa el comando instalado o ./rdp-cli-linux-x86_64 / ./rdp-cli-linux-arm64.
rdp-cli status --session SESSION
rdp-cli files list --session SESSION
Comprueba la conexión, las capacidades negociadas y la respuesta del listado. Si el acceso a archivos no está disponible, revisa primero la política del servidor o los permisos.
Subir y esperar a que termine
rdp-cli files upload --session SESSION --local ./service-activity.xlsx --path service-activity.xlsx
El inicio aceptado puede devolver data.state: queued y data.transfer_id. Guarda ese ID como TRANSFER_ID. La aceptación no significa que la copia haya terminado.
rdp-cli files status --session SESSION --transfer-id TRANSFER_ID
En la respuesta de estado, lee data.state, compara data.bytes_transferred con data.total_bytes y consulta el resumen del archivo completado en data.files[].sha256.
Repite la consulta hasta llegar a un estado final. Continúa únicamente con completed, los 4.489 bytes esperados y el resumen del archivo comprobado. Entonces la aplicación remota podrá abrir el libro desde la unidad redirigida de esa sesión. Ver el nombre del archivo no basta.
Descargar y comprobar los bytes
No modifiques el libro durante este primer recorrido:
rdp-cli files download --session SESSION --path service-activity.xlsx --local ./service-activity-returned.xlsx
La descarga devuelve su propio data.transfer_id. Consulta files status con ese nuevo ID. Cuando llegue a completed, tendrás service-activity-returned.xlsx en el equipo local. En macOS, compara los archivos así:
shasum -a 256 ./service-activity.xlsx ./service-activity-returned.xlsx
En Linux:
sha256sum ./service-activity.xlsx ./service-activity-returned.xlsx
En Windows PowerShell:
Get-FileHash -Algorithm SHA256 .\service-activity.xlsx, .\service-activity-returned.xlsx
Ambos resúmenes deben ser 1869e5708fe8922a99ff3efee1c0d285df3dd94588d59f5ad48f282db915df51. Si editaste el libro remoto, ya no debes esperar igualdad con el original: guarda el resultado en la unidad de intercambio, descarga esa ruta y verifica su contenido.
Transferir una carpeta completa
Prepara una carpeta local llamada source-folder con los archivos que quieras enviar:
rdp-cli files upload --session SESSION --local ./source-folder --path source-folder
Espera a que termine esta subida antes de descargar:
rdp-cli files download --session SESSION --path source-folder --local ./received-folder
Consulta cada transferencia por separado. Se conservan la estructura y los directorios vacíos; ./received-folder es la raíz exacta del destino. La transferencia de un directorio publica cada archivo completado por separado. Un resultado partial o una cancelación puede dejar archivos ya copiados: no es una única transacción atómica para todo el árbol.
Recuperarse sin repetir una transferencia incierta
- El destino ya existe: elige otra ruta o añade
--overwritesolo si quieres reemplazarlo. No se sobrescribe por defecto. FILE_BUSY: deja que la aplicación remota termine de guardar o exportar y revisa el archivo y el estado antes de reintentar.- Se perdió la respuesta inicial: consulta
rdp-cli files status --session SESSIONpara revisar transferencias conocidas. No repitas inmediatamente una subida o sobrescritura con resultado desconocido. failed,partialocancelled: revisa el resultado de cada archivo y la causa. Los archivos completados pueden permanecer. Una desconexión o la pérdida de permisos puede detener la transferencia; una nueva conexión no la reanuda automáticamente.- Ruta no válida: usa rutas relativas al intercambio con barras
/. Se rechazan rutas absolutas,.., enlaces inseguros y nombres en conflicto.
Para detener una transferencia conocida, usa su ID real y comprueba el estado posterior:
rdp-cli files cancel --session SESSION --transfer-id TRANSFER_ID
Pausar la entrada del escritorio no cancela las transferencias. completed confirma la copia de bytes, no que la aplicación haya creado un informe correcto.
Continuar con un resultado remoto verificado
El caso de LibreOffice Calc aplica el mismo flujo de subida → edición remota → descarga. Incluye el informe realmente guardado, la captura original, fórmulas y totales comprobados. Consulta las capacidades de archivos y los límites del protocolo antes de usarlo en otro entorno.