カラクリサイクル

『輝かしい青春』なんて失かった人の雑記

Windows on VirtualBoxでMS-RDPを使う方法

概要: VirtualBox上のWindows guestに、Windows guestのRDPサーバを使って接続する方法


VirtualBoxにはVRDP(VirtualBox Remote Desktop Protocol)というRDPサーバがついていて、 どんなゲストOSでもRDP接続ができるわけだけど、これはあくまで、 モニタに映るであろう画面をRDP使って表示しているだけの代物っぽく、 SeamlessRDPを使ったり、rdesktopのユーザー名とパスワードを指定した自動ログインとかはできない。

で、昨日から色々実験してたんだけど、Windowsゲストにrdesktopを使って自動ログインしたり、 SeamlessRDPを使ってApplicationを使ったりしたい場合、Windowsゲストに実装されてるRDPサーバを有効にして、 その有効になったサーバに、rdesktopなりで接続する必要がある。

で、WindowsゲストのRDPサーバを有効にして、それにつなげるまでの流れを、 大体まとめてみる。

それで、その大体の手順。

1. Windows側の準備

まず、Windows側で、RDPサーバを有効にし、自動ログインを有効にする場合には、それも設定をする。

RDPサーバの有効の仕方は、Windowsのバージョンによって違うので、 各自自分のバージョンにあった方法を選んでください。

バージョンにもよりますが、Windows XPだとマイコンピューターのプロパティのリモートタブとか、 Windows 7 だとコントロールパネル->システムとセキュリティ->システム->リモートの設定あたりの設定です。

あと当たり前ですが、リモートデスクトップをサポートしていないエディションでは、 同然の如くリモートデスクトップは利用できません。

であと、RDPを使って、自動ログインしたい場合には、 それ用の設定をしておいてください。

これに関しては、いまいちよくわかってないので、説明は省略します。

2. VMの設定

上記の設定でWindows側のRDPサーバは有効になりましたが、実際にはVirtualBoxの設定をしないと、 Windows側のRDPサーバには接続できません。まあこれはLinux Guestの場合に、 sshに接続するためにVirtualBoxの設定がいるのとおんなじ事です。

で、RDPで接続できるようにするには、端末でvboxmanageを使って、

$ vboxmanage setextradata "VMName" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestrdp/Protocol" TCP
$ vboxmanage setextradata "VMName" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestrdp/GuestPort" 3389
$ vboxmanage setextradata "VMName" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestrdp/HostPort" 3389

という感じで設定するか、VMの設定XMLファイルを開いて、<ExtraData>セクション以下に、

<ExtraDataItem name="VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestrdp/GuestPort" value="3389"/>
<ExtraDataItem name="VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestrdp/HostPort" value="3389"/>
<ExtraDataItem name="VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestrdp/Protocol" value="TCP"/>

という感じの項目を書き足します。

ちなみに、上記の"VMName"は実際のVMの名前、Devices/pcnet/0/LUN#0の部分は、 各自実際にVMで使ってるデバイスの設定を使用してください。

これでVirtualBox側の設定は終わりです。

3. rdesktop等で接続する

これで準備が整ったので、Linux系OSの場合はrdesktopを利用して、

$ rdesktop 127.0.0.1

と実行すると、Windows guestのRDPサーバを使って、Windows guestに接続できます。 また-uオプションや-pオプションを使って、自動ログインすることもできます。 さらにSeamlessRDP等を利用したい場合には、それ用の設定をすれば、多分つなげられると思います。

4. 以上で終了です

というわけで、以上がWindows on VirtualBoxに、MS-RDPを使ってguestに接続する方法でした。

昨日からSeamlessRDPを試してみたくて、色々実験してたわけですが、 昨日の段階ではうまく行かず、一晩経って今日になってから、ようやくうまく行った次第。

まあVMwareだともうちょっと素直にできるんっぽいんですが、 VirtualBox上のGuest OSのサーバに接続するには、ちょろっと設定が必要な分、多少面倒な感じではあります。 が、ポイントさえ押えてしまえば、なんとかなる、という感じです。

というわけで以上備忘録終わり。

ちなみにこの記事、最初は無貌断片用に書いてましたが、 意外と長くなったし、メモじゃなくて備忘録になっちゃったので、こっちに記事を投稿したという。

まあ年ももうちょっとで終わりますが、残りの今年も元気に過ごしたいです。