2022年10月28日金曜日

AnyDeskからRustDeskへ

 最近RustDeskを知ったので、AnyDeskからRustDeskに移行してみました。


RustDeskの方が後発(だと思う)ですが、これ、完全にAnyDeskを意識していますね。すごく似たような表示だし、ほとんど同じように使えます。

比較表を作ってみました。ただし、Windows版での動作評価限定です。LinuxやAndroid版は使っていないので、詳しくは知りません。

比較項目AnyDeskRustDesk
インストール必要?インストール無しで使用可インストール無しで使用可
UAC操作(※3)対応(要インストール)対応(要インストール)
特権レベルウィンドウの操作(※4)可(要インストール)可(要インストール)
接続の簡単さ数桁のIDを入力数桁のIDを入力
無人接続可(パスワード設定後)可(パスワード設定後)
画像のきれいさまずまずやや粗い
表示ラグ少ないやや遅れる
ファイル転送
クリップボード共有
音声再生
チャット機能
英語←→日本語切替
(IME操作)
難ありALT+漢字キー
または
変換キー
CTRL+ALT+DEL対応対応対応
デスクトップLock対応対応対応
TLS対応対応
自前サーバ対応(※1)不可
マルチディスプレイ対応(※2)不可不可
商用利用有償制限なし
目立った不具合ローカルPC側でまれにWindowsキー、SHIFT/CTRLキーが使えなくなるアンダースコア"_"入力不可

※1:サーバとは、ホールパンチング処理と接続先の管理を行うものでRustDeskでは自前のPCをサーバにすることで、反応速度とセキュリティを向上させることが可能なようです。
サーバを自前で建てなくても使用可。その場合は、どこかのサーバを経由して接続管理がされるようです。
AnyDeskの方は、ベンダーのサーバを使うのでしょうか。詳しくはよく分かりませんが、画面共有開始時のホールパンチングにインターネット上のサーバにいったん接続することは確実だと思われます。

※2:「マルチディスプレイ対応」とは、リモート側PCがマルチディスプレイ構成のときにそれぞれのディスプレイ(デスクトップ)の内容を、ローカルPC上で表示・共有できるか?という意味です。残念ながら、リモート側PCのプライマリディスプレイの内容しか、こちら側で表示・操作できないようでした。(セカンダリディスプレイを表示・操作できる方法があれば教えてください)

※3:リモート側でUACが入る操作(アプリのインストールなど)を行った時に、操作ができるかどうか?ということです。AnyDesk/RustDesk共にインストールしておけば、UAC操作になってもちゃんと遠隔操作できます。(特権レベルで実行されるサービスとしてインストールされる模様)
インストールしていない場合は、リモートがUACになった途端、こちらから操作できなくなるので注意。

※4:AnyDesk/RustDesk共、インストールなしで起動している場合は、リモート側で特権レベルで実行されているアプリはこちら側から操作できません。Windowsタスクマネージャがその一例です。タスクマネージャを起動することはできますが、そのウィンドウ内を走査してタブを切り替えるといった操作ができません。
AnyDesk/RustDeskをインストールしておけば、UAC同様、問題なく操作できます。


不具合については、AnyDeskはWindowsキーや、SHIFT/CTRL/ALTキーがAnyDeskにキャプチャされてしまうことがあるので、ローカルPC側でWindowsキーを押してもSTARTメニューが開けなかったり、英文字入力がすべて大文字(SHIFTキー押しっぱなし?)になることがありました。

特に、AnyDeskでリモートに接続しようとしている最中に、Windows+CTRL+←(または→)操作で仮想デスクトップを切り替えると、必ずWindowsキーがキャプチャされたままになって、STARTメニューが開けません。また、同じ操作で別の仮想デスクトップ画面に切り替えることも出来なくなります。
これを解消するには、タスクトレイにあるAnyDeskを強制KILLすることです。これで再びWindowsキーが使えるようになります。
同じWindowsキー絡みでは、リモートPC側でWindowsキーを押すと、リモート側だけでなく、ローカルPC側でも同時にSTARTメニューが開いたり閉じたりすることがあります。これも、キー操作のキャプチャ処理がリモート側なのかローカルPC側なのかがおかしくなっているものと推測されます。

