rdp-cli · 0.1.0

rdp-cli コマンドリファレンス

rdp-cli 0.1.0 の全48コマンド。接続、スクリーンショット、入力、ファイル、人による操作、Web アクセスを調べられます。

検証済みの 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 オブジェクトを1つ出力します。成功時は ok: true と data、失敗時は ok: false と error です。stderr は診断情報です。終了コードは成功0、実行エラー1、引数エラー2です。

ヘルプはテキストです。events --follow は NDJSON を連続出力し、通常の events は data.events と data.ndjson を含む単一 JSON 結果を返します。 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
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 は人向けの読み取り専用ビューアーを開きます。--viewer は window または web。Agent のコマンドにビューアーは不要です。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 が必要です。upload/download は転送IDを返し、status はID省略時に一覧を返します。cancel 後も完了済みファイルは残り得ます。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 アクセス

web start で待受アドレスとTLS証明書・鍵、または信頼するプロキシを設定します。--ice-server は繰り返し可能です。ループバック外ではLAN/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

権限付与 ID

テキスト必須

rdp-cli access revoke --help

操作とイベント

operations status は operation ID または元の request ID で照会し、入力を再送しません。events はイベントを読み、--follow は継続、--after はカーソルから再開します。sent 後もアプリ上の結果を確認します。

rdp-cli operations status#

保持された操作結果を照会

--session SESSION が必須です。

コマンドのオプション
オプション形式と値指定条件
--operation-id

操作 ID

テキスト任意
--request-id

要求の関連付け/冪等 ID。operations status では元の要求を照会

テキスト任意

rdp-cli operations status --help

rdp-cli events#

イベントを読む・継続購読

--session SESSION が必須です。

コマンドのオプション
オプション形式と値指定条件
--follow

新しいイベントを継続して読む

フラグ任意
--after

イベントカーソルの後から再開

テキスト任意

rdp-cli events --help

信頼・認証情報・導入

trust はstrictモードで正確なRDP接続先と指紋を関連付けます。credentials remove は指定された製品の認証情報だけを削除します。macOS と Linux の install-cli/uninstall-cli は CLI 入口を管理し、--prefix で配置先を選びます。Windows はダウンロードした実行ファイルを使います。presence show --panel は macOS と Linux のセッションパネルを開きます。コマンド一覧は公開済み macOS 0.1.0 CLI で検証し、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 の CLI 入口をインストール

セッション指定は不要です。

コマンドのオプション
オプション形式と値指定条件
--prefix

ユーザーが管理できるインストール先プレフィックス

パス任意

rdp-cli install-cli --help

rdp-cli uninstall-cli#

作成した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 を拒否します。従来認証はパスワードの先頭8 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での重複排除を期待しません。