噂の SeamlessRDP を動かしてみた

環境は

です。

で,元記事(SeamlessRDPでXPとLinuxをシームレスに統合 (1/3) - ITmedia エンタープライズ)のとおりにやってみたんですが……

2008年02月08日 kunumi 仮想化, linux, windows, vmware fedoraのパッケージ持ってきてやっているんだが、普通にリモートの画面が開くだけで解説の様にはできないorz。

http://b.hatena.ne.jp/kunumi/20080208#bookmark-7408374

あるある〜。最初同じようにはまりました。


で,どうも調べたところ,SeamlessRDP を使うには,ゲスト Windows XP 側で下記要件が必要らしいです(⇒ Ubuntu Forums)。

  • 「ようこそ画面を使用する」が enable になっている
  • 「ユーザーの簡易切り替えを使用する」が enable になっている
  • Windows ファイアウォールで「例外」として「リモート デスクトップ」が許可されている

上2つは,「コントロールパネル」の「ユーザー アカウント」の「ユーザーのログオンやログオフの方法を変更する」から変更できます。

つ,つまり,コンピュータが「ドメイン」に属していると無理です。

また,実用的に使用するためには,ウィンドウズ起動時に「開始するにはユーザ名をクリックしてください。」というメッセージとともに,ユーザ一覧が表示されている必要があります。どういうことかというと,たとえばインストール直後にユーザーが1人しか登録されておらず,パスワードを特に設定していないと,起動時に「ようこそ」って勝手にログインしてしまいますよね。なので,

  • ユーザとして2人以上登録しておく
  • ユーザにパスワードを設定する

のいずれかをしておく必要があります。

でも,どうせ空パスワードのユーザってデフォルトではリモートデスクトップでアクセスするのは許可されてないんですよ*1。ですから,一番簡単なのは,アクセスするユーザにパスワードを設定しておくことです。


あと,インストールについてですが,SeamlessRDP を展開して C:\Windows\system32 にすべて放り込んでおきました。パスが通っているところに置くと楽なので。また,各ファイルを「ブロックの解除」しておくことをお忘れなく(see http://support.microsoft.com/kb/884237/ja)。

例題 1: notepad を起動する

以上の条件をうまく満たされている場合。

% rdesktop -A -s 'seamlessrdpshell notepad' 192.168.xxx.xxx -u user -p password

とすると,最初真っ黒で大きなウィンドウが立ち上がり((もし -u, -p オプションを指定していないと,このフェーズでユーザ名とパスワードを問うダイアログが開きます)),自動ログインしてそれが閉じたあとに,メモ帳のアプリケーションが立ち上がります。

特徴は,

  • あたかもルートレスウィンドウのようですが,装飾は Windows 側で行っています
  • ちょっと残念なことに,Luna などの縁取りが丸いウィンドウボーダー部分は透過しません
  • ウィンドウのリサイズはうまく作動します
  • ウィンドウのドラッグもまあまあうまく動きますが,ちょっとぎこちないです
  • ウィンドウの最大化をするとおかしくなるのでしないほうが身のためです
  • ウィンドウの最小化は問題がないようです

101 keyboard を使っているのでデフォルトではキー操作だけでうまく IME を on にできませんでした。おそらく秀 Caps などで他のキーにバインドするとうまくいくと思います。106 key だとどうでしょう。うまくいくんじゃないかなぁ。

この状態でも Windows PE のようにメモ帳を shell として使うことができます(参考⇒管理者必携! 最強のデータ・サルベージ・ツールを自作する (5/5):無償入手可能なミニWindows OS、Windows PE 2.0実践活用術 - @IT)。つまり,「ファイル」→「開く」でファイルオープンダイアログを開き,「ファイルの種類」を「すべてのファイル」にして,実行ファイルを選択。右クリックで「開く」を選択すると,新しいアプリケーションがやはりルートレスウィンドウで開くのです。


ここで,

% rdesktop -A -s 'seamlessrdpshell C:\Program Files\Internet Explorer\IEXPLORE.EXE' \
            192.168.xxx.xxx -u user -p password

のように,別のコマンドを実行すると,最初に実行していたコマンドが終了しますが,Windows 側のアプリはそのままになります。今回の例だと,IE は開かず,代わりにもともと開いていたメモ帳がアクティブになるだけです。

んで,元記事にも書いてありますが,ここでメモ帳を終了しても Windows にはセッションログインしたままになっています。これを解消するには,VMware Server Console でつなぎ,ユーザを選択してパスワードを入力するとログインされます。ところがシェルとして Explorer が立ち上がっていないので,背景の壁紙が表示されているのみです。で,ここで「Ctrl+Alt+Ins」を押すと((VMware Server Console は,Ctrl+Alt+Delete の代わりに Ctrl+Alt+Ins を使うのです。Delete でも一応伝わりますが,危険なので Ins を使うようにしましょう)),タスクマネージャが立ち上がるので,メニューの「シャットダウン」から「ユーザのログオフ」を選ぶと,無事セッションを終了できます。BK, BK。

このへんは,SeamlessRDP の Windows 側サーバコンポーネントがソース公開されているので,がんばればいろいろ工夫できそうかなぁ。

例題 2: explorer を起動する

Open Tech Press の記事のとおりでうまくいきましたので,詳しくは説明しません。

% rdesktop -A -s 'seamlessrdpshell explorer' 192.168.xxx.xxx -u user -p password

でうまくいきました。またこの方法だと,Explorer のメニューから「ユーザのログオフ」を選ぶと,セッションも終了するのが good です。

いまどきの GNOME だとメニューが上下両方にあるので,Windows のタスクバーと重なってしまうのがネックですね。

あと Explorer 以外の shell(GeoShell とか BB4Win とか)だと使用感はどうなんでしょうね。面白そう。

で,どうなの?

普段,

  • Fedora 8 をデスクトップ環境で使用
  • Windows を使用する必要があるときは,VMware Player で Windows guest を立ち上げる

という作業環境です。

それに比べてどうかというと,やはりルートレスウィンドウで動かせるのは便利そうだし,面白いかな,と思います。

あと,VMware Server Console は VNC プロトコルで画面転送してるんですよね(VMware Workstation / Player については謎)。で VNC に比べると RDP プロトコルはやはり軽いなぁーという印象です。それに,マウスカーソルやフォーカスの切り替えが(VMware Tools をインストールした環境と比べても)シームレスでいいなぁ,と思います。

問題は,ゲスト自身の実行パフォーマンスがどうか,ですね。VMware Server 上で動かすのと,VMware Workstation ベースの VMware Player で動かすのは一応パフォーマンスが違うはずですから。これはわかりません。

rdesktop の利点
  • SeamlessRDP だとルートレスウィンドウとしてアプリケーションを立ち上げられる
  • マウスカーソルやフォーカスの切り替えがシームレス
  • 画像転送プロトコルとして RDP はやはり軽い気がする
rdesktop の欠点
  • SeamlessRDP だとウィンドウのハンドリングがやや不安定な印象がある(ドラッグ時や最大化時など)
  • SeamlessRDP だとゲストマシンをドメインに属させることができないのが痛い

*1:「コントロールパネル」→「管理ツール」→「ローカル セキュリティ設定」→「ローカル ポリシー」→「セキュリティ オプション」→「アカウント: ローカル アカウントの空のパスワードの使用をコンソール ログオンのみに制限する」を「無効」にすれば,パスワードのないアカウントでもリモートデスクトップを使用することができます。