Windows Server 2008 R2[リモートデスクトップサービスとVDI編]

2009年5月8日にWindows Server 2008 R2 製品候補版の日本語評価版が無償公開されました。
※Windows Server 2008とは違ってWindows Server 2008 R2は64ビット版のみのリリースとなります。

Windows Server 2008 R2には多くの機能が追加されていますが、中でも注目されているのは「リモートデスクトップサービス」です。
この「リモートデスクトップサービス」はWindows Server 2008まで「ターミナルサービス」と呼ばれていたものです。
この呼称変更で多くの「ターミナルサービス xxx」が「RD xxx」(RDはリモートデスクトップの略)に名称変更されました。
このためいたるところで「リモートデスクトップ」という名称が出てきて最初はちょっと戸惑うかも知れません。

RemoteAppはWindows Server 2008側のアプリケーションをローカルPC側のデスクトップに表示させて利用するものです。
Windows Server 2008ではRemoteAppアプリケーションの配布方法には以下の2種類ありました。
(1)RemoteAppの配布用RDPファイルの作成と配布
(2)「TS Web アクセス」によるRemoteAppアプリケーションアイコン配布
更に、Windows Server 2008 R2では「RemoteAppアプリケーションをクライアント側のスタートメニューに追加する機能」が追加されました。
この機能はWebフィードと呼ばれることもありますが、実際にはコントロールパネルの「RemoteAppとデスクトップ接続」で実現します。

ここではRemoteAppアプリケーションをクライアント側のスタートメニューに追加して利用する手順とVDI利用手順を中心に紹介します。
尚、RemoteAppの対象アプリケーションはMicrosoft Word/Excel 2003とします。
またVDIの仮想デスクトップはWindows 7/Windows Vistaのデスクトップとします。

補足的にVDIの仕組みを使用してHyper-VにインストールしたLinuxのリモート起動方法についても紹介します。

今回使用したPCのハードウェア/ソフトウェア構成は以下の通りです。
・CPU:Core 2 Duo E6600/Core 2 Quad Q6600
・メモリ:3GB/8GB
・ネットワークアダプタ:2個(1個ではHyper-V仮想ネットワークを自動構成できません)
・HDD:S-ATA 250GB
・サーバOS:Windows Server 2008 R2 Enterprise


■ RemoteAppソースについて

Windows Server 2008 R2のリモートデスクトップサービスには以下の2種類あります。
一つのリモートデスクトップサーバはどちらか一つのモードでしか動作しません(モード切り替えは可能)。
(1)アプリケーションモード
Windows Server 2008 R2の前のWindows Server 2008ターミナルサービスのモードと同等のモードを便宜上アプリケーションモードと呼びます。
このアプリケーションモードでのRemoteAppソースはRemoteAppアプリケーションまたはWindows Server 2008 R2デスクトップです。
(2)リダイレクトモード
リモートデスクトップ接続要求をすべてHyper-V仮想デスクトップ(Hyper-V仮想マシンのデスクトップ)にリダイレクトするモードです。
このリダイレクトモードでのRemoteAppソースはHyper-V仮想デスクトップ(仮想デスクトッププールと個人用仮想デスクトップ)です。


■ ホストOS(Windows Server 2008 R2 Enterprise)のインストール

Windows Server 2008 R2のisoイメージファイルはWindows_Server_2008_R2_RC_JA.isoです。
これにはWindows Server 2008 R2のすべてのエディションが含まれています。
インストール時のオペレーティングシステムとして「Windows Server 2008 R2 Enterprise (フル インストール)」を選択します。
クリーンインストールでは「ディスク0 Partition 1: System Reserverd」(100MB)パーティションが自動的に作成されます。

インストール直後の管理ツールの[リモートデスクトップサービス]メニューには以下のサブメニューが自動表示されます。
・リモートデスクトップサービスマネージャ
・リモートデスクトップセッションホストの構成
・リモートデスクトップ(これはRDPクライアントです)

インストール後のコンピュータ名はインストーラが設定した名称になっているため「ws2008r2」に名称変更しました。
また環境構築時の多くの局面でIEが使用されますので特に支障が無い限り一時的にセキュリティ強化の機能を無効にしておきます。
具体的にはサーバマネージャの[セキュリティ情報]の[IE ESCの構成]でセキュリティ強化の機能を無効化します。


