Akira's Commentary

リモートデスクトップの概要

リモートデスクトップ機能は、もともとは Windows Terminal Server (WTS) でサポートされていたものです。

もっとたどると、CITRIXのWinFrameにまでいくつくのですが。

これは一時期話題になっていた Thin Client 構想のもと、少数のWTSサーバ機だけにアプリケーションを搭載し、多数のクライアントマシンから共有利用しようというものでした。しかし、実際にはあまり使われていなかったようです。

なんといってもやたらと高価でしたから。PCの価格低下を考えたら、PCを Fat Client として使う方が安くつきます。

しかし、Windows XP Professionalになって、これが標準機能として搭載されましたので、やっと実際にお目にかかることができるようになりました。

本来は、マルチユーザ化されたWindows(例えば NT4.0 TSEとかW2K Server)を使うためのものであったのですが、XP Pro 搭載のものにはマルチユーザ機能は含まれておらず、単にリモートでアクセスするためだけのものになっています。

詳しいことは、ここで書くよりも、リモートデスクトップを解説している以下のページでご覧になった方が早いでしょう。

Windows XP 機能別紹介 - リモートデスクトップ編
マイクロソフトによる解説。XPPro側での設定方法が解説されています。ちなみに英語版はこちら
リモートデスクトップだけではなく、ターミナルサービス全般についての情報は、こちらのターミナルサービスのページからたどれます。
Windows XPの正体 : リモート デスクトップで遠隔操作する
@ITWindows XPの正体シリースの一片。総合解説といったところでしょう。
ターミナルサービスとリモートデスクトップ
個人ページのようですが、ここが一番情報量が多いように思えます。歴史的な経緯を含めた解説になっています。実際の実行例に出ている画像がアレですが。

クライアントプログラム

Microsoftによって配布されているもの

Windows XP Pro のインストールCDには、Windows汎用のリモートデスクトップクライアントが付属しています(Windows XP 付属クライアントのインストール)。

またマイクロソフトのwebでも配布されているものがあるようです。

Terminal Server Access Client
Terminal Server Access Client (TSAC)はWTS用のクライアントのだそうです。Win32ベースのActiveX コントロール(COMオブジェクト)だそうですが、どうやって使うのかは知りません。
Pocket PC版
Pocket PC版もあります。
Mac版
最近になってMAC版も公開されました。

補遺: Microsoftのサイトはこれ以降全面的に変更されていて、この手のプログラムはすべてダウンロードセンターに集約されました。ダウンロードセンターでRemote Desktop、あるいはTerminal Serviceで検索すると現在ダウンロード可能なプログラムが一覧表示されます。

rdesktop - free software

Microsoftとは無関係にフリーのXベースのRDPクライアントrdesktopというものも開発されています。

リモートデスクトップの通信プロトコル(RDP)については、マイクロソフトをラインセンス契約(これ自体は無料)を締結すれば入手できるようですが、その際にNDA(非開示契約)が要求されるため、rdesktopでは公開された情報と通信の解析によってプロトコルを把握してコードを開発したそうです。しかし、通信は暗号化されているのですよ。すごい...

rdesktopの開発はsourceforgeで行なわれています。

以前の公式版(v1.1.0)では、キーの処理に問題があり、PC/英語キーボード以外の環境ではまともに使うことはできませんでした。しかし、新しいバージョン(v1.2.0)では、このあたりが大幅に改善されていて、日本語キーボードでも問題なく(もないのですが)使えるようになっています。

v1.2.0では、各国のキーボードに合わせたキーマップを使うようになっていて、これによって、各キーボードの差異を吸収するようになっています。ただ、提供されていた日本語キーボード用のマップを使うとキーが化けてしまいました。しかし何故かデフォルトのUSキーボードマップだと、漢字変換関係のキーも含めて、きちんと動作しました。不思議です。

実のところ、キーマップに定義されていないキーについてはスキャンコードを送り付けるようにしているようで、そのため、未定義の漢字変換関係のキーについてはスキャンコードが送られ、Windows側ではちゃんと認識される、ということのようです。

さて、公式サイトでは基本的にはソースベースでの配布しか行なわれていません。ソースは有難いが、とりあえずバイナリが欲しい、という人もいらっしゃるでしょう。そのような人は、Jacco's rdesktop pageをご覧になる良いかと思います。そこでは、各種Linux用RPMとOS/2バイナリ(XFree86/2用)が用意されています。また、他のシステム用のバイナリへのリンクも多数リストアップされていますので、こちらも合わせてご覧になってください。

rdp2vnc - RDP/VNC bridge

rdesktopにXvncサーバを組み込んでしまったものです。rdesktopは複数のプラットフォームで使えるとはいうもののXサーバ上でしか動きません。しかしXvncサーバを組み込んでしまうと、後は任意のVNC viewerからリモートデスクトップにアクセスできるようになります。詳細についてはこちらのページをご覧ください。

HOBLink JWTはJavaベースのWTSクライアントです。Javaベースですので、Java環境があればどこからでも、WTS/リモートデスクトップにアクセス可能になります。これは商用のソフトウェアですが評価版もありますので、試してみることができます。

しかし私の環境(Warp4.51)では、インストールの途中(Configuring)でまってしまって試すことができませんでした。

RDPプロトコル

T.B.D

補遺:RDPのプロトコル仕様はMSDNここで公開されています。EUでの対マイクロソフト訴訟の和解に伴ってNDAは不要になり、現在では自由に参照、実装できるようになっています。

一般解説

クライアントプログラム

更新履歴

2003-05-20
遅ればせながら、rdesktop v1.2.0に合わせて修正しました。
2002-10-17
rdp2vncの解説ページに、zombie増殖問題に対するfixを追加しました。
2002-09-27
rdp2vnCの解説ページに、キーマッピング問題に対する新しいfixを追加しました。
2002-09-25
rdp2vncの解説ページに、キーマッピングの問題とその解決方法を追加しました。
2002-09-23
rdp2vnc関連のリンク追加。
2002-09-18
rdp2vncが使えるようになりましたので解説ページを追加しました。
2002-09-02
部分的にしか出来ていませんが、一応公開します。