rdp-cli · 0.1.0

rdp-cli 在线命令参考

rdp-cli 0.1.0 的全部 48 个命令:连接、截图、输入、文件、人类接管与浏览器访问。

本页依据已核验的 0.1.0 命令目录整理。实际可用能力仍受平台和协议协商影响,使用参数前请核对已安装版本。

观察、操作、验证

USER、SESSION、OBSERVATION、X 和 Y 均为占位符。通过标准输入提供密码后关闭输入流;--password-stdin 不会显示交互式密码提示。保存 data.session,读取 before.png,从图中选取坐标,再检查 after.png。输入已发送不等于任务已完成。

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 显示版本与构建能力;--help-json 返回机器可读目录;COMMAND --help 可离线查看该命令的完整参数说明,不会启动会话。

rdp-cli --version
rdp-cli --help-json
rdp-cli connect --help

JSON 与通用参数

普通命令在 stdout 输出一个 UTF-8 JSON 对象:成功为 ok: true 与 data,失败为 ok: false 与 error。stderr 仅供诊断;退出码 0 表示成功,1 表示运行失败,2 表示命令或参数错误。

帮助输出纯文本。events --follow 流式输出 NDJSON;普通 events 返回一个 JSON 结果,其中含 data.events 与 data.ndjson。 Windows PowerShell 5.1 处理非 ASCII 文本时,应将 [Console]::OutputEncoding 与 $OutputEncoding 都设为 UTF-8。

data.session
保存 connect 返回的会话 ID,后续命令使用同一值。
data.observation
输入须使用截图返回的观察令牌;重连、控制权或布局变化后重新截图。
data.capabilities
先检查协商能力,再决定是否使用文件、音频、剪贴板或显示器操作。
data.state / data.remote_outcome
queued、sent、partial、unknown、cancelled、failed 表示输入进度。remote_outcome: not_confirmed 仍需查看远端结果。
data.transfer_id
把传输 ID 交给 files status 或 files cancel;等待终态并检查已完成文件的摘要。
error.code / error.message / error.retryable
使用稳定错误码决策,消息提供上下文;retryable 只是提示,不能据此盲目重复操作。

所有命令支持 --request-id 与 --timeout-ms。只有在保留窗口内,以完全相同的命令和参数重试时才复用请求 ID。本地超时不能证明输入未发送,应先查询 operations status。

--request-id ID · --timeout-ms MILLISECONDS

会话

connect 必须指定 --host;RDP 还须指定 --user。RDP 默认端口 3389,VNC 为 5900。需要密码认证的连接须在 --password、--password-stdin、--credential-ref 中选择一个来源;使用 --vnc-security none 的 VNC 连接不提供密码来源。 --domain 用于 RDP 域账号。--size 与 --layout 互斥,--connect-timeout-ms 限制连接阶段。reconnect 后保持暂停;disconnect 断开连接但不注销远端用户。

rdp-cli connect#

创建并连接持续的 RDP/VNC 会话

不需要会话参数。

命令参数
参数格式与取值要求
--host

远端主机名或 IP 地址

文本必填
--protocol

远程桌面协议

枚举
rdp | vnc
默认值: rdp
可选
--vnc-security

VNC 认证方式;无认证需显式选择 none

枚举
vnc-auth | none
可选
--port

TCP 端口:RDP 3389,VNC 5900

正整数
默认值: RDP 3389 · VNC 5900
可选
--user

本地或域账号;RDP 必填

文本可选
--domain

Windows 域

文本可选
--password

密码;经典 VNC 只用前 8 个 UTF-8 字节

文本可选
--password-stdin

从标准输入读取密码直到 EOF

开关可选
--cert-policy

RDP 服务器证书策略,与 Web HTTPS 无关

枚举
ignore | strict
默认值: ignore
可选
--tls-profile

modern 要求 TLS 1.2;legacy 仅为本会话允许旧 TLS 和密码算法

枚举
modern | legacy
默认值: modern
可选
--credential-ref

已有的平台凭据存储引用

文本可选
--save-credential

成功连接后以此引用保存密码

文本可选
--name

可读的会话名称

文本可选
--size

桌面尺寸 WIDTHxHEIGHT

文本可选
--layout

显示器布局 JSON 或 @file

