rdp-cli · 0.1.0

Référence des commandes rdp-cli

Les 48 commandes de rdp-cli 0.1.0 : connexion, captures, saisie, fichiers, contrôle humain et accès web.

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.

Options de la commande
OptionFormat et valeursExigence
--host

Nom ou adresse IP de l’hôte distant

TexteObligatoire
--protocol

Protocole de bureau à distance

Choix
rdp | vnc
Par défaut: rdp
Facultatif
--vnc-security

Authentification VNC ; none exige un choix explicite

Choix
vnc-auth | none
Facultatif
--port

Port TCP : RDP 3389, VNC 5900

Entier positif
Par défaut: RDP 3389 · VNC 5900
Facultatif
--user

Compte local ou de domaine ; obligatoire pour RDP

TexteFacultatif
--domain

Domaine Windows

TexteFacultatif
--password

Mot de passe ; VNC classique utilise les 8 premiers octets UTF-8

TexteFacultatif
--password-stdin

Lire le mot de passe sur l’entrée standard jusqu’à EOF

IndicateurFacultatif
--cert-policy

Politique de certificat RDP, indépendante du HTTPS Web

Choix
ignore | strict
Par défaut: ignore
Facultatif
--tls-profile

modern exige TLS 1.2 ; legacy autorise les anciens TLS et algorithmes pour cette session

Choix
modern | legacy
Par défaut: modern
Facultatif
--credential-ref

Référence existante du coffre de mots de passe

TexteFacultatif
--save-credential

Enregistrer le mot de passe validé sous cette référence

TexteFacultatif
--name

Nom lisible de la session

TexteFacultatif
--size

Dimensions du bureau WIDTHxHEIGHT

TexteFacultatif
--layout

Disposition des écrans en JSON ou @file

TexteFacultatif
--connect-timeout-ms

Délai de connexion en millisecondes

Entier positifFacultatif

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.

Options de la commande
OptionFormat et valeursExigence
--viewer

Type de visualiseur

Choix
window | web
Par défaut: window
Facultatif

rdp-cli watch --help

rdp-cli presence show#

Afficher l’état du bureau

Aucun argument de session.

Options de la commande
OptionFormat et valeursExigence
--floating

Afficher aussi les commandes flottantes facultatives

IndicateurFacultatif
--panel

Ouvrir aussi le panneau de sessions sur macOS ou Linux

IndicateurFacultatif

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.

Options de la commande
OptionFormat et valeursExigence
--viewer-id

ID du visualiseur connecté ; détenteur du contrôle si nécessaire

TexteObligatoire

rdp-cli control take --help

rdp-cli control release#

Rendre le contrôle à l’Agent

Exige --session SESSION.

Options de la commande
OptionFormat et valeursExigence
--viewer-id

ID du visualiseur connecté ; détenteur du contrôle si nécessaire

TexteFacultatif
--agent-id

Agent recevant le contrôle

TexteFacultatif

rdp-cli control release --help

Captures, saisie et presse-papiers

screenshot écrit un PNG avec --out ; --monitor choisit l’écran. La saisie exige observation et des coordonnées d’écran ou --desktop, sans mélange. drag utilise départ/arrivée et écrans facultatifs. type choisit --text ou --text-stdin ; --sensitive modifie l’indication, pas la capture. key emploie --keys ou --key avec --state. Écrire le presse-papiers remplace explicitement le texte distant.

rdp-cli screenshot#

Capturer une observation PNG cohérente

Exige --session SESSION.

Options de la commande
OptionFormat et valeursExigence
--monitor

ID d’écran ; screenshot accepte aussi all

Texte
Par défaut: all
Facultatif
--out

Fichier PNG de destination

CheminFacultatif

rdp-cli screenshot --help

rdp-cli move#

Déplacer le pointeur distant

Exige --session SESSION.

Options de la commande
OptionFormat et valeursExigence
--x

Coordonnée x distante

EntierObligatoire
--y

Coordonnée y distante

EntierObligatoire
--monitor

ID d’écran ; screenshot accepte aussi all

TexteFacultatif
--desktop

Utiliser les coordonnées du bureau plutôt que celles de l’écran

IndicateurFacultatif
--observation

Jeton d’une capture récente

TexteObligatoire

rdp-cli move --help

rdp-cli click#

Cliquer à une coordonnée

Exige --session SESSION.

Options de la commande
OptionFormat et valeursExigence
--x

Coordonnée x distante

