何でも屋: VM でホストする RemoteApp - 仮想デスクトップの新しいベスト プラクティスとなるか

仮想マシンでホストする RemoteApp を使用することは、アプリケーションのリモート アクセス史上、重要な進歩です。

Greg Shields

(このコラムは、Windows Server 8 製品候補版の情報に基づいています。ここに記載されているすべての情報は、変更される場合があります)

当初、アプリケーションへのリモート アクセスには Terminal Server デスクトップが使用されており、これは良いスタートでした。ところが、Terminal Server デスクトップのエクスペリエンスには、"包まれている" という表現が当てはまりました。リモート アプリケーションは Terminal Server のデスクトップに存在していましたが、アプリケーションとデータは、ユーザーのローカル デスクトップか、ユーザーがリモートで接続している Terminal Server デスクトップのいずれかに存在していたので、混乱を招きました。

そのような状況の中、RemoteApp が誕生し、状況が一変しました。そのときから、リモート アプリケーションをアプリケーションとして提供できるようになりました。デスクトップを 2 つ使用する必要はなくなり、混乱も少なくなりました。

その後、仮想デスクトップが普及しました。マイクロソフトは、サーバーの仮想化が成功したことを受けて、デスクトップの仮想化にも取り組み始めました。これは良いスタートでしたが、仮想デスクトップのエクスペリエンスにも、"包まれている" という表現が当てはまりました。リモート アプリケーションは仮想デスクトップに存在していましたが、アプリケーションとデータは、ユーザーのローカル デスクトップか、ユーザーがリモートで接続している仮想デスクトップのいずれかに存在していたので、再び混乱を招きました。

このような状況の中、仮想マシン (VM) でホストする RemoteApp が誕生し、状況が再度一変しました。これまでと違うのは、アプリケーションが、リモート デスクトップ サービス (RDS) ホストではなく、仮想デスクトップにインストールされるようになったことです。再び、リモート アプリケーションをアプリケーションとして提供できるようになりました。デスクトップを 2 つ使用する必要はなくなり、混乱も少なくなりました。

歴史は繰り返すと言いますが、まさにそのとおりです。実のところ、Windows Server 2012 で導入された、VM でホストする RemoteApp プログラムは、2 つのデスクトップを使用することの限界が再び明らかになったという点で、IT の歴史の重要な瞬間に到達したと言えるでしょう。

仮想デスクトップの新しい進化と言えるのか

VM でホストする RemoteApp プログラムの真価を認識するには、まず、サーバーでホストする RemoteApp プログラムで解決されない問題について理解する必要があります。ご存じのように、RDS では、ほとんどのリモート アプリケーションをホストする優れたプラットフォームが提供されます。権限とネットワーク接続があれば、だれでも RDS ホスト (RDSH) にインストールされているアプリケーションにアクセスできます。

ただし、アプリケーションと RDSH が適合しない場合もあります。原因としては、RDSH でアプリケーションが適切に機能しなかったり、ライセンスに関する問題が発生したりすることが考えられます。また、アプリケーションに問題があって、Windows Server にインストールできない場合もあります。問題の解決方法を見つけるのは、手間がかかるやっかいな作業です。IT の世界で仮想デスクトップが推進されたのには、こうした理由もあります。問題のあるアプリケーションが Windows デスクトップで機能するなら、Windows デスクトップを使用すればよいという発想です。

Windows Server 2012 では、仮想デスクトップか RDSH サーバーのいずれで提供される RemoteApp プログラムによって、その代替案を提供しています。このプロセスは、サーバー マネージャーの役割と機能の追加ウィザードから開始します。このウィザードでは、VM ベースのデスクトップ展開をホストする RDS インストールを作成します。ウィザード (図 1 参照) では、VM でホストする RemoteApp プログラムを開始するように RDS 役割サービスを構成します。

VM ベースのデスクトップ展開は、VM がホストする RemoteApp プログラムの基盤

図 1 VM ベースのデスクトップ展開は、VM がホストする RemoteApp プログラムの基盤

