Enterprise Watch
バックナンバー

Windows Server 2008で大幅に進化したターミナルサービスを試す【中編】

ターミナルサービスのイメージを変える「RemoteApp」

 Windows Server 2008からターミナルサービスに新しく追加された機能が「ターミナルサービスRemoteApp(以下、RemoteApp)」だ。RemoteAppは、ターミナルサービスの使い勝手を一新する画期的な機能といえるかもしれない。

 RemoteAppは、ターミナルサーバー上にインストールされたアプリケーション(画面や入力デバイス)だけをローカルPCで使えるようにする。リモートデスクトップ機能では、デスクトップ画面すべてを仮想化していたが、RemoteAppではアプリケーションごとに仮想化しているのが特長だ。このため、アプリケーションが動作しているウィンドウだけが、ローカルPCに表示されることになる。

 これにより、デスクトップ自体を仮想化するよりも低い負荷で利用できる。さらに、ローカルPCのパフォーマンスを利用したりするアプリケーションはローカルPCにインストールし、データベースなどを使用する業務システムはRemoteAppでターミナルサーバーにインストールされたアプリケーションを利用するといった、高機能なPCの機能をうまく活かしたシステムも構築できる。


RemoteAppは、リモートコンピュータのデスクトップ全体ではなく、アプリケーションのウィンドウだけを転送してくる RemoteAppは、ユーザーにとってはデスクトップ画面を共有しないため、ローカルPCにインストールされたアプリケーションと変わらない使い勝手で使用できる RemoteAppのアプリケーションとローカルPCの間で、コピー&ペーストが可能。さらに、ローカルPCのシステムトレイにも統合されるので、OutlookをRemoteAppで使用しても、新着メール通知なども表示される

 実際にRemoteAppを使ってみると、自分のPC上からアイコンをクリックするだけで、ターミナルサーバーにインストールされたアプリケーションを起動して利用できる。画面を見ていても、ローカルにインストールされたアプリケーションとなんら変わらない使い勝手だ。


RemoteAppを使ってみる

 Windows Server 2008の役割でターミナルサーバーがインストールされていれば、RemoteAppはすぐにでも利用できる。

 RemoteAppでアプリケーションを利用するためには、まずサーバー側にアプリケーションをインストールしなければならない。

 ターミナルサーバー上にアプリケーションをインストールするには、通常のアプリケーションインストールではなく、コントロールパネルにある[ターミナルサーバーへのアプリケーションのインストール]を使ってインストールする(コマンドラインから「Change user /install」を実行後、アプリケーションをインストール。インストール終了後、「Change user /execute」を実行)。これは、ターミナルサーバーでアプリケーションが実行できるように、ユーザー権限を変更してインストールするためだ。


アプリケーションをRemoteAppで利用できるようにインストールするには、コントロールパネルの[ターミナルサーバーへのアプリケーションのインストール]を起動
インストールウィザードが表示される
CD-ROMやフロッピーディスクなどにあるセットアッププログラムを指定する

通常はSetupというプログラムを指定するが、アプリケーションによっては単体のEXEファイルになる場合もある。ここでは、テストで秀丸エディタ「hm704_signed.exe」を指定する
秀丸エディタのインストールが開始される
インストールが終了すると自動的に[ターミナルサーバーへのアプリケーションのインストール]の完了画面が表示される

 もうひとつ必要なのは、アプリケーションのアクティベーションなどをターミナルサーバーの管理者ユーザーとして実行しておくことだ。アプリケーションによっては、RemoteApp(リモートデスクトップ接続でも)で実行するとエラーが起こる場合もある(Officeなどは、事前にアクティベーションが必要)。

 また、アプリケーションによっては、初回起動時にインターネットに接続して、アップデートプログラムをダウンロードしてくる場合もある。このため、アプリケーションをリモートで起動して、リモートコンピュータ経由でインターネットに接続するということになる。Windows Server 2008の初期設定では、IEやファイアウォールがセキュアに設定されているため、アクセスできなかったりする。できれば、事前にサーバー側でアプリケーションを起動して、アップデートや初期設定を行っておく方がいいだろう。

 インストールが済んだアプリケーションをRemoteAppで使用するには、ターミナルサーバー側にアプリケーションを登録する必要がある。

 RemoteAppにアプリケーションを登録するには、サーバーマネージャの[役割]→[ターミナルサービス]→[TS RemoteAppマネージャ]を表示する。右側のパネル(操作)にある[RemoteAppプログラムの追加]をクリックして、ウィザードに従いアプリケーションを登録する。すると、TS RemoteAppマネージャの[RemoteAppプログラム]という項目に登録したアプリケーションが表示される。

 もし、RemoteApp起動時にアプリケーションに引数などを渡すなら、プロパティを表示して、必要な引数を入力する。