EntierObligatoire
--y

Coordonnée y distante

EntierObligatoire
--button

Bouton de souris

Choix
left | right | middle
Par défaut: left
Facultatif
--count

Nombre de clics

Entier positifFacultatif
--monitor

ID d’écran ; screenshot accepte aussi all

TexteFacultatif
--desktop

Utiliser les coordonnées du bureau plutôt que celles de l’écran

IndicateurFacultatif
--observation

Jeton d’une capture récente

TexteObligatoire

rdp-cli click --help

rdp-cli scroll#

Faire défiler à une coordonnée

Exige --session SESSION.

Options de la commande
OptionFormat et valeursExigence
--x

Coordonnée x distante

EntierObligatoire
--y

Coordonnée y distante

EntierObligatoire
--delta-x

Unités signées de molette horizontale

EntierFacultatif
--delta-y

Unités signées de molette verticale

EntierFacultatif
--monitor

ID d’écran ; screenshot accepte aussi all

TexteFacultatif
--desktop

Utiliser les coordonnées du bureau plutôt que celles de l’écran

IndicateurFacultatif
--observation

Jeton d’une capture récente

TexteObligatoire

rdp-cli scroll --help

rdp-cli drag#

Glisser entre deux coordonnées

Exige --session SESSION.

Options de la commande
OptionFormat et valeursExigence
--from-x

Coordonnée x de départ

EntierObligatoire
--from-y

Coordonnée y de départ

EntierObligatoire
--to-x

Coordonnée x d’arrivée

EntierObligatoire
--to-y

Coordonnée y d’arrivée

EntierObligatoire
--from-monitor

ID de l’écran de départ

TexteFacultatif
--to-monitor

ID de l’écran d’arrivée

TexteFacultatif
--desktop

Utiliser les coordonnées du bureau plutôt que celles de l’écran

IndicateurFacultatif
--observation

Jeton d’une capture récente

TexteObligatoire

rdp-cli drag --help

rdp-cli type#

Saisir Unicode sans changer le presse-papiers

Exige --session SESSION.

Options de la commande
OptionFormat et valeursExigence
--text

Texte Unicode à saisir ou à copier

TexteFacultatif
--text-stdin

Lire le texte de saisie ou du presse-papiers jusqu’à EOF

IndicateurFacultatif
--sensitive

Masquer le texte dans les événements observables ; les captures montrent toujours le bureau

IndicateurFacultatif
--observation

Jeton d’une capture récente

TexteObligatoire

rdp-cli type --help

rdp-cli key#

Envoyer une combinaison ou un état de touche

Exige --session SESSION.

Options de la commande
OptionFormat et valeursExigence
--keys

Combinaison telle que CTRL+S

TexteFacultatif
--key

Nom d’une touche

TexteFacultatif
--state

État de touche ou du mode muet selon les valeurs indiquées

Choix
down | up
Facultatif
--observation

Jeton d’une capture récente

TexteObligatoire

rdp-cli key --help

rdp-cli clipboard get#

Lire le presse-papiers distant

Exige --session SESSION.

rdp-cli clipboard get --help

rdp-cli clipboard set#

Écrire le presse-papiers distant

Exige --session SESSION.

Options de la commande
OptionFormat et valeursExigence
--text

Texte Unicode à saisir ou à copier

TexteFacultatif
--text-stdin

Lire le texte de saisie ou du presse-papiers jusqu’à EOF

IndicateurFacultatif
--observation

Jeton d’une capture récente

TexteObligatoire

rdp-cli clipboard set --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.

Options de la commande
OptionFormat et valeursExigence
--path

Chemin relatif à l’échange de fichiers, pas à un disque distant quelconque

CheminFacultatif

rdp-cli files list --help

rdp-cli files upload#

Téléverser un fichier ou dossier

Exige --session SESSION.

Options de la commande
OptionFormat et valeursExigence
--local

Fichier/dossier local à envoyer ou destination du téléchargement

CheminObligatoire
--path

Chemin relatif à l’échange de fichiers, pas à un disque distant quelconque

CheminObligatoire
--overwrite

Autoriser le remplacement de la cible

IndicateurFacultatif

rdp-cli files upload --help

rdp-cli files download#

Télécharger un fichier ou dossier

Exige --session SESSION.

Options de la commande
OptionFormat et valeursExigence
--path

Chemin relatif à l’échange de fichiers, pas à un disque distant quelconque

CheminObligatoire
--local