■ Active Directoryドメインサービスの導入

RemoteAppアプリケーションをクライアント側のスタートメニューに追加するにはIISにSSL証明書が登録されている必要があります。
Active Directory証明書サービスを使用するためそれに先立ってActive Directoryドメインサービスを導入します。
(1)役割の追加で[Active Directoryドメインサービス]を選択してインストールします。
(2)dcpromo.exeを起動して「Active Directoryドメインサービスインストールウィザード」を開始します。
(3)今回は以下を指定しました。
・新しいフォレストに新しいドメインを作成する:on
・フォレストドメインのFQDN:mydomain.net
・ドメインNetBIOS名:MYDOMAIN
・フォレストの機能レベル:Windows Server 2008 R2
・このドメインコントローラの追加オプション:DNSサーバの無効化(LinuxマシンのDNSサーバを使用するため)

ドメインコントローラにアプリケーションレベルの役割・機能も同時に導入することは実運用では好ましくありません。
しかしここでは環境の簡素化のためにドメインコントローラ兼アプリケーションサーバとします。


■ Active Directoryドメイン用SSL証明書の作成・登録

Active DirectoryドメインのメンバーになっているクライアントからIISにhttps接続する場合のセキュリティ証明書エラーを回避するために、
ここではActive Directoryドメイン用SSL証明書の作成・登録を行います。
(1)役割の追加で[Active Directory証明書サービス]を選択してインストールします。
これに関連して以下のサービスもインストールしておきます。
・証明機関
・証明機関Web登録 ※IISも自動でインストール対象になります。
・証明書の登録Webサービス
・証明書の登録ポリシーWebサービス
尚、インストール時[SSL用の証明書を後で選択して割り当てる]オプションを有効にしておきます。
(2)IISマネージャで「Default Web Site」の操作として[バインド]を選択します。
(3)「サイトバインド」画面でhttps行を選択して<編集>ボタンを押します。
(4)SSL証明書として自動生成される「ws2008r2.mydomain.net」を選択します。
※発行先が「ws2008r2.mydomain.net」で、発行元が「mydomain.net-WS2008R2-CA」という扱いになります。



(5)これによって本ドメインのメンバーマシンからhttps://ws2008r2.mydomain.net/を開いても証明書の(警告)エラーは発生しません。


■ リモートデスクトップWebアクセスの追加とRemoteAppアプリの公開

(1)リモートデスクトップ関連サービスの追加
この時点のサーバマネージャの役割には肝心の「リモートデスクトップ」がありません。
そこで役割の追加で[リモートデスクトップサービス]をインストールします。
その際に仮想デスクトップ利用のためのサービス含めて以下のものを役割サービスとしてインストールします。
・リモートデスクトップセッションホスト(従来のターミナルサーバそのもの)
・リモートデスクトップ仮想化ホスト
・リモートデスクトップ接続ブローカ
リモートデスクトップWebアクセス
(2)クライアントエクスペリエンスとして以下を有効にすることでサーバにデスクトップエクスペリエンス機能を導入させます。
・オーディオ及びビデオ再生
・デスクトップコンポジション ※RDP接続でWindows 7風の外観を提供する機能ですがServer自体のAeroテーマとほぼ同じになります。
(3)IEでhttps://ws2008r2.mydomain.net/rdwebを開き、構成タブでSource name欄に「ws2008r2.mydomain.net」を指定します。
(4)RemoteAppアプリにするExcel 2003とWord 2003をインストールします(MIcrosoft Office 2003)。
(5)サーバマネージャの[RemoteAppプログラムの追加]でRD Webアクセス対象としてExcel 2003とWord 2003も追加して公開可能にします。




■ クライアントOS(Windows 7)側へのRemoteAppアプリのメニュー登録