更にAnyDeskの話ですが、IMEに日本語・英語切り替えがダメです。リモート側で日本語入力しようとして漢字キーを押すと、リモート側で日本語モードになると同時に、ローカル側も日本語モードになってしまうので、とてつもなく入力しにくいです。マウスでタスクトレイをクリックして日本語・英語切り替えすれば回避できますが、いちいちマウスでクリックする人はほとんどいないでしょう。
この問題を解決するAnyDesk-IME-Off-controlという便利なツールを作ってくれている人がおられて、これを使うと少し幸せになれます。なぜ「少し」だけなのかは、このツールを使っていても、やっぱりリモート/ローカルで同時に日本語モードになってしまうことがあったからです。理由や再現方法ははっきりしませんが、何かを契機にして比較的頻繁にそういう現象が起き始めます。

RustDeskの致命的な不具合は、リモート側にアンダースコア"_"が入力できないことです(バージョン1.1.9で確認)。これは、githubでも不具合報告されています。回避策は、日本語モードにして「した」を変換する方法があります。他には、クリップボードに"_"をコピーして貼り付ける方法があります(が、面倒過ぎるので、早く直してほしい)。

RuskDeskもWindowsキーを押しっぱなし(キャプチャしっぱなし)問題が発生することがありますが、現象は少し違っていて、こちらは比較的軽微な問題です。リモート側で何かキー操作(例えば「1」を入力)をしようとすると、同時にその操作がローカルPC側でも「Windows+1キー」と認識されてしまうことがあります。つまり、リモートPCには「1」が入力され、同時にローカルPC側ではMS-Edgeが起動(タスクバーにピン止めしている1番目のアプリが起動)することがあります。
こちらも、不具合のきっかけは、仮想デスクトップの切り替え操作(Windows+CTRL+←)と関係がありそうです。そういう操作をしない人は、この問題は出ないのかも知れません。
解決方法は、リモート側とローカルPC側の両方で、落ち着いてWindowsキーを1回しっかりと押すことです。これでキー入力の異常なキャプチャ状態が解消されるようです。

(2022/12/23追記)

リモート側でアンダースコア"_"を入力するための一時的な回避策を見つけました。リモート側がWindowsであることが条件ですが、

  • リモート側にインストールしたPowerToysのKeyboard Managerで「ショートカットの再マップ」を設定する

という方法です。
RustDeskでリモート側にアンダースコアが入力できない原因は、アンダースコアを入力する際のキーコードをRustDeskがちゃんと送れないことだと推測しているので、リモート側のPowerToyで特定のキー入力をアンダースコア入力に再マップしてやるということです。

PowerToysでショートカットの再マップを設定するとき、¥マークが2つあることに気付きました。


上の方の「¥」は、キーボード上段BSキーの左あたりにある¥キーで、下の「¥」は右SHIFTキーに左にあるバックスラッシュ"\"キーです。リモート操作する時RustDeskは常に上段の¥キーに相当するコードをリモートに送っているようなので、これを特定のモディファイアキー(SHIFT/CTRL/ALTなど)と組み合わせた入力パターンを、Keyboard Managerの機能ででリモート側で「SHIFT+\キー」に置き換えてやります。

個人的には、アンダースコアを入力するときは、右SHIFT+\で入力することがほとんどなので、Keyboard Managerで「右SHIFT+¥キー」→「右SHIFT+\キー」にマップしてやりました。これで確かにRustDeskのリモート側でアンダースコアが入力できるようになりました。しかし、こうするとローカル側で「右SHIFT+¥キー」を入力したときにパイプ”|”が入力できず、アンダースコアが入力されてしまいます。当たり前ですね、自分は¥キーと\キーを区別して押しているつもりでも、RustDeskはどちらも¥キーに相当するコードを送っているのですから、リモート側が違いを区別できるはずはありません。

なので不本意ですが、Keyboard Managerの再マップルールは、「左SHIFT+¥キー」→「SHIFT+\キー」と設定しました。リモート側にアンダースコアを入力したい時は、「左SHIFT+\キー」と押すようにします。当然ですが、「左SHIFT+¥キー」でもアンダースコアが入力されてしまいます。パイプ”|”を入力したい時は、「右SHIFT+¥キー」を使います。
慣れるまでは少しとまどいますが、アンダースコアが入力できないとか、いちいち「した」の日本語変換を使ったり、クリップボード経由でコピーしたりする面倒さを考えれば、これは随分と改善されたと思います。

0 件のコメント:

コメントを投稿