Cette référence suit le catalogue vérifié de 0.1.0. Les fonctions dépendent de la plateforme et du protocole négocié ; vérifiez la version installée.
Observer, agir, vérifier
USER, SESSION, OBSERVATION, X et Y sont des valeurs à remplacer. Envoyez le mot de passe sur stdin, puis fermez le flux ; --password-stdin ne propose pas de saisie interactive. Conservez data.session, lisez before.png, choisissez ses coordonnées puis vérifiez after.png. Une entrée envoyée ne prouve pas la réussite de la tâche.
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 indique la version et les capacités ; --help-json fournit le catalogue structuré ; COMMAND --help décrit les options sans démarrer de session.
rdp-cli --version
rdp-cli --help-json
rdp-cli connect --help
JSON et options communes
Une commande normale renvoie un objet JSON UTF-8 sur stdout : ok: true avec data, ou ok: false avec error. stderr contient les diagnostics. Codes de sortie : 0 réussite, 1 échec opérationnel, 2 arguments incorrects.
L’aide est du texte. events --follow diffuse du NDJSON ; events sans suivi renvoie un résultat JSON contenant data.events et data.ndjson. Dans PowerShell 5.1, réglez [Console]::OutputEncoding et $OutputEncoding sur UTF-8 pour les caractères non ASCII.
data.session- Conservez l’identifiant renvoyé par connect.
data.observation- Utilisez le jeton de capture ; renouvelez-le après reconnexion, changement de contrôle ou de disposition.
data.capabilities- Vérifiez les capacités négociées avant les opérations sur fichiers, audio, presse-papiers ou écrans.
data.state / data.remote_outcome- queued, sent, partial, unknown, cancelled et failed indiquent la progression. remote_outcome: not_confirmed exige une vérification du résultat.
data.transfer_id- Utilisez cet ID avec files status ou files cancel ; attendez l’état final et vérifiez les empreintes des fichiers terminés.
error.code / error.message / error.retryable- Décidez selon le code stable. Le message et retryable donnent du contexte, sans autoriser une répétition aveugle.
Toutes les commandes acceptent --request-id et --timeout-ms. Réutilisez un ID seulement avec une commande et des arguments identiques dans la durée de conservation. Un délai dépassé ne prouve pas l’absence d’envoi : interrogez operations status.
--request-id ID · --timeout-ms MILLISECONDS Sessions
connect exige --host et, pour RDP, --user. Ports par défaut : RDP 3389, VNC 5900. Pour une connexion exigeant un mot de passe, choisissez une source : --password, --password-stdin ou --credential-ref. VNC avec --vnc-security none n’utilise aucune source de mot de passe. --domain concerne RDP ; --size et --layout sont exclusifs. --connect-timeout-ms limite la connexion. reconnect reste en pause ; disconnect ne ferme pas la session de l’utilisateur distant.
rdp-cli connect#
Créer une session RDP/VNC persistante
Aucun argument de session.
rdp-cli connect --help
rdp-cli list#
Lister les sessions visibles
Aucun argument de session.
rdp-cli list --help
rdp-cli status#
Consulter l’état de session
Exige --session SESSION.
rdp-cli status --help
rdp-cli reconnect#
Reconnecter en restant en pause
Exige --session SESSION.
rdp-cli reconnect --help
rdp-cli disconnect#
Déconnecter sans fermer la session distante
Exige --session SESSION.
rdp-cli disconnect --help
Affichage et état du bureau
watch ouvre une vue humaine en lecture seule avec --viewer window ou web ; l’Agent n’en a pas besoin. presence show/hide gère l’état local ; --floating ajoute les commandes et --panel ouvre le panneau de sessions sur macOS ou Linux. Fermer une vue d’observation conserve la connexion.
rdp-cli watch#
Ouvrir une vue humaine
Exige --session SESSION.
rdp-cli watch --help
rdp-cli presence show#
Afficher l’état du bureau
Aucun argument de session.
rdp-cli presence show --help
rdp-cli presence hide#
Masquer l’état sans déconnecter
Aucun argument de session.
rdp-cli presence hide --help
Contrôle et passage de relais
pause accepte --session ou --all et révoque le contrôle humain. resume rend la session à l’Agent. control take exige l’ID d’un observateur connecté ; release peut préciser celui-ci ou l’Agent cible. Respectez les pauses humaines et capturez à nouveau après restitution.
rdp-cli pause#
Suspendre la saisie et révoquer le contrôle
Choisir exactement un argument : --session SESSION ou --all.
rdp-cli pause --help
rdp-cli resume#
Rendre la session à l’Agent
Exige --session SESSION.
rdp-cli resume --help
rdp-cli control take#
Donner le contrôle à une vue connectée
Exige --session SESSION.
rdp-cli control take --help
rdp-cli control release#
Rendre le contrôle à l’Agent
Exige --session SESSION.
rdp-cli control release --help
Fichiers
--path est relatif au disque d’échange, pas à un disque distant arbitraire ; --local désigne un fichier ou dossier client. --overwrite autorise le remplacement. upload/download renvoient un ID ; status sans ID liste les transferts. cancel peut conserver les fichiers terminés ; cleanup supprime le contenu choisi et peut renvoyer FILE_BUSY.
rdp-cli files list#
Lister le disque d’échange
Exige --session SESSION.
rdp-cli files list --help
rdp-cli files upload#
Téléverser un fichier ou dossier
Exige --session SESSION.
rdp-cli files upload --help
rdp-cli files download#
Télécharger un fichier ou dossier
Exige --session SESSION.
rdp-cli files download --help
rdp-cli files status#
Consulter les transferts
Exige --session SESSION.
rdp-cli files status --help
rdp-cli files cancel#
Annuler un transfert
Exige --session SESSION.
rdp-cli files cancel --help
rdp-cli files cleanup#
Supprimer du contenu d’échange
Exige --session SESSION.
rdp-cli files cleanup --help
Son et microphone
audio status indique les capacités. mute/volume ciblent --viewer-id : on/off ou --percent positif. audio microphone interroge ou arrête seulement. Le démarrage demande une activation explicite par une personne ayant le contrôle dans une vue autorisée.
rdp-cli audio status#
Consulter les capacités audio
Exige --session SESSION.
rdp-cli audio status --help
rdp-cli audio mute#
Couper ou réactiver le son d’une vue
Exige --session SESSION.
rdp-cli audio mute --help
rdp-cli audio volume#
Régler le volume d’une vue
Exige --session SESSION.
rdp-cli audio volume --help
rdp-cli audio microphone#
Interroger ou arrêter le microphone
Exige --session SESSION.
rdp-cli audio microphone --help
Écrans
monitors renvoie la topologie. monitors set accepte JSON ou @file ; --allow-reconnect permet la reconnexion si le changement dynamique manque. Relisez la topologie et capturez à nouveau. VNC décrit son framebuffer mais refuse les changements de disposition demandés.
rdp-cli monitors#
Consulter la topologie négociée
Exige --session SESSION.
rdp-cli monitors --help
rdp-cli monitors set#
Modifier la disposition des écrans
Exige --session SESSION.
rdp-cli monitors set --help
Accès web
web start configure l’écoute, le certificat/la clé TLS ou un proxy approuvé ; --ice-server peut se répéter. Hors loopback : LAN/VPN, HTTPS et autorisation. access grant exige --permission et --expires-in en secondes. Droits : session.observe/control, clipboard.read/write, files.read/write, audio.listen/send. La révocation ferme les flux associés.
rdp-cli web start#
Démarrer le service web autorisé
Aucun argument de session.
rdp-cli web start --help
rdp-cli web status#
Consulter l’état du service web
Aucun argument de session.
rdp-cli web status --help
rdp-cli web stop#
Arrêter l’accès web sans fermer les sessions
Aucun argument de session.
rdp-cli web stop --help
rdp-cli access grant#
Créer une autorisation web limitée
Exige --session SESSION.
rdp-cli access grant --help
rdp-cli access list#
Lister les autorisations
Exige --session SESSION.
rdp-cli access list --help
rdp-cli access revoke#
Révoquer une autorisation et ses flux
Exige --session SESSION.
rdp-cli access revoke --help
Opérations et événements
operations status consulte un operation ID ou le request ID initial sans répéter la saisie. events lit les événements ; --follow poursuit, --after reprend depuis un curseur. Un état sent exige toujours une vérification dans l’application.
rdp-cli operations status#
Consulter un résultat conservé
Exige --session SESSION.
rdp-cli operations status --help
rdp-cli events#
Lire ou suivre les événements
Exige --session SESSION.
rdp-cli events --help
Confiance, identifiants et installation
trust lie une cible RDP exacte à une empreinte en mode strict. credentials remove supprime la référence désignée. Sur macOS et Linux, install-cli/uninstall-cli gèrent l’entrée CLI et --prefix choisit l’emplacement ; Windows exécute le fichier téléchargé. presence show --panel ouvre le panneau de sessions sur macOS et Linux. Le catalogue a été vérifié avec le CLI macOS 0.1.0 publié ; les différences Linux ont été vérifiées dans son implémentation publiée. licenses affiche les versions et licences tierces.
rdp-cli trust list#
Lister les certificats RDP approuvés
Aucun argument de session.
rdp-cli trust list --help
rdp-cli trust add#
Approuver une empreinte précise
Aucun argument de session.
rdp-cli trust add --help
rdp-cli trust remove#
Supprimer une approbation
Aucun argument de session.
rdp-cli trust remove --help
rdp-cli credentials remove#
Supprimer un identifiant du produit
Aucun argument de session.
rdp-cli credentials remove --help
rdp-cli install-cli#
Installer l’entrée CLI sur macOS ou Linux
Aucun argument de session.
rdp-cli install-cli --help
rdp-cli uninstall-cli#
Retirer l’entrée CLI créée
Aucun argument de session.
rdp-cli uninstall-cli --help
rdp-cli licenses#
Afficher les versions et licences tierces
Aucun argument de session.
rdp-cli licenses --help
Conditions de protocole et de plateforme
- RDP utilise --cert-policy ignore et --tls-profile modern. strict vérifie confiance et nom ; legacy autorise explicitement un ancien TLS. La validation HTTPS web reste inchangée.
- VNC refuse --user, --domain, --size, --layout, --cert-policy et --tls-profile. L’authentification classique emploie huit octets UTF-8 du mot de passe. Sans authentification : --vnc-security none, sans mot de passe. Les transports VNC pris en charge ne sont pas chiffrés.
- VNC ne fournit ni fichiers, son, microphone ni changement actif de disposition. Le presse-papiers UTF-8 nécessite une négociation ; sinon, seul Latin-1 est accepté.
- Les fichiers RDP nécessitent la redirection de disque. Audio, presse-papiers, microphone et écrans multiples dépendent aussi du serveur.
- Windows/macOS disposent de vues et d’un état natifs. Linux nécessite les services d’affichage/audio et Secret Service pour conserver les identifiants. Sans bureau, les opérations CLI compatibles restent disponibles.
- La saisie Unicode est temporisée pour les applications distantes. Adaptez le délai aux textes longs et vérifiez ; aucun observateur ne garantit tous les caractères sur tous les serveurs.
Reprise après erreur
OBSERVATION_REQUIRED / INVALID_COORDINATES- Refaites une capture et contrôlez écrans et coordonnées.
SESSION_PAUSED / CONTROL_HELD_BY_HUMAN- Arrêtez la saisie et attendez la restitution explicite à l’Agent.
AUTH_FAILED / VNC_AUTH_FAILED- Vérifiez compte, source du mot de passe et stratégie distante.
RDP_TLS_HANDSHAKE_FAILED / CERTIFICATE_UNTRUSTED- Contrôlez TLS, certificat et empreinte ; une erreur TLS ne signifie pas un mauvais mot de passe.
CAPABILITY_UNAVAILABLE / CLIPBOARD_ENCODING_UNSUPPORTED- Vérifiez capacités ou encodage et choisissez une opération compatible.
REQUEST_TIMEOUT / REQUEST_ID_CONFLICT / REQUEST_WINDOW_EXPIRED- Consultez opération et écran avant de réessayer ; ne réutilisez pas un ID avec d’autres arguments ni après expiration.