今回はWindows Vista上のVPC2007(Virtual PC 2007)のWindows 7 RCをクライアントOSとして使用しました。
(1)このクライアントOSは今回のActive Directoryドメイン(mydomain.net)のメンバーとします。
(2)クライアントOSのコントロールパネルの[RemoteAppとデスクトップ接続](Windows 7での新設機能)を開きます。
(3)RemoteAppとデスクトップ接続の新しい接続の設定で以下のURLを指定します。
https://ws2008r2.mydomain.net/RDWeb/Feed/webfeed.aspx
※「RDWeb/Feed/webfeed.aspx」は固定です。
(4)上記URLを指定して<次へ>ボタンを押すと接続が正常に設定された旨のメッセージが表示されます。
(5)それと同時にクライアントOS側の[すべてのプログラム]メニューに「RemoteAppとデスクトップ接続」が自動生成されます。
(6)その中にExcel 2003(Remote)やWord 2003(Remote)もRemoteAppアプリとして自動登録されます。



(7)RemoteAppアプリを起動してサーバ接続用の資格情報を入力します。
(8)これでRemoteAppアプリを操作できるようになります。




■ クライアントOS側からのリモートデスクトップWebアクセスとRemoteAppアプリの実行

(1)クライアントOSのIEで以下のURLを指定します。
・https://ws2008r2.mydomain.net/RDWeb
(2)Webページに表示されるRemoteAppプログラムのアイコン一覧からWord 2003を選択して起動します。
(3)クライアントOSからWord 2003の操作が可能となります(Word 2003の本文にExcelと記載しているのはご愛嬌です)。



尚、このWebページの「RemoteAppプログラム」タブに今回使用のサーバへのリモートデスクトップ接続アイコンも表示できます。
具体的には、サーバ側のRemoteAppマネジャの[RDセッションホストサーバ設定]での[RemoteAppの展開設定]で下記オプションを有効化します。
・「RDセッションサーバ」タブの<RD Web アクセスでこのRDセッションホストサーバへのリモートデスクトップ接続を表示する>オプション。


■ クライアントOS側からのリモートデスクトップ接続例

クライアントOS(Windows Vista SP1/Windows 7)からWindows Server 2008 R2にリモートデスクトップ接続できます。
リモートデスクトップWebアクセスでも接続できますが、通常のリモートデスクトップ接続クライアントからも接続できます。
下記はWindows Vista SP1からWindows Server 2008 R2へのリモートデスクトップ接続例です。




■ VDI(Virtual Desktop Infrastructure)

Windows Server 2008 R2ではXenDesktopのようなVDI(Virtual Desktop Infrastructure)がサポートされました。
Windows Server 2008 R2のVDIはHyper-V仮想マシンのWindowsデスクトップ(仮想デスクトップ)をRDPを介してリモート操作する機能を指します。
このVDIをサポートするためにWindows Server 2008 R2では「リモートデスクトップ仮想化ホスト」という役割サービスが追加されました。
(1)従来のターミナルサーバベースのリモートデスクトップでは基本的にWindows Server 2008自体のデスクトップに接続していました。
※このため一般ユーザ権限での接続ではディレクトリ共有設定ができない等の制約がありました。
(2)しかしWindows Server 2008 R2でのリモートデスクトップはHyper-V仮想マシンのデスクトップに接続するアプローチがメインになりました。
そのために登場したのが「リモートデスクトップ仮想化ホスト」という考え方です。
更にRDP接続リダイレクトを司りHyper-V仮想マシンを内部起動する機能はリモートデスクトップ接続ブローカが担っています。
(3)リモートデスクトップ仮想化ホストのサービスは「RemoteAppとデスクトップ接続」を使用してHyper-V仮想マシンを自動起動して接続する機能です。
より具体的に言うと「クライアント側のスタートメニューにリモートの仮想マシンを起動するメニュー」が追加できるようになりました。
(4)リモートデスクトップサービスの役割サービスの追加で[リモートデスクトップ仮想化ホスト]を導入します(Hyper-Vも自動導入されます)。
(5)VDIで正式サポートされる仮想デスクトップはWindows XPとWindows Vistaです(出典:「Windows Server 2008 R2レビューアーズ ガイド」)。
(6)またVDIのクライアントPCとしては以下の2パターンあります。
・Active Directoryドメインに属するクライアントPC
・Active Directoryドメインに属さないクライアントPC
Active Directoryドメインに属するクライアントPCで「RemoteAppとデスクトップ接続」が使用できるのはWindows 7に限定されます。
Windows付属の「リモートデスクトップ接続」アプリの他に「Royal TS」というようなRDPプロトコルをサポートしたアプリも利用できます。
Active Directoryドメインに属さないクライアントPCはRD Webアクセスを利用します。
(7)Windows Server 2008 R2のVDIについての詳細はhttp://technet.microsoft.com/en-us/library/dd736539(WS.10).aspxにて公開されています。
※「Getting Started: Remote Desktop Services」で検索するとヒットします。

