2018年02月18日

Chromeリモートデスクトップでリモートログを記録する

 Chromebookから、リモートを行うときはメインはTeamViewerです。

 TeamViewerは、細かい設定や低速回線で利用できる反面、動きに弱い欠点があります。
 ウインドウの移動や、マウスオーバーなどのちょっとした動き、サウンドの再生などは省略されてしまいます。低速回線でのパフォーマンスを良くするにはこの方がいいのですが、作業する内容によっては困ることがあります。

 Chromeリモートデスクトップなら、動画やサウンドの再生・細かい動きなども確認できます。
 同時に複数のパソコンへ接続することも可能です。
 1台とリモート接続したら、ハンバーガーアイコン(三本線のアイコン)をクリックし、新しいウインドウを選択します。パソコンの選択画面が表示されるので、別のパソコンを選ぶだけです。3台以上も問題なく同時リモート可能でした。
 TeamViewerだと、1台しか接続できないので、複数接続するにはChromeアプリとAndroidアプリを使ってそれぞれ別のパソコンに繋がないといけません。

 さて、TeamViewerにはない利点があるChromeリモートデスクトップですが欠点もあります。
 リモート操作の開始・終了時刻などのログが記録されないので、記録やレポートを作成するときに困ります。


 そこで、リモート中かどうかを判別して、開始と終了のログをGoogleスプレットシートに記録するツールを作成しました。

 Chromeリモートデスクトップで、リモート接続をすると「remoting_host.exe」というプロセスが起動します。
 リモート接続を受けるために、remoting_host.exeはサービスとしても起動しています。
 タスクリストを見ると、

イメージ名                     PID セッション名     セッション# メモリ使用量
========================= ======== ================ =========== ============
remoting_host.exe 1564 Services 0 7,624 K
remoting_host.exe 1892 Services 0 50,756 K
remoting_host.exe 1220 Console 1 21,384 K



 このように、リモート接続を受けるためのものは「Services」となります。
 リモート接続したときに起動するのが、「Console」となっているものです。

 この「Console」のremoting_host.exeを監視すれば、リモート中かどうかを判別できます。
 リモート終了すると、このプロセスは終了するので、リモートが切断されたのも判断できます。

 コマンドプロンプトでは下記のようになります。
TASKLIST /FI "IMAGENAME eq remoting_host.exe" /FI "SESSIONNAME eq Console"



定期的に、プロセスがあるかどうかを監視します。
・ない状態からある状態になった場合
 リモート開始として日時を記録しリモート開始の通知。(不正アクセス防止用)
・ある状態からない状態になった場合
 リモート終了として記録して、開始/終了日時と作業内容をGoogleスプレットシートへ記録。

 という動作のツールを作成しました。
 運用してみると、Windows7では問題ありませんが、WindowsServer2016では動作しませんでした。

 プロセスを確認したところ、「remoting_host.exe」ではなく、「remoting_desktop.exe」になっていました。
 ただ、WindowsServer2008R2では、「remoting_host.exe」でしたので、ServerOSなら「remoting_desktop.exe」になるというわけではないようです。

 そこで、両方の「Console」プロセスを監視するように修正したところOSのバージョンに関係なく動作するようになりました。


 ログ記録は可能になりましたが、安定したアクセス環境やセキュリティのために、設定変更を禁止したいところです。

 リモートされる側のパソコンで、リモートの設定などを変更されてしまうと困ります。
 アクセスのための、PIN またはアクセスコードを記憶させると便利ですが、反面リスクは高まります。

 そこで、ChromeリモートデスクトップのウインドウIDを監視して、ウインドウが現れたらブロック(非表示&終了)するようにしました。

 設定変更する場合は、ツールを終了してからChromeリモートデスクトップを立ち上げます。

 これで、TeamViewerでもChromeリモートデスクトップでも、同じようにアクセスの記録が可能になりました。

 もしツールに興味がある方がいらっしゃるようであれば、公開やご提供も検討します。


関連記事
「ChromebookでリモートするならTeamViewerが快適。」
「TeamViewerの設定とリモートログの管理」
posted by Outliner 伊藤 崇 at 16:48| 効率化・仕組み