Réaliser une courte tâche de saisie à distance

Connectez un bureau VNC existant, saisissez une ligne dans un document vide et vérifiez-la sur une nouvelle capture. Ce guide décrit rdp-cli 0.1.0 à partir des validations de septembre 2026 ; il ne présente pas un nouvel essai. Le parcours Mac du 20 septembre utilisait Ubuntu 24.04, TigerVNC 1.13.1 et xterm. Les validations Linux ultérieures ont aussi utilisé TigerVNC avec authentification. Le texte ci-dessous est un exemple pédagogique, pas la reproduction de ces sessions.

Préparer le serveur et le client

Installez le téléchargement adapté et suivez le démarrage rapide. La machine distante doit déjà disposer d'un serveur VNC accessible, et vous devez être autorisé à consulter et contrôler son bureau. Préparez un document vide dans un éditeur distant. rdp-cli n'installe pas le serveur et ne fournit pas de modèle d'IA.

VNC utilise par défaut le port 5900 et l'authentification par mot de passe. Les modes de sécurité pris en charge ne chiffrent pas le transport du bureau : utilisez un réseau de confiance ou un VPN. L'authentification VNC classique ne prend en compte que les huit premiers octets UTF-8 du mot de passe. N'ajoutez pas d'options réservées à RDP, telles que --user, --domain, la disposition des écrans ou les certificats.

Se connecter avec le bon protocole

Remplacez l'adresse d'exemple et le port. Sur macOS ou Linux, exécutez ce bloc dans Bash ; sur macOS, vous pouvez d'abord lancer bash. Sur Linux, remplacez rdp-cli par la commande installée ou le chemin de l'exécutable correspondant à votre architecture.

IFS= read -r -s -p 'Password: ' vnc_password
printf '\n'
printf '%s' "$vnc_password" | rdp-cli connect --protocol vnc --host 192.0.2.20 --port 5900 --password-stdin
unset vnc_password

Sur Windows, ouvrez PowerShell dans le dossier de l'EXE :

$secret = Read-Host 'Password' -AsSecureString
$savedEncoding = $OutputEncoding
try {
  $OutputEncoding = [System.Text.UTF8Encoding]::new($false)
  [System.Net.NetworkCredential]::new('', $secret).Password |
    .\rdp-cli.exe connect --protocol vnc --host 192.0.2.20 --port 5900 --password-stdin
} finally {
  $OutputEncoding = $savedEncoding
  $secret.Dispose()
}

Lisez le JSON et conservez data.session sous le nom SESSION. Vérifiez ok et les éventuels error.code ; un échec ne justifie pas de changer silencieusement d'authentification. --vnc-security none est réservé à un serveur volontairement configuré sans authentification ; ce choix doit être explicite et sans source de mot de passe. Une référence enregistrée avec --credential-ref remplace --password-stdin, elle ne s'y ajoute pas.

Observer, agir puis vérifier

Pour les commandes Windows suivantes, remplacez rdp-cli par .\rdp-cli.exe ; sur Linux, conservez le bon chemin d'exécutable.

rdp-cli status --session SESSION
rdp-cli screenshot --session SESSION --out vnc-before.png

Ouvrez vnc-before.png, confirmez le bureau et l'éditeur visés, puis conservez le data.observation de cette capture comme OBSERVATION. Vérifiez le protocole ainsi que les états de connexion et de contrôle. Utilisez les coordonnées réelles du document distant pour X et Y :

rdp-cli click --session SESSION --desktop --x X --y Y --observation OBSERVATION
rdp-cli screenshot --session SESSION --out vnc-focused.png

Vérifiez le focus dans vnc-focused.png et utilisez le data.observation de cette réponse comme NEW_OBSERVATION :

rdp-cli type --session SESSION --text "VNC command check" --observation NEW_OBSERVATION
rdp-cli screenshot --session SESSION --out vnc-after.png

Ouvrez vnc-after.png et vérifiez que « VNC command check » apparaît exactement dans le document prévu. L'envoi d'une saisie ne prouve pas que l'application l'a acceptée. Ne réutilisez pas les coordonnées de ce guide ni une observation périmée après un redimensionnement, une reconnexion ou un changement de contrôle.

Observer ou rétablir la session

Une fenêtre locale est facultative. Pour qu'une personne observe la même session :

rdp-cli watch --session SESSION --viewer window

Elle démarre en lecture seule. La pause, la prise de contrôle et la restitution restent explicites ; l'agent doit s'arrêter tant que la saisie est suspendue ou qu'une personne contrôle la session. Une reconnexion ou un redimensionnement du serveur invalide les observations et laisse le contrôle en pause. Examinez une capture récente avant toute reprise autorisée.

Si la connexion échoue, vérifiez l'adresse, le port, l'authentification et le réseau ; consultez l'erreur au lieu de multiplier les tentatives de mot de passe. Si le texte diffère, vérifiez le focus, la disposition du clavier et la méthode de saisie. Les événements Unicode de VNC ne garantissent pas que chaque serveur et application acceptent tous les caractères. Si le résultat d'une saisie est incertain, inspectez l'écran et consultez l'opération initiale avant de la répéter.

Respecter les limites de VNC

VNC prend en charge les captures, la saisie et la visualisation communes aux protocoles, mais pas les fichiers sur lecteur d'échange, le son, le microphone ni les dispositions d'écran demandées par le client. Ces opérations renvoient CAPABILITY_UNAVAILABLE. Le presse-papiers UTF-8 nécessite la négociation de clipboard_utf8 ; sinon, l'encodage pris en charge est Latin-1. Le visualiseur n'ajoute pas de capacité absente du protocole.

Consultez la référence des commandes pour les options exactes, la comparaison des protocoles pour choisir entre RDP et VNC et le démarrage rapide pour l'installation sur votre plateforme.