ほーりーさんの日記

VMware Player上の仮想マシンからホストにリモートデスクトップ接続する

リモート天体撮影するということ

リモートデスクトップの話ですが、起源は天体写真のための環境のお話です。

うちの天体撮影はこんな環境でやってます。

右上の望遠鏡と、そこにつながる小型パソコン・ルータをベランダに設置します。望遠鏡というか赤道儀の制御や、カメラのコントロール、撮影データの取り込みするため、シリアルケーブルやUSBを繋ぐ小型パソコンを望遠鏡の近くに置く必要があります。あ、別に小型でなくてもいいですけどね?

で、その小型パソコン上でステラショット2を動かすわけですから当然、小型パソコンのGUIを操作する必要があります。どうするか?コンソール端末からリモートデスクトップ接続します。

RDP接続なわけですから、とーぜんLAN経由ですね。なんでこんなことするのか?望遠鏡はベランダに置かないといけません。ベランダは夏暑くて、冬寒いです。でもコンソール端末はネットワークさえつながれば、どこへ置いても問題ありません。コタツの上でも、エアコンが効いた室内でも。

天体観測の最大の難点は屋外で暑い!寒い!!虫がでる!!!と屋外だからこその居住性。それを屋内からできるようになるのです。

リモートデスクトップとステラショット2の問題

さて、ここで問題がひとつ。ステラショット2のバグというか制限事項です。

これが普通にステラショット2を起動した状態。何も問題はありません。正常な状態です。でこの状態にしたまま、リモートデスクトップを切断(ログオフではなく、RDPの「切断」)をして、再度RDPを接続します。

すると、

この通り、星図が表示されなくなります。赤道儀制御とか撮影は問題なく動くんですが、星図だけが消えてしまうという。

アストロアーツ社に確認したところ、不具合として認識はしてるんだけど、DirectXの不具合だそうで、そう簡単には直らない制限事項だそうです。

まぁ、MSが原因なら、当分は直らんわな・・・・

んじゃどーするか?RDPを切らなければいい!そりゃそーだわな

だけど、なんとかしたい。だってコンソール機を移動したり、ステラショットに自動撮影させて、その間はコンソール接続を切ったりしたいわけですよ。

じゃあ、どうする?

こうします。リモートデスクトップ接続を2段階にして、ステラショット2からすると、セッションが切れてないように見せかけるわけです。

仮想デスクトップはどうやるか?VMware Workstation Playerです。せっかくパソコンがあるんですから、そこにVMware Player入れて、Windowsを起動してやれば、踏み台用の仮想デスクトップができる。完璧!と考えたわけです。

が・・・・・・

VMware Player上の仮想デスクトップからホストにRDP接続する

ここで問題がでます。

こんな風に、ステラショット2と、VMware Player上でWindowsを起動します。マシンリソースの都合でWin7を使ってます。サポート切れ?そうですね?はい。

そして、仮想デスクトップにRDPで接続して、さらに仮想デスクトップからホストにRDP接続します。

すると、

こんなことになっちゃいます。分かりにくいでしょうけど、Koronaというのがホストマシン、Hikari が仮想デスクトップです。ちなみに、天文関連のマシンのホスト名はほかにOrihime、Sayaが居ます。天文関連マシンですからね、「見上げてごらん、夜空の星を。」から名前をもらってます。

どうなるかというと、仮想デスクトップからホストへのRDPが安定しません。仮想デスクトップも動作が異常に遅くなり、まともに操作できなくなります。

なぜなのか?どうやらRDPに原因があるようです。RDPのセッションが繋がった瞬間から動きがおかしくなります。また、VNCを使って同じことをしても問題が出ません。ホストマシン上で別ユーザでVMware Playerを起動した場合も問題は出ません。

さーてどうしたもんか。そうだ、Windows のサービスとして仮想マシンを起動したら?

というわけで、サービスとして登録して起動します。ポイントはsexeを使ってサービス登録すること、登録したサービスを Local Administrator 権限で起動すること。なんでかよく分かりませんが、Local System アカウントではうまく動きませんでした。

あと、Shutdown時の注意。仮想デスクトップにログインしてShutdownをしてから、ホストをSutdownすること。ホストShutdown時に仮想マシンもShutdownしてくれるといいんですが、どうやらPower Downをしちゃうようで、仮想マシンが壊れることがあります。