文本可选
--connect-timeout-ms

连接截止时间,单位毫秒

正整数可选

rdp-cli connect --help

rdp-cli list#

列出可见会话

不需要会话参数。

rdp-cli list --help

rdp-cli status#

查询一致的会话状态

必须指定 --session SESSION。

rdp-cli status --help

rdp-cli reconnect#

重连未关闭的会话并保持暂停

必须指定 --session SESSION。

rdp-cli reconnect --help

rdp-cli disconnect#

断开会话而不注销远端用户

必须指定 --session SESSION。

rdp-cli disconnect --help

查看器与桌面状态

watch 为人打开只读查看器,Agent 命令无需先打开窗口。--viewer 可选 window 或 web。presence show/hide 控制本机状态入口;--floating 添加悬浮控件,--panel 打开 macOS 或 Linux 会话面板。关闭只读窗口不会断开连接。

rdp-cli watch#

打开或激活人类查看器

必须指定 --session SESSION。

命令参数
参数格式与取值要求
--viewer

查看器实现

枚举
window | web
默认值: window
可选

rdp-cli watch --help

rdp-cli presence show#

显示桌面会话状态入口

不需要会话参数。

命令参数
参数格式与取值要求
--floating

同时显示可选的悬浮会话控件

开关可选
--panel

同时打开 macOS 或 Linux 会话面板

开关可选

rdp-cli presence show --help

rdp-cli presence hide#

隐藏状态入口但保留会话

不需要会话参数。

rdp-cli presence hide --help

控制与交接

pause 指定 --session 或 --all,并撤销人类控制;resume 将暂停会话交回 Agent。control take 需要已连接的 viewer ID;release 可指定该查看者或目标 Agent。尊重人类暂停,交还后重新截图。

rdp-cli pause#

暂停普通输入并撤销人类控制

必须二选一:--session SESSION 或 --all。

rdp-cli pause --help

rdp-cli resume#

将暂停会话交还 Agent

必须指定 --session SESSION。

rdp-cli resume --help

rdp-cli control take#

把控制权交给已连接的查看器

必须指定 --session SESSION。

命令参数
参数格式与取值要求
--viewer-id

已连接查看器 ID;适用时必须是控制租约持有者

文本必填

rdp-cli control take --help

rdp-cli control release#

将控制权交还 Agent

必须指定 --session SESSION。

命令参数
参数格式与取值要求
--viewer-id

已连接查看器 ID;适用时必须是控制租约持有者

文本可选
--agent-id

接收控制的 Agent

文本可选

rdp-cli control release --help

截图、输入与剪贴板

screenshot 通过 --out 保存 PNG,可用 --monitor 选屏。坐标输入需要 observation,使用屏内坐标或 --desktop 桌面坐标,不能混用。drag 使用起止坐标及可选屏幕 ID。type 的 --text 与 --text-stdin 二选一;--sensitive 只改变提示,不遮挡截图。key 使用 --keys 或 --key 配合 --state。剪贴板写入会明确替换远端文本。

rdp-cli screenshot#

获取一致的 PNG 截图与观察令牌

必须指定 --session SESSION。

命令参数
参数格式与取值要求
--monitor

显示器 ID;screenshot 还可使用 all

文本
默认值: all
可选
--out

目标 PNG 文件

路径可选

rdp-cli screenshot --help

rdp-cli move#

移动远端指针

必须指定 --session SESSION。

命令参数
参数格式与取值要求
--x

远端 x 坐标

整数必填
--y

远端 y 坐标

整数必填
--monitor

显示器 ID;screenshot 还可使用 all

文本可选
--desktop

使用桌面坐标而非显示器内部坐标

开关可选
--observation

最新截图返回的观察令牌

文本必填

rdp-cli move --help

rdp-cli click#

点击远端坐标

必须指定 --session SESSION。

命令参数
参数格式与取值要求
--x

远端 x 坐标

整数必填
--y

远端 y 坐标

整数必填
--button

鼠标按键

枚举
left | right | middle
默认值: left
可选
--count

点击次数

正整数可选
--monitor

显示器 ID;screenshot 还可使用 all

文本可选
--desktop

使用桌面坐标而非显示器内部坐标

开关可选
--observation

最新截图返回的观察令牌

文本必填

