小さなリモート編集作業を完了する

既存の VNC デスクトップに接続し、空の文書に短い文字列を入力して、新しい画像で確認します。rdp-cli 0.1.0 と 2026 年 9 月の既存検証記録に基づく手順であり、新しいテストを行ったという意味ではありません。9 月 20 日の Mac の検証では Ubuntu 24.04 / TigerVNC 1.13.1 と xterm を使用し、後の Linux 検証では認証付き TigerVNC も確認しました。以下の文字列は説明用で、記録したセッションの再生ではありません。

サーバーとクライアントを準備する

適切な版をダウンロードし、クイックスタートの環境別設定を行います。リモート側には到達可能な VNC サーバーが必要で、閲覧と操作の権限を持っている必要があります。リモートのテキストエディターに空の文書を用意してください。rdp-cli はサーバーをインストールせず、AI モデルも内蔵しません。

VNC の既定ポートは 5900、認証はパスワード方式です。対応するセキュリティ方式は画面の通信を暗号化しないため、信頼できるネットワークや VPN を使います。従来の VNC 認証はパスワードの先頭 8 UTF-8 バイトだけを使います。RDP 専用の --user--domain、画面配置、証明書オプションは指定しません。

VNC を明示して接続する

例示アドレスとポートを置き換えます。macOS と Linux では Bash で実行します。Mac は先に bash を起動できます。Linux では rdp-cli をインストールしたコマンドか対応アーキテクチャの実行ファイルに置き換えます。

IFS= read -r -s -p 'Password: ' vnc_password
printf '\n'
printf '%s' "$vnc_password" | rdp-cli connect --protocol vnc --host 192.0.2.20 --port 5900 --password-stdin
unset vnc_password

Windows は EXE のフォルダーで PowerShell を使用します。

$secret = Read-Host 'Password' -AsSecureString
$savedEncoding = $OutputEncoding
try {
  $OutputEncoding = [System.Text.UTF8Encoding]::new($false)
  [System.Net.NetworkCredential]::new('', $secret).Password |
    .\rdp-cli.exe connect --protocol vnc --host 192.0.2.20 --port 5900 --password-stdin
} finally {
  $OutputEncoding = $savedEncoding
  $secret.Dispose()
}

JSON を読み、data.sessionSESSION として保存し、ok と必要に応じて error.code を確認します。接続失敗時に認証方式を勝手に切り替えないでください。--vnc-security none は無認証として設定されたサーバー専用で、明示指定が必要です。パスワード指定と併用できません。保存済みの --credential-ref--password-stdin の代替であり、追加のパスワード指定ではありません。

観察し、入力し、再確認する

以降の Windows コマンドでは rdp-cli.\rdp-cli.exe に置き換えます。Linux では正しい実行ファイルのパスを使います。

rdp-cli status --session SESSION
rdp-cli screenshot --session SESSION --out vnc-before.png

vnc-before.png を読み、目的のデスクトップとエディターを確認します。画像応答の data.observationOBSERVATION として保存し、状態応答のプロトコル、接続、制御状態を調べます。文書内の実際のリモート座標を XY に指定します。

rdp-cli click --session SESSION --desktop --x X --y Y --observation OBSERVATION
rdp-cli screenshot --session SESSION --out vnc-focused.png

vnc-focused.png を読んでフォーカスを確認し、その応答の data.observationNEW_OBSERVATION に使います。

rdp-cli type --session SESSION --text "VNC command check" --observation NEW_OBSERVATION
rdp-cli screenshot --session SESSION --out vnc-after.png

vnc-after.png で “VNC command check” が目的の文書に正しく表示されたか確認します。送信成功はアプリの受理を保証しません。例示座標を流用せず、サイズ変更、再接続、制御変更後の古いトークンも使わないでください。

必要に応じて閲覧・復旧する

ローカルのビューアーは任意です。人が同じセッションを見たい場合に開きます。

rdp-cli watch --session SESSION --viewer window

最初は読み取り専用です。一時停止、制御取得、返却は明示操作で行い、人の制御中や一時停止中は Agent が入力を止めます。再接続やサーバーのサイズ変更で観察は無効になり、制御は一時停止状態になります。許可された再開の前に新しい画像を確認してください。

接続できない場合はアドレス、ポート、認証とネットワークを確認し、パスワードを繰り返す前にエラーを読みます。入力文字が異なる場合はフォーカス、リモートのキーボード配列と入力方式を確認します。VNC の Unicode イベントだけでは、すべてのサーバーとアプリが全文字を受理するとは限りません。入力結果が不明なら画面と元の操作状態を調べてから再試行します。

VNC の機能制限

共通の画面取得・入力・閲覧は使えますが、交換ドライブ、音声、マイク、クライアント指定の画面配置は使えず、対象操作は CAPABILITY_UNAVAILABLE を返します。UTF-8 クリップボードには clipboard_utf8 のネゴシエーションが必要で、それ以外は Latin-1 です。ビューアーを開いても不足するプロトコル機能は増えません。

正確なオプションはコマンドリファレンス、RDP と VNC の選択は機能比較、環境別の設定はクイックスタートを参照してください。