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,保留窗口過期後也不能假定仍可去重。