サーバーマネージャの[役割]→[ターミナルサービス」→[TS RemoteAppマネージャ]を表示。右側パネルにある[RemoteAppプログラムの追加]を選択する
ターミナルサーバーにRemoteApp化するアプリケーションを登録する
RemoteAppウィザードでは、インストールされているアプリケーションの一覧が表示される

RemoteApp化するプログラムの詳細が表示され、登録が完了する RemoteAppマネージャに「秀丸」が登録されたのがわかる。右側のパネルから、秀丸をローカルPCで起動するためのRDPファイルもしくは、MSIパッケージを作成する

ローカルPCからRemoteAppアプリケーションを使う

 ローカルPCでRemoteAppのアプリケーションを起動するには、2種類の方法が用意されている(TS Webアクセスを利用する方法もある。TS Webアクセスに関しては、次回紹介する)。

・RDPファイルを作成して、ローカルPCに配布
・Windowsインストーラパッケージ(MSIファイル)を作成して、ローカルPCにインストールする

 作成したRDPファイルを共有フォルダにおいて、ネットワーク上からアクセスするか、UBSメモリやフロッピーディスクなどにRDPファイルを保存して、ローカルPCにコピーする。

 RDPファイルは、ダブルクリックするだけでRemoteAppが起動する。MSIファイルの場合は、インストーラを起動して、ローカルPCのプログラム一覧にグループを作成して、必要なファイルをインストールする。Active Directory環境なら、グループポリシーを利用して配布することもできる。


RemoteAppマネージャに登録されたアプリケーションのプロパティから、RDPファイルやMSIパッケージを作成できる RDPファイルやMSIパッケージを作成するフォルダを指定する。PCからアクセスできる共有フォルダを指定すると便利。もし、メディア(USBメモリやフロッピーディスクなど)で配布するなら、作成したファイルをコピーすればOK MSIパッケージの場合、ショートカットの作成、スタートメニューに登録するときのフォルダ名なども指定する

「Hidemaru」のMSIパッケージをクリックするとインストールが始まる
インストールが終了すると、スタートメニューの[すべてのプログラム]→[リモートプログラム]→[秀丸]にプログラムが追加されている
RemoteAppの秀丸を起動すると自動的にRemoteAppが動作し、認証関連のウィンドウが表示される。ここでは、[接続]をクリック

今回は資格情報を記憶させていないので、接続するためのパスワードを入力する
このように、ローカルPCにインストールしたアプリケーションと同じように起動して利用できる
このように、RemoteAppのプログラムもタスクトレイに登録されている

 実際にRemoteAppでアプリケーションを起動してみると、ローカルPCでアプリケーションを動かしているのとほとんど変わらない印象を持った。RemoteAppのウィンドウを移動したときに、少しもたもたする感じがしたが、RemoteAppのウィンドウ内でアプリケーションを使っている時には、ほとんど違和感は感じない。

 初期設定では、RemoteAppのアプリケーションはWindows 2000など古いタイプのWindowsのUIが使われている。ローカルPCでWindows Vistaを使っているのであれば、ターミナルサーバー側のUIをWindows Vista相当に変更することで、ローカルPCにインストールされたアプリケーションと同じ感覚で利用できる。


Office 2007 Enterpriseをターミナルサーバーにインストールしてみた。このときEnterprise版のプロダクトキーを入力していると、この画面のように起動できなかった。ターミナルサーバーで利用するには、ボリュームライセンスのプロダクトキーを入力しなければ起動しない 試しにアドビのコンシューマー向けソフトの「Photoshop Elements 6」をターミナルサーバーにインストールして、RemoteAppで動かしてみた なんとトラブルなく動作したようだ。ただ、同時に複数のユーザーが同じ機能(整理、編集、作成、配信)を動かすことはできなかった。クリックしても、後に起動しようとしたユーザーのRemoteAppには画面が表示されなかった。ライセンスに関して問題があるため、ベンダーが動作保証はしていないがターミナルサーバーで動作するアプリケーションは数多くありそうだ

 ネットワークを経由してアプリケーションを起動するというRemoteAppの機能を考えると、ネットワークにトラブルが起こり、接続が途切れた時はどうなるのかというのが気になる。そこで、強制的にネットワークデバイスを無効にしてみた。

 RemoteAppは、ネットワークが切れると、規定回数まで再接続を続ける。もし、その間にネットワークが復旧すれば、再接続を行い、ネットワークが切れる直前の画面が再度表示される。このため、ネットワークが切れたとしても、データが失われるということはなさそうだ。


RemoteAppのプログラムを起動しているときに、強制的にネットワークを切ってみる
RemoteAppは、ネットワークの再接続を規定回数繰り返して、ネットワークの回復を待つ。もし、ネットワークが回復したら、自動的に再接続して、ネットワークが切れた直前からRemoteAppプログラムは始まる。つまり、ネットワークが切れても、切断前のデータがきちんと保存されている。ただし、ここで再接続を待たずに[キャンセル]ボタンを押してしまうと、セッションは保存されない。次回RemoteAppを起動したときには、新たなセッションとして起動されるため、前回の切断直前のデータは失われてしまう

サーバーマネージャの[ターミナルサービスマネージャ]では、現在接続されているセッションの状況を管理している。ログインしているセッション、ユーザー、ログオン時間などの情報が表示されている
各セッションのプロパティを表示すると、切断、メッセージ送信、リセット、状態、ログオフなどの項目がある。切断、リセット、ログオフなどは、強制的にサーバー側からセッションをコントロールする。メッセージ送信は、サーバー側からクライアントPCにメッセージを送る
プロパティの状態を表示してみる。セッションの状態を表示することができる

RemoteAppは使える機能

 テストしてみて感じたのは、RemoteAppは使える機能だ。リモートで実行しているアプリケーションがシームレスにローカルPCで動作しているように見えるのは、ユーザーにとっては使いやすそうだ。ファイルの読み込み/保存(HDDなどのドライブ)や印刷(プリンタ)機能などは、ローカルPCのハードウェアリソースをそのまま利用することができる。ここまで来れば、リモートコンピュータ側でアプリケーションが動作するRemoteAppであっても、ユーザーは違和感なく使える(普通のユーザーは、ほとんどわからないかもしれない)。

 また、TSゲートウェイやVPNを使って、インターネットからノートPCで自社のシステムにセキュアにアクセスすれば、社内と変わらない環境が出来上がる。リモートデスクトップ接続を利用するよりも、特定のアプリケーションだけをRemoteAppで利用するため、ノートPCの性能を活かすことができるだろう。

 システム管理者にとっては、アプリケーションがターミナルサーバー側にだけインストールされているため、アプリケーションのバージョンアップやパッチをあてることが非常に楽になる。ユーザー自身に、アプリケーションのバージョンアップをしてもらうことにすると、複雑な手順での再インストールは難しく、下手をするとクライアントのシステム自体にトラブルを及ぼす可能性もあるからだ。また、デスクトップPCのアプリケーションはアップデートしたが、ノートPCは忘れたりと、一括してアプリケーションがアップデートされない可能性もある。

 このようなときには、RemoteAppは最適なソリューションだろう。ターミナルサーバー側のアプリケーションだけをアップデートすれば、このアプリケーションをRemoteAppで利用するユーザーは、すぐに最新のアプリケーションが利用できることになる。これだけでも、導入する意義はあるだろう。


 最も重要な問題は、アプリケーションのライセンスだ。アプリケーション自体は、ターミナルサーバー上で動作しても、ライセンス上ターミナルサーバーでの動作を認めているアプリケーションは非常に少ない。また、ターミナルサーバー向けのライセンスはオプションとなっているアプリケーションもある。

 マイクロソフトの場合、Officeに関してはターミナルサーバーでの使用を念頭にライセンスが考えられているが、コンシューマー向けのエンカルタなどは、ターミナルサーバーでの利用は考えられていない。プログラムとしては、ターミナルサーバーで動作する可能性が高いが、ライセンス的には問題がある可能性が高い。

 マイクロソフトのプロダクトでも、このようにターミナルサーバーでのライセンスが分かれていることを考えれば、他のソフトベンダーなどはターミナルサーバーでの動作などは念頭にないというのが実際のところだろう。ただ、企業向けのアプリケーションを販売しているソフトベンダーなどでは、企業向けのライセンスプログラムを有している会社もある(アドビやジャストシステムなど)。企業向けのライセンスプログラムなどで、ターミナルサーバー上での利用ができる場合もあるので、このあたりはきちんとソフトベンダーに連絡を取って相談すべきだろう。

 アプリケーションの動作保証やライセンス問題などがクリアになるようなら、RemoteAppは非常に使いやすいソリューションといえる。


 次回は、WebブラウザからRemoteAppを使えるようにできるTS Webアクセスを紹介する。



URL
  Windows Server 2008
  http://www.microsoft.com/japan/windowsserver2008/

関連記事
  ・ Windows Server 2008で大幅に進化したターミナルサービスを試す【前編】(2007/11/28)
  ・ Windows Server 2008で大幅に進化したターミナルサービスを試す【後編】(2007/11/30)


( 山本 雅史 )
2007/11/29 00:00

Enterprise Watch ホームページ
Copyright (c) 2007 Impress Watch Corporation, an Impress Group company. All rights reserved.