rdp-cli click --help

rdp-cli scroll#

在远端坐标滚动

必须指定 --session SESSION。

命令参数
参数格式与取值要求
--x

远端 x 坐标

整数必填
--y

远端 y 坐标

整数必填
--delta-x

带正负号的水平滚轮单位

整数可选
--delta-y

带正负号的垂直滚轮单位

整数可选
--monitor

显示器 ID;screenshot 还可使用 all

文本可选
--desktop

使用桌面坐标而非显示器内部坐标

开关可选
--observation

最新截图返回的观察令牌

文本必填

rdp-cli scroll --help

rdp-cli drag#

在远端坐标之间拖动

必须指定 --session SESSION。

命令参数
参数格式与取值要求
--from-x

起点 x 坐标

整数必填
--from-y

起点 y 坐标

整数必填
--to-x

终点 x 坐标

整数必填
--to-y

终点 y 坐标

整数必填
--from-monitor

起点显示器 ID

文本可选
--to-monitor

终点显示器 ID

文本可选
--desktop

使用桌面坐标而非显示器内部坐标

开关可选
--observation

最新截图返回的观察令牌

文本必填

rdp-cli drag --help

rdp-cli type#

输入 Unicode 文本,不替换剪贴板

必须指定 --session SESSION。

命令参数
参数格式与取值要求
--text

Unicode 输入或剪贴板文字

文本可选
--text-stdin

从标准输入读取输入或剪贴板文字直到 EOF

开关可选
--sensitive

在可观察事件中隐藏文字;截图仍包含桌面内容

开关可选
--observation

最新截图返回的观察令牌

文本必填

rdp-cli type --help

rdp-cli key#

发送组合键或按键状态

必须指定 --session SESSION。

命令参数
参数格式与取值要求
--keys

组合键,例如 CTRL+S

文本可选
--key

单个按键名称

文本可选
--state

按所列值指定按键状态或音频静音状态

枚举
down | up
可选
--observation

最新截图返回的观察令牌

文本必填

rdp-cli key --help

rdp-cli clipboard get#

读取远端文本剪贴板

必须指定 --session SESSION。

rdp-cli clipboard get --help

rdp-cli clipboard set#

写入远端文本剪贴板

必须指定 --session SESSION。

命令参数
参数格式与取值要求
--text

Unicode 输入或剪贴板文字

文本可选
--text-stdin

从标准输入读取输入或剪贴板文字直到 EOF

开关可选
--observation

最新截图返回的观察令牌

文本必填

rdp-cli clipboard set --help

文件

--path 相对于会话交换盘,不是任意远端磁盘;--local 指定客户端文件或目录。覆盖须加 --overwrite。上传/下载返回传输 ID;status 省略 ID 时列出传输。取消可能保留已完成文件;cleanup 删除选定交换内容,忙碌时可能返回 FILE_BUSY。

rdp-cli files list#

列出交换盘内容

必须指定 --session SESSION。

命令参数
参数格式与取值要求
--path

相对会话文件交换目录的路径,并非任意远端磁盘路径

路径可选

rdp-cli files list --help

rdp-cli files upload#

上传文件或目录至交换盘

必须指定 --session SESSION。

命令参数
参数格式与取值要求
--local

上传的本地文件/目录或下载的本地目标

路径必填
--path

相对会话文件交换目录的路径,并非任意远端磁盘路径

路径必填
--overwrite

允许替换已有目标

开关可选

rdp-cli files upload --help

rdp-cli files download#

从交换盘下载文件或目录

必须指定 --session SESSION。

命令参数
参数格式与取值要求
--path

相对会话文件交换目录的路径,并非任意远端磁盘路径

路径必填
--local

上传的本地文件/目录或下载的本地目标

路径必填
--overwrite

允许替换已有目标

开关可选

rdp-cli files download --help

rdp-cli files status#

查询一个或全部文件传输

必须指定 --session SESSION。

命令参数
参数格式与取值要求
--transfer-id

传输 ID;files status 省略时列出会话传输

文本可选

rdp-cli files status --help

rdp-cli files cancel#

取消文件传输

必须指定 --session SESSION。

命令参数
参数格式与取值要求
--transfer-id

传输 ID;files status 省略时列出会话传输

文本必填