[Standard deployment] (標準の展開) を選択したら、[仮想マシン ベースのデスクトップ展開] を選択します。リモート デスクトップ接続ブローカー、リモート デスクトップ Web アクセス、リモート デスクトップ仮想化ホストの役割サービスがインストールされます。これらの役割サービスは、同じサーバーにインストールすることも個別のサーバーにインストールすることもできます。インストールを開始するには、ウィザードの最後のページで [展開] をクリックします (図 2 参照)。ウィザードで Hyper-V 仮想スイッチを作成するには、リモート デスクトップ仮想化ホスト サーバーに、少なくとも 2 枚の NIC が搭載されている必要があります。

1 台のサーバーにリモート デスクトップ サービスの役割サービスを展開する

図 2 1 台のサーバーにリモート デスクトップ サービスの役割サービスを展開する

次に、マスター デスクトップ イメージとして使用するテンプレート VM を作成する必要があります。このイメージの基盤として Windows 7 SP1 または Windows 8 のいずれかを使用できますが、VM でホストする RemoteApp プログラムがサポートされているのは、Windows 7 または Windows 8 の Enterprise Edition と Ultimate Edition のみです。

Hyper-V マネージャーでテンプレート VM を作成したら、Windows 7 または Windows 8 をインストールして構成します。展開予定のアプリケーションをインストールすることもできます。ここでは、下位互換性を示すために、Microsoft Office 2010 がインストールされている Windows 7 SP1 の VM を作成する方法を紹介します。

テンプレート VM を作成する最後の手順としては、Windows 7 SP1 と Windows 8 の両方の VM で Sysprep を実行する必要があります。Windows 7 SP1 では適切なシステム クリーンアップ アクションとシャットダウン オプション設定を実行します (図 3 参照)。また、Windows 7 SP1 では、VM で Sysprep を実行する前に、Hyper-V 統合コンポーネントの更新が求められます。このためには、テンプレート VM の [仮想マシン接続] ウィンドウで、[操作] メニューの [統合サービス セットアップ ディスクの挿入] をクリックします。Sysprep の実行が完了したら、VM の設定画面で、接続されているデバイス (特に DVD) をすべて切断して、シャットダウンします。

Windows 7 SP1 のテンプレート VM で Sysprep を実行する

図 3 Windows 7 SP1 のテンプレート VM で Sysprep を実行する

VM でホストする RemoteApp プログラムは、同じように構成されている VM のコレクションから作成されます。Windows Server 2012 の RDS では、VM でホストする RemoteApp プログラムを VM テンプレートから自動的に作成できます。サーバー マネージャーに戻り、[リモート デスクトップ サービス] で [コレクション] を選択して、[タスク] をクリックしたら [仮想デスクトップ コレクションの作成] をクリックし、コレクションの作成ウィザードを表示します。

ウィザードでコレクション名を指定したら、コレクションの種類を選択します (図 4 参照)。通常、VM でホストする RemoteApp プログラムでは、プールされた仮想デスクトップ コレクションを操作します。そのため、VM を直接割り当てることなく、プールにある使用可能な VM から VM でホストする RemoteApp プログラムが提供されます。プール内の仮想デスクトップを自動的に作成および管理するには、[仮想デスクトップを自動的に作成および管理する] チェック ボックスをオンにします。

コレクションの作成ウィザードでコレクションの種類を指定する

図 4 コレクションの作成ウィザードでコレクションの種類を指定する

コレクションの作成ウィザードの指示に従って、作成した VM テンプレートを選択したり、無人インストールの設定を行ったりします。コレクションに接続するためのアクセス権を付与するユーザーとグループや、RDS で最初に作成する VM の数を指定するように求められます。

また、VM の記憶域の場所を指定する必要もあります (図 5 参照)。Windows Server 2012 の Hyper-V では、VM のディスク ファイルを保存する方法を数多くサポートしています。私の執筆した 2012 年 5 月の「何でも屋」のコラムでは、いくつかの新しい方法を紹介しています。

コレクションの作成ウィザードで仮想デスクトップ記憶域の場所を指定する

図 5 コレクションの作成ウィザードで仮想デスクトップ記憶域の場所を指定する

ウィザードの最後のページでは、このコレクションでユーザー プロファイル ディスクを使用するかどうか指定します (図 6 参照)。ユーザー プロファイル ディスクは、Windows Server 2012 の新しいテクノロジの 1 つです。ユーザー プロファイルの設定は、RDS でホストする VM または RDSH サーバーから切り離して保存できます。ユーザー プロファイル ディスクは、リモート デスクトップの移動プロファイルと似ていますが、それよりもずっと優れています。ユーザーは、同じプールにある別の VM に接続するときに、ユーザー設定を引き継ぐことができます。