Fichier/dossier local à envoyer ou destination du téléchargement

CheminObligatoire
--overwrite

Autoriser le remplacement de la cible

IndicateurFacultatif

rdp-cli files download --help

rdp-cli files status#

Consulter les transferts

Exige --session SESSION.

Options de la commande
OptionFormat et valeursExigence
--transfer-id

ID du transfert ; files status sans cet ID énumère les transferts

TexteFacultatif

rdp-cli files status --help

rdp-cli files cancel#

Annuler un transfert

Exige --session SESSION.

Options de la commande
OptionFormat et valeursExigence
--transfer-id

ID du transfert ; files status sans cet ID énumère les transferts

TexteObligatoire

rdp-cli files cancel --help

rdp-cli files cleanup#

Supprimer du contenu d’échange

Exige --session SESSION.

Options de la commande
OptionFormat et valeursExigence
--path

Chemin relatif à l’échange de fichiers, pas à un disque distant quelconque

CheminObligatoire

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.

Options de la commande
OptionFormat et valeursExigence
--viewer-id

ID du visualiseur connecté ; détenteur du contrôle si nécessaire

TexteObligatoire
--state

État de touche ou du mode muet selon les valeurs indiquées

Choix
on | off
Obligatoire

rdp-cli audio mute --help

rdp-cli audio volume#

Régler le volume d’une vue

Exige --session SESSION.

Options de la commande
OptionFormat et valeursExigence
--viewer-id

ID du visualiseur connecté ; détenteur du contrôle si nécessaire

TexteObligatoire
--percent

Gain de lecture en pourcentage

Entier positifObligatoire

rdp-cli audio volume --help

rdp-cli audio microphone#

Interroger ou arrêter le microphone

Exige --session SESSION.

Options de la commande
OptionFormat et valeursExigence
--action

État ou arrêt du microphone ; le démarrage exige un visualiseur humain

Choix
status | stop
Par défaut: status
Facultatif

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.

Options de la commande
OptionFormat et valeursExigence
--layout

Disposition des écrans en JSON ou @file

TexteObligatoire
--allow-reconnect

Autoriser une reconnexion si la disposition dynamique est indisponible

IndicateurFacultatif

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.

Options de la commande
OptionFormat et valeursExigence
--listen

Adresse d’écoute

TexteFacultatif
--tls-cert

Fichier du certificat HTTPS

CheminFacultatif
--tls-key

Fichier de clé privée HTTPS

CheminFacultatif
--trust-proxy

Faire confiance au proxy configuré

IndicateurFacultatif
--ice-server

URL STUN/TURN pour WebRTC

TexteFacultatif · Répétable

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.

Options de la commande
OptionFormat et valeursExigence
--permission

Permission accordée au jeton d’accès

TexteObligatoire · Répétable
--expires-in

Durée de l’autorisation en secondes

Entier positifObligatoire

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.

Options de la commande
OptionFormat et valeursExigence
--grant-id

Identifiant d’autorisation

TexteObligatoire

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.

Options de la commande
OptionFormat et valeursExigence
--operation-id

Identifiant d’opération

TexteFacultatif
--request-id

ID de corrélation/idempotence ; operations status interroge la requête initiale

TexteFacultatif

rdp-cli operations status --help

rdp-cli events#

Lire ou suivre les événements

Exige --session SESSION.

Options de la commande
OptionFormat et valeursExigence
--follow

Suivre les nouveaux événements

IndicateurFacultatif
--after

Reprendre après un curseur d’événements

TexteFacultatif

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.

Options de la commande
OptionFormat et valeursExigence
--target

Cible de confiance RDP

TexteObligatoire
--fingerprint

Empreinte du certificat

TexteObligatoire

rdp-cli trust add --help

rdp-cli trust remove#

Supprimer une approbation

Aucun argument de session.

Options de la commande
OptionFormat et valeursExigence
--target

Cible de confiance RDP

TexteObligatoire

rdp-cli trust remove --help

rdp-cli credentials remove#

Supprimer un identifiant du produit

Aucun argument de session.

Options de la commande
OptionFormat et valeursExigence
--reference

Référence de mot de passe à supprimer

TexteObligatoire

rdp-cli credentials remove --help

rdp-cli install-cli#

Installer l’entrée CLI sur macOS ou Linux

Aucun argument de session.

Options de la commande
OptionFormat et valeursExigence
--prefix

Préfixe d’installation contrôlé par l’utilisateur

CheminFacultatif

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.