De l'exécutable Linux à la capture distante
Ce guide vous mène du téléchargement de rdp-cli à une capture du bureau Windows via RDP. Il décrit la version 0.1.0 à partir des validations existantes : la compilation Linux x86_64 2026092203 a passé la validation logicielle sur dix systèmes ; la compilation ARM64 2026092301 sur douze environnements, dont Raspberry Pi 4 et DGX Spark. Cet article n'est pas un nouvel essai et n'affirme pas que toutes les distributions Linux ont été testées.
Choisir l'architecture et vérifier le fichier
Sur la machine Linux qui exécutera rdp-cli :
uname -m
Sur la page de téléchargement, choisissez Linux x86_64 pour x86_64 ou Linux ARM64 pour aarch64. Un processeur ARM utilisant un système 32 bits sort du périmètre de cette version ARM64. Un Mac sous macOS nécessite le paquet macOS. Téléchargez l'exécutable ; les sources et licences séparées ne sont pas nécessaires à son exécution.
Avant toute exécution, comparez le SHA-256 avec les détails du fichier de la même architecture sur la page de téléchargement. Pour x86_64 :
sha256sum ./rdp-cli-linux-x86_64
Une fois le condensat confirmé identique, autorisez l’exécution et consultez la version :
chmod u+x ./rdp-cli-linux-x86_64
./rdp-cli-linux-x86_64 --version
Pour ARM64 :
sha256sum ./rdp-cli-linux-arm64
Une fois le condensat confirmé identique, autorisez l’exécution et consultez la version :
chmod u+x ./rdp-cli-linux-arm64
./rdp-cli-linux-arm64 --version
--version doit produire les informations de version en JSON. Le produit est un seul ELF statique, exécutable par un utilisateur ordinaire sans installation root. Le visualiseur natif utilise toutefois les services d'affichage du bureau actif. Le périmètre validé ne couvre pas tous les bureaux, noyaux ou périphériques audio.
Se connecter depuis Bash
Le serveur Windows doit déjà avoir RDP activé, autoriser votre compte à se connecter à distance et être accessible depuis Linux par le réseau ou VPN prévu. Installer le client n'active pas le service Windows.
Dans Bash, depuis le dossier de l'exécutable, lancez le bloc suivant. Sur ARM64, remplacez la première ligne par rdp_cli=./rdp-cli-linux-arm64. Remplacez 192.0.2.20 et USER par la destination et le compte autorisés ; les caractères du mot de passe ne s'affichent pas.
rdp_cli=./rdp-cli-linux-x86_64
IFS= read -r -s -p 'Password: ' rdp_password
printf '\n'
printf '%s' "$rdp_password" | "$rdp_cli" connect --host 192.0.2.20 --user USER --password-stdin
unset rdp_password
Gardez ce même shell pour conserver la variable rdp_cli. Le tube transmet le mot de passe puis ferme l'entrée standard. Pour un compte de domaine, ajoutez --domain DOMAIN ; ne combinez pas plusieurs sources de mot de passe. RDP utilise actuellement --cert-policy ignore par défaut : consultez connect --help et configurez la vérification des certificats adaptée à votre environnement. Une politique de certificats ne résout ni un serveur inaccessible ni des identifiants incorrects.
Lisez le JSON : en cas d'échec, inspectez error.code et error.message ; en cas de succès, conservez data.session comme SESSION.
Inspecter l'état et le premier PNG
"$rdp_cli" status --session SESSION
"$rdp_cli" screenshot --session SESSION --out first-screen.png
Vérifiez les états de connexion et de contrôle. Ouvrez first-screen.png avec un outil d'image et identifiez l'écran avant d'agir. Une session connectée peut encore afficher l'ouverture de session, l'accueil ou une application occupée. Conservez le data.observation de la capture pour une saisie ultérieure fondée sur cette image ; ce n'est pas un identifiant permanent de session.
La fenêtre locale est facultative pour les captures et la saisie. Pour qu'une personne observe la même session sur un bureau Linux :
"$rdp_cli" watch --session SESSION --viewer window
La fenêtre démarre en lecture seule ; la prise de contrôle humaine est explicite. Fermer un visualiseur en lecture seule laisse la connexion active ; perdre celui qui détient le contrôle suspend la saisie. Après reconnexion ou transfert de contrôle, inspectez une nouvelle capture et respectez l'état de contrôle.
Résoudre l'échec précis
- Mauvais format d'exécutable : comparez
uname -met l'architecture téléchargée ; les fichiers x86_64 et ARM64 ne sont pas interchangeables. - Permission refusée : vérifiez le droit d'exécution et que le système de fichiers autorise l'exécution. Choisissez un dossier utilisateur adapté plutôt que d'élever les privilèges.
- Erreur de connexion ou d'authentification : vérifiez le routage, le port, le service RDP, les droits du compte et l'erreur reçue. Ne répétez pas les mots de passe et n'activez pas d'ancien TLS pour un problème sans rapport.
SDL_INIT_FAILEDsans bureau : le visualiseur natif nécessite une session graphique ; les captures CLI restent utilisables sans bureau. Une erreur du visualiseur ne prouve pas à elle seule l'échec de RDP.CREDENTIAL_STORE_FAILED: les identifiants enregistrés utilisent Secret Service de l'hôte. S'il est indisponible, utilisez une source prise en charge, comme--password-stdin; n'affirmez pas que l'identifiant a été enregistré.
Continuez avec le démarrage rapide, la référence des commandes ou le transfert de fichiers RDP. L'échange de fichiers nécessite également la redirection de lecteurs sur le serveur et les autorisations sur les fichiers.