rdp-cli files cancel --help

rdp-cli files cleanup#

删除指定交换内容

必须指定 --session SESSION。

命令参数
参数格式与取值要求
--path

相对会话文件交换目录的路径,并非任意远端磁盘路径

路径必填

rdp-cli files cleanup --help

声音与麦克风

audio status 查询协商能力。mute/volume 针对 --viewer-id;静音取 on/off,音量使用正数 --percent。audio microphone 只能查询或停止。启动麦克风须由持有控制权的人在获授权查看器中明确启用。

rdp-cli audio status#

查询音频能力与来源

必须指定 --session SESSION。

rdp-cli audio status --help

rdp-cli audio mute#

为一个查看器静音或解除静音

必须指定 --session SESSION。

命令参数
参数格式与取值要求
--viewer-id

已连接查看器 ID;适用时必须是控制租约持有者

文本必填
--state

按所列值指定按键状态或音频静音状态

枚举
on | off
必填

rdp-cli audio mute --help

rdp-cli audio volume#

设置一个查看器的播放音量

必须指定 --session SESSION。

命令参数
参数格式与取值要求
--viewer-id

已连接查看器 ID;适用时必须是控制租约持有者

文本必填
--percent

播放增益百分比

正整数必填

rdp-cli audio volume --help

rdp-cli audio microphone#

查询或停止当前麦克风

必须指定 --session SESSION。

命令参数
参数格式与取值要求
--action

查询或停止麦克风;开启需要人工查看器

枚举
status | stop
默认值: status
可选

rdp-cli audio microphone --help

显示器

monitors 返回协商布局。monitors set 接受布局 JSON 或 @file;--allow-reconnect 允许在不能动态调整时重连。按返回布局重新截图后再输入。VNC 可报告帧缓冲区,但不接受主动布局变更。

rdp-cli monitors#

查询协商后的显示器布局

必须指定 --session SESSION。

rdp-cli monitors --help

rdp-cli monitors set#

更改显示器布局

必须指定 --session SESSION。

命令参数
参数格式与取值要求
--layout

显示器布局 JSON 或 @file

文本必填
--allow-reconnect

不支持动态布局时允许重连

开关可选

rdp-cli monitors set --help

浏览器访问

web start 配置监听地址与 TLS 证书/私钥或受信代理,--ice-server 可重复。非回环访问限局域网/VPN,并需要 HTTPS 和授权。access grant 必须指定可重复的 --permission 与以秒计的 --expires-in。权限含 session.observe/control、clipboard.read/write、files.read/write、audio.listen/send。撤销授权会关闭其流。

rdp-cli web start#

启动内嵌授权 Web 服务

不需要会话参数。

命令参数
参数格式与取值要求
--listen

监听地址

文本可选
--tls-cert

HTTPS 证书文件

路径可选
--tls-key

HTTPS 私钥文件

路径可选
--trust-proxy

信任已配置的代理

开关可选
--ice-server

WebRTC 使用的 STUN/TURN URL

文本可选 · 可重复

rdp-cli web start --help

rdp-cli web status#

查询 Web 服务状态

不需要会话参数。

rdp-cli web status --help

rdp-cli web stop#

停止 Web 访问但保留会话

不需要会话参数。

rdp-cli web stop --help

rdp-cli access grant#

创建有限范围的 Web 授权

必须指定 --session SESSION。

命令参数
参数格式与取值要求
--permission

授予此访问令牌的权限

文本必填 · 可重复
--expires-in

授权有效期,单位秒

正整数必填

rdp-cli access grant --help

rdp-cli access list#

列出 Web 授权

必须指定 --session SESSION。

rdp-cli access list --help

rdp-cli access revoke#

撤销授权及其流

必须指定 --session SESSION。

命令参数
参数格式与取值要求
--grant-id

授权标识符

文本必填

rdp-cli access revoke --help

操作与事件

结果不确定时,operations status 按 operation ID 或原 request ID 查询,不重新发送输入。events 读取事件,--follow 持续订阅,--after 从游标续读。sent 后仍须另行验证应用实际结果。

rdp-cli operations status#

查询保留的操作结果

必须指定 --session SESSION。

命令参数
参数格式与取值要求
--operation-id

操作标识符

文本可选
--request-id

请求关联/幂等 ID;operations status 用它查询原请求

文本可选

rdp-cli operations status --help

rdp-cli events#

读取或持续订阅事件

必须指定 --session SESSION。

命令参数
参数格式与取值要求
--follow

持续跟随新事件

开关可选
--after

从事件游标之后继续

文本可选

rdp-cli events --help

信任、凭据与安装

trust 为严格证书模式保存精确 RDP 目标与指纹;credentials remove 仅删除指定产品凭据。macOS 和 Linux 的 install-cli/uninstall-cli 管理命令入口,--prefix 选择安装位置;Windows 直接运行下载的程序。presence show --panel 可在 macOS 和 Linux 打开会话面板。本页命令目录由正式 macOS 0.1.0 CLI 核验,Linux 差异另据正式 Linux 实现核对。 licenses 输出第三方版本与许可声明。

rdp-cli trust list#

列出 RDP 证书信任记录

不需要会话参数。

rdp-cli trust list --help

rdp-cli trust add#

信任指定目标的证书指纹

不需要会话参数。

命令参数
参数格式与取值要求
--target

RDP 信任目标

文本必填
--fingerprint

证书指纹

文本必填

rdp-cli trust add --help

rdp-cli trust remove#

删除指定目标的信任记录

不需要会话参数。

命令参数
参数格式与取值要求
--target

RDP 信任目标

文本必填

rdp-cli trust remove --help

rdp-cli credentials remove#

删除指定产品凭据

不需要会话参数。

命令参数
参数格式与取值要求
--reference

要移除的凭据存储引用

文本必填

rdp-cli credentials remove --help

rdp-cli install-cli#

在 macOS 或 Linux 安装命令入口

不需要会话参数。

命令参数
参数格式与取值要求
--prefix

用户可控的安装前缀

路径可选

rdp-cli install-cli --help

rdp-cli uninstall-cli#

移除 rdp-cli 创建的命令入口

不需要会话参数。

rdp-cli uninstall-cli --help

rdp-cli licenses#

查看第三方版本与许可声明

不需要会话参数。

rdp-cli licenses --help

协议与平台条件

  • RDP 默认 --cert-policy ignore 与 --tls-profile modern。strict 核验证书信任及名称;legacy 显式允许较旧 TLS。两者均不改变 Web HTTPS 校验。
  • VNC 不接受 --user、--domain、--size、--layout、--cert-policy、--tls-profile。经典认证只使用密码前八个 UTF-8 字节;无认证须明确 --vnc-security none 且不传密码。当前支持的 VNC 传输不加密。
  • VNC 不提供文件、声音、麦克风与主动显示布局调整。剪贴板 UTF-8 取决于协商,否则仅接受 Latin-1。
  • RDP 文件需要驱动器重定向;音频、剪贴板、麦克风、多屏也受服务端策略与协商能力影响。
  • Windows/macOS 提供原生查看器及状态入口。Linux 原生窗口依赖桌面显示服务,音频依赖主机音频服务,保存凭据依赖 Secret Service;无桌面主机仍可使用支持的 CLI 操作。
  • Unicode 输入会按远端应用兼容性节奏发送。为长文本设置合适超时并核对结果;切换输入法或打开查看器不能保证任意服务端接受所有字符。

错误恢复

OBSERVATION_REQUIRED / INVALID_COORDINATES
重新截图,检查屏幕布局并选择有效远端坐标。
SESSION_PAUSED / CONTROL_HELD_BY_HUMAN
停止输入,尊重人类控制;仅在明确交还 Agent 后继续。
AUTH_FAILED / VNC_AUTH_FAILED
检查账号、密码来源及远端认证策略。
RDP_TLS_HANDSHAKE_FAILED / CERTIFICATE_UNTRUSTED
核对服务器 TLS、证书策略与实际指纹,不要将 TLS 错误当作密码错误。
CAPABILITY_UNAVAILABLE / CLIPBOARD_ENCODING_UNSUPPORTED
检查协议能力或文本编码,选择支持的操作。
REQUEST_TIMEOUT / REQUEST_ID_CONFLICT / REQUEST_WINDOW_EXPIRED
重试前查询原操作和当前画面;不同参数不能复用 ID,保留窗口过期后也不能假定仍可去重。