リモートデスクトップ

TeamViewer

これまで組み立てたPCのOSはWindowsのPro版を入れてきた。
今回、新調した2台のPCはキャプチャーやらエンコードやらをメインとする予定なのでお安くあげようと初のHome版を購入。

夜間もエンコードを頑張ってもらおうと趣味の機械やストックしたプラモデル等々を詰め込んでいる2階の趣味の部屋に入れた。
PCの操作はリビングのPCでリモート操作・・・

ウ~ム、できない・・・
ウ~ム、WindowsのHome版ではリモートデスクトップが使えないのをすっかり忘れてた。・・_| ̄|○ ガクッ

そうそう、昔、LinuxのデスクトップをWindowsから操作するのにVNCを使っていた、というのを思い出してリモートデスクトップに関するソフトを調べて見た。

現在でもVNCは存在しているようだが、TeamViewerというのがあるみたい。
他にはRDP Wrapper Libraryなるものも。

RDP Wrapper Library

WindowsのHomeエディションでモジュールはインストールされているが、抑止?されているRDPの機能をフリーにする?みたいなもの??使っちゃいけないもの??
ひとまずどんな感じのものなのか試してみる。

ファイアウォールの設定を手動で変更してRDPが通るようにしておくと書かれたサイトがあったので、それにならって設定をした。
(後日、別のPCにRDP Wrapper Libraryをインストールして試してみたところ、特に自分でファイアウォールの設定をいじる必要はなかった。)

インストールが終わってConfiguration用のRDPConf.exeを起動してみる。

RDP Wrapper Library

Listner stateがNot listerningとなっている。

それでも、もしかして動くのか?とRDPCheck.exeを起動。
ローカル(127.0.0.1)にアクセスして自分自身につなぐ機能らしい。
RDP Wrapper
Socket connection failedとでた。
まぁ、Listner動いてないといってるんで当然でしょうなぁ・・

ネットで調べたところ、Listner stateがNot listerningとなって使えないというQ/Aがいくつか見つかった。
ちなみに今回設定した環境はWindows10ビルド10586、RDP Wrapperのバージョンは1.6

こうして、使えもしない余分なポートを開いてセキュリティがガタガタになっていく・・・

忘れないうちに閉めとかなくちゃ。
で、リモートデスクトップの結論は・・やっぱ多少のお金は惜しまずWindowsPro版を購入すべきでした。
・・これじゃ結論になってない。

TeamViewer

TeamViewerを試してみた。
操作する側と操作される側のPC双方にインストール。

TeamViewer
何も悩むことはなくリモートデスクトップ実現。

・・とも、言えないみたい。

例えば「PrintScrn」などの特殊なキー。
TeamViewer
キーを押すと「キーボードショートカットを検出しました。~~」というダイアログが出力され、リモート側に転送するか確認のダイアログが表示された。
「このダイアログを今後表示しない」というチェックボックスもあるので、これをチェックしておけば次からはでなくなるだろう。
これは、それでもいいかも。

問題は漢字の入力。
操作される側のPCの入力フィールドに日本語を入力しようとして「半角/全角」キーを押すと、操作する側のPCがキーを刈り取って自身の画面上に入力データを変換するためのボックスを表示する。
入力を確定すると操作される側のPCの入力フィールドにコピーされる。

・・数文字程度ならいいが、長い文書などは非常に操作性が悪く・・使えん・・

ならば、「半角/全角」キーを押さず、操作される側のPCのタスクバーのIMEのON/OFFの操作をマウスで行えば操作される側のPCの入力フィールドで日本語の入力が可能になる。
・・色々と文字を入力して「変換」キーを押す。
・・「変換」キーを操作する側のPCが刈り取ってしまい、肝心の操作される側では変換できない・・使えん・・

操作される側のIMEのキーの割り振りを変えてしまうという手もあろうが、それじゃリモートで操作するときはこのキーで変換、リモートじゃない時はあのキーで変換など使いづらいPCになってしまうので却下。

TeamViewerの設定はまだ詳しく見ていないので対処方法があるのかないのかよくわからんが。

 

もう一度、RDP Wrapper Library

一旦RDP Wrapper Libraryをアンインストールしてもう一度どこが悪いのか調べて見ることにした。

インストールしてRDPConf.exeを起動してみる。

RDP Wrapper Library
・・ねっ、ちゃんとエラーは表示されないで・・動いてるじゃない??

何で??

画面上ではWrapper stateのverは1.5.0.0と表示されているが、インストールしたモジュールは1.6。
単なる修正漏れでしょう。

インストール用のbatファイルをクリックするとコマンドプロンプトが開いて処理が進むが、管理者権限で実行したとかフォルダのアクセス権が前回と違うところにインストールしたとかの違いもなく、前回と同じにやったのだが・・
まぁ、インストールできたのだからいいけど。