(8)Hyper-V仮想マシンにWindows 7 RCをインストール中またはその仮想マシン起動中にサーバクラッシュが発生しました。
2〜3回トライしましたがいずれもサーバクラッシュのためリモートデスクトップ仮想化ホスト機能確認はできませんでした。
※マシン環境の不具合かも知れません。
そこで別マシン(CPU:Core 2 Quad Q6600)にWindows Server 2008 R2を導入してリモートデスクトップ仮想化ホストのサービスを利用してみました。
後述する「個人用仮想デスクトップ」機能(Active Directoryドメインユーザに特定の仮想マシンを割り当てる機能)もその別マシンで確認しました。

VDIで正式サポートされる仮想デスクトップはWindows XPとWindows Vistaのようですがここではその対象外のWindows 7も試してみました。
Hyper-V仮想マシンへのWindows 7/Vistaの導入とその仮想マシンのデスクトップ(仮想デスクトップ)を体験する手順を簡単に紹介します。



■ Hyper-V仮想マシン上のUbuntu 9.04のリモート起動とXDMCP接続

Hyper-VではLinuxもインストールできますが、Windows Server 2008 R2のVDIではLinuxを仮想デスクトップとしては使用できません。
しかしWindows Server 2008 R2ではHyper-V仮想マシン上のLinuxをリモート起動することは可能です。
リモート起動したLinuxにXサーバからXDMCP接続すればHyper-V仮想マシン上のLinuxデスクトップを操作できるようになります。
ここでは2009年4月24日にリリースされたUbuntu Desktop 9.04 日本語版(以下Ubuntu 9.04)を使用した例を紹介します。
Hyper-V仮想マシン上のUbuntu 9.04デスクトップのリモート起動環境の作成手順の流れは次の通りです。
(1)Ubuntu 9.04用仮想マシン作成
(2)Active DirectoryへのUbuntu 9.04用仮想マシン登録
(3)Active Directoryユーザの個人用仮想マシンとしての登録
(4)リモートデスクトップ接続による個人用仮想マシンのリモート起動
(5)クライアントからのXDMCP接続


折角、Ubuntu 9.04用仮想マシンを作成したのでUbuntu 9.04用仮想マシンからHyper-V仮想マシン(hvvista)にRDP接続してみました。
操作はサーバ環境で下記手順を直接行ってみました。
(1)Hyper-V仮想マシン(hvvista)を手動起動します。
hvvista側のリモートデスクトップの設定では[リモートデスクトップを実行しているコンピュータからの接続を許可する]を有効にしておきます。
※[ネットワークレベル認証でリモートデスクトップを実行している...]が有効の場合はUbuntu 9.04からのRDP接続はできません。
(2)Ubuntu 9.04用仮想マシンを手動起動します。
(3)Ubuntu 9.04側の[アプリケーション]−[インターネット]−[ターミナルサーバクライアント]を起動します。
※[インターネット]メニューの[リモートデスクトップビューワ]はVNCクライアントですので使用しません。
(4)ターミナルサーバクライアント側に必要な指定をします。
・「全般」タブでのコンピュータ欄にはhvvista.mydomain.netを指定します。
・「画面」タブで画面サイズを指定します(今回は800x600を選択)。
・「ローカルのリソース」タブでのリモートコンピュータのサウンドは[再生しない]を選択します。
※これはUbuntu 9.04側でサウンド再生設定をしていないためです。
(5)<接続>ボタンで接続します。
(6)Hyper-V仮想マシン(hvvista)のデスクトップをUbuntu 9.04側から操作可能となります。
Ubuntu 9.04側からRDP接続したHyper-V仮想マシン(hvvista)のデスクトップ例