ユーザー プロファイル ディスクによって VM の共有が促進される

図 6 ユーザー プロファイル ディスクによって VM の共有が促進される

ウィザードの最後のページで [作成] をクリックすると、コレクションが作成され、デスクトップ テンプレートから VM を複製するプロセスが開始されます。時間がかかるので、しばらく待機します。複製プロセスが完了したら、RemoteApp プログラムを、インストールされたアプリケーションと関連付けることができます。

サーバー マネージャーで、作成したばかりのコレクションに移動します。[RemoteApp プログラム] で [タスク] をクリックし、[RemoteApp プログラムの公開] をクリックします。このウィザードでは、コレクションの仮想デスクトップをスキャンして、インストールされているアプリケーションを特定し、RemoteApp プログラムの一覧を表示します (図 7 参照)。プログラムを選択して、[公開] をクリックしてウィザードを完了し、RemoteApp プログラムを作成します。

RemoteApp プログラムの公開ウィザードで RemoteApp プログラムを公開する

図 7 RemoteApp プログラムの公開ウィザードで RemoteApp プログラムを公開する

スタート メニューと RemoteApp を接続する

1 つ以上の RemoteApp を提供する準備ができたら、必要な作業は、各ユーザーのスタート メニューに必要な接続を設定するだけです。この処理は、Windows 7 または Windows 8 の各 VM のデスクトップでコントロール パネルの "RemoteApp とデスクトップ接続" を使用して実行します。Windows 8 では、コントロール パネルで [RemoteApp とデスクトップ接続] をクリックしたら [RemoteApp とデスクトップにアクセスする] をクリックします。

ユーザーのスタート メニューを RemoteApp のフィードに接続できます (図 8 参照)。テキスト ボックスに入力したサーバー名が、リモート デスクトップ接続ブローカーになります。通常、サーバー名以外の URL は既定値を使用します。Windows 8 には、グループ ポリシーのユーザー構成を通じて、この接続 URL を定義できる新しいグループ ポリシーの設定が用意されています。

RemoteApp とデスクトップに簡単にアクセスできる

図 8 RemoteApp とデスクトップに簡単にアクセスできる

また、接続 URL は HTTPS でなければなりません。つまり、リモート デスクトップ Web アクセス サーバーに Web サーバー証明書がインストールされている必要があります。Windows Server 2012 の RDS では、コレクションの展開プロパティに組み込むことで、このプロセスを簡略化しました。

サーバー マネージャーに戻り、[リモート デスクトップ サービス] で [コレクション] を選択し、[タスク] をクリックしたら、[展開プロパティの編集] をクリックして [証明書] をクリックします。[RD Web アクセス] を選択して、新しい証明書を作成するか、既にインストールされている既存の証明書を選択します (図 9 参照)。

コレクションの展開の証明書レベルを構成する

図 9 コレクションの展開の証明書レベルを構成する

新しい証明書を作成することも可能です (図 10 参照)。このためには、リモート デスクトップ Web アクセス サーバーの完全修飾ドメイン名とパスワードを指定します。また、証明書を PFX ファイル形式で保存することもできます。こうすると、"RemoteApp とデスクトップ接続" によって RemoteApp プログラムに接続するデスクトップで、信頼されたルート証明機関ストアに証明書を後からインストールすることができます。

コレクションの展開の証明書レベルを構成するときに新しい証明書を作成できる

図 10 コレクションの展開の証明書レベルを構成するときに新しい証明書を作成できる

ターミナル サービスと RDS の歴史はたいへん長く、今また、歴史が繰り返されようとしています。RemoteApp プログラムがシームレスに提供される準備が、すべての IT 環境で整っているわけではありません。また、全員が仮想デスクトップを導入する準備ができているわけでもありません。それでも、Windows Server 2012 の RDS に施された新たな機能強化により、ユーザー エクスペリエンスの柔軟性が大きく向上します。

Greg Shields

Greg Shields (MVP) は、Concentrated Technology の共同経営者です。何でも屋である IT プロフェッショナル向けのヒントとテクニックについては、ConcentratedTech.com (英語) を参照してください。

関連コンテンツ