そして、別のPCからちゃんと操作できた。操作は・・まぁ、あたりまえだがPro版と同じ・・
== 2017/08 追記 ==
久しぶりに使ってみようと思ったら接続できなかった。
ローカル折り返しのテストでも失敗。
以前も同じようになったことがあったとき、インストール時に展開されたupdateのバッチファイルを実行したら接続できたのだが、今回は接続できなかった。
githubに公開されているtechnical.txt をみたら、Windowsのバージョンアップのビルドに応じたパッチが必要になっているようだ。
ちなみに、現在私が使っているWindowsのビルドの番号はこのtechnical.txtには記載がなかった。
technical.txtにはInsider Preview Build 16257への対応も記載されていたが、これらはかなり先のもの。
ただ、そこまでにも多くのビルドがあるようでパッチがでているようだが、そこに記載がない過去のビルドに対するパッチはでないんだろうなぁと思われる。
・・
同ページに「Tutorial videos」として「How to find offsets for new termsrv.dll versions」というものが公開されていた。
(YouTubeへのリンクが張られていた。)
termsrv.dllを調べ、rdpwrap.iniを修正して何やらやっていた。
いわゆるreverse engineering・・
シロウトが手を出す領域ではないですなぁ。
pro版でないwindowマシンをリモート操作するなら、TeamViewerかChromeリモートデスクトップ利用が妥当というところが結論でしょうか。

==————-==

音が・・

いろいろ操作をして試したところ、音が操作する側のPCのスピーカーから出ないのに気がついた。
TeamViewerではそんなことはなく、普通どおりに音がでた。

いろいろ確認したがどうも分からないので、もう一度順番に確認してみた。

まず、操作する側のPCのリモートデスクトップ接続。
RDP 音の再生
ここでリモートオーディオの再生を操作するPCで再生するか、操作される側で再生するかの設定ができる。
「このコンピュータで再生する」となっており、操作するPCで再生されるはず。

 

リモート接続して操作される側の画面のタスクバーの通知領域を見る。
RDP 音の再生
オーディオデバイスはリモートオーディオとなっているので問題なし。
音量も100%となっている。

 

操作する側のPCのタスクバーの通知領域からオーディオデバイスを開いてみる。
RDP 音の再生
アプリケーションにちゃんとリモートデスクトップが表示され、ボリュームも0ではなく、インジケータも動作して音声が来てるのがわかる。

サウンドの設定をみる。
RDP 音の再生
スピーカーが既定のデバイス、そのほかにHDMIで接続したテレビがある。
もちろん、自分のPCで再生する音は正常にスピーカーから再生されている。

他のアプリケーションを起動して音量ミキサーをみてみる。

RDP 音の再生
MediaPlayerを起動してそれぞれのボリューム音やらミュートなどの動作を確認してみる。
リモートデスクトップの音がでない以外は正常。

RDP 音の再生
もう一度スピーカーのプロパティを開き、排他モードなどをいろいろと変更して試してみるが、リモートデスクトップの音はでない。

ついでに、RDP Wrapper Libraryは使わずに本来リモートデスクトップが使えるWindows7ProからWindows10にアップグレードしたPCを操作してみる。
・・こちらも音はでない。

つまり、Microsoftのリモートデスクトップで接続したものの音がでない。
おなじリモート接続でもTeamViewerで接続したものは音がでる。

再生デバイスをスピーカーではなくテレビにしてみる。

RDP 音の再生
・・ちゃんとリモートデスクトップの音は再生された

つまり、特定のアプリケーション(リモートデスクトップ)の音だけが、特定のデバイスでのみ再生できないという状態。

解決策・・不明

テレビは動画を再生して見るためにつないでいるセカンドのものでPCのモニタとしているものではない。
まさかリモートデスクトップを使う都度テレビをつける訳にもいくまいし。

このPCだけの問題か?
リモートで接続しているPCも、リモートで接続されているPCもWindows10Homeエディション。
ということで、今操作しているPCにRDP Wrapper Libraryを入れて逆に接続して操作してみる。
今度操作する側となったPCもオーディオデバイスはスピーカーとHDMIで接続したスピーカー付きのモニタ。
・・結果はリモートデスクトップの音はどちらのデバイスでも再生された。

となれば、やはりPC固有の問題らしい。

あと考えられるのは、デバイスドライバくらい?

デバイスマネージャーでRealtek High Definition Audioのドライバを削除してハードウェアの変更のスキャンを実行。
RDP 音の再生
サウンドのプロパティを見ると・・
ム、ム、ム・・・Realtek High Definition AudioのほかにHigh Definition Audioデバイスというのが出てきた。

これを既定のデバイスにすると・・めでたくリモートデスクトップの音が再生されるようになった

「Realtek High Definition Audio」と「High Definition Audioデバイス」の違い・・
もう、音がでることに満足したのであたいは調べないと思う・・・
 

リモートデスクトップ使うなら・・

インストールして試しに使った後なのだがTeamViewerって何?ともう一度調べてみた。
TeamViewerはルーターの設定を特にいじらなくてもWAN越しにリモート操作ができるようだ・・なんで?

まぁ、詳しいことは良く分からんが・・
リモート操作される側はTeamViewerを起動すると(デフォルトの設定では)HTTPSで使っているTCP443のポートを使ってTeamViewerさんちのサーバーにアクセスしてIDを通知しておく。
リモート操作する側がTeamViewerを起動して接続したいIDを入力するとTeamViewerさんちのサーバーにアクセスして接続先のグローバルIPなどの情報を取得して接続していく・・んでしょうなぁ・・
合ってる?違ってる?
たぶん合ってる?

一般の家庭用のルーターでは通常はTCP443のポートは開いているのでルーターの設定をいじることなくWAN越しでもリモート接続ができる・・のかな?たぶん?

・・HTTPS?TCP443?、早い話、googleの画面がでればこのポートは開いてます。

企業のルーターでも何かの専用ネットワークでない限りTCP443のポートは開いているだろうから、会社に居ながら自宅のPCに堂々とアクセスできる。
しかも、ポートフォワードの設定もいらないから何人でもどの端末からでも操作できる。
パケット定額使い放題の高性能端末を持ってなくても、会社で背後からPCの画面を覗かれない席にいたら・・誘惑に負けて良からぬ使い方を考えるかも・・(^^;

あれ?そもそも、1つのウインドウにしか過ぎないし、極端な話自宅のPCの壁紙も会社のPCの壁紙も同じにしてフルスクリーンで表示して常時自分ちのPCに接続して堂々と仕事してても誰もわからないってことけ?

時々、動画のエンコードの設定をやって、あとはバックグラウンドでエンコ、終わったら次の設定、ほかに家で時間がなくてできなかったTV録画の設定をやったり・・年賀状なんか作っても保存は自宅PC。会社のPCがUSB機器接続禁止でも問題ない。
時にはwebカメラで室内にいるペットがどうしているか映してみたり・・・

それらのウインドウに混じってwordやらexcelやらの仕事のウインドウが開いてる。
出来上がったファイルはメールに添付して会社のメールアドレスに送信。
TeamViewerのウインドウを閉じて・・(別に閉じなくてもいいけど・・)、会社のメーラーに届いたファイルを開き、会社のPCに保存・・ってことを堂々とやってても誰も気がつかんてことけ?

あれ?あれ?社内のLANに繋がっているファイルサーバー類に直接アクセスできない以外特に不都合もないってことけ?
自宅PCは高性能でバックグラウンドジョブはいくらでも走らせられるってか?

恐ろしや、恐ろしや。

・・ちなみにこういう使い方はTeamViewerに言わせれば個人的な使用なのだろうか、業務で使用する商用的な・・

会社のネットワーク管理者はポートを閉めることもできず、帯域が圧迫されてもなかなか有効な制限がかけられない・・のかな?たぶん?よくわからんが・・
まぁ、teamviewer.comへの通信を抑止すればログインができなくなるらしいけど。

で、我が家の場合、WAN越しに操作したくてTeamViewerを導入したんじゃない。
1階のPCから2階のPCにアクセスしているだけなのだが、もしかしたら世界のどこかにあるTeamViewerさんちのサーバーを経由してアクセスしとるんけ?
LAN内に閉じた環境で操作しようとしてもWAN回線と繋がってなかったら操作できないということなんだろうか。
後で調べて見ようと思うが、たぶん繋がらなくなるんでしょう・・

一方Windowsのリモートデスクトップの機能はデフォルトでTCP3389のポートを使用しているので、WAN越しに接続しようとしたら、ルーターでそのポートを開いてポートフォワードでその通信を接続するPCに向ける設定を行う必要がある。
自分ちのルーターならなんとでもなるが。
ポートフォワードの設定はフツー1つのアドレスにしか向けられないので何台ものPCにリモート接続を行う設定をするためにはPC毎にポートを変更するなど面倒・・・って、普通の家庭ではそこまでして何台ものPCをWAN越しに操作する必要はない・・と思うが・・普通でない人も結構いるかも?

ちなみに我が家の場合、1階と2階の間にルーター、ゲートウェイなどあるわけないし、何台もWAN越しに操作する必要がないフツー?の家庭なので・・

RDP Wrapper LibraryについてはMicrosoftがHome版で隠してる部分?を使っちゃった~というのが気になってる小市民。
リモートデスクトップを使うたびに罪悪感が・・?

もともと、Windowsのリモートデスクトップが使えないのを忘れてHome版を買ったのが悪かったということですなぁ。
リモートデスクトップ使うならWindowsPro版が必要。

でも、手遅れ。

VNC試してみよっと。