2009/12/21

KB961741 と KB961742 で、VDI + RemoteApp も可能になる (その 2)

前回の投稿で、VDI の仮想マシンにインストールされているアプリケーションを、RemoteApp テクノロジを用いて、Windows 7 クライアントのデスクトップや Windows 7 を実行する仮想デスクトップ、あるいは Windows Server 2008 R2 のリモート デスクトップ サービス セッションに統合できることを説明しました。具体的な設定手順は、まだ明らかになっていないようですが、想像でやってみたところ Windows 7 クライアントと Windows Vista 仮想デスクトップの環境で動作を確認できました。
 VDI と RemoteApp の統合シナリオのコンセプトについては、このコンセプトについては、 Remote Desktop Services Team Blog の RemoteApp for Hyper-V の投稿が参考になります。しかし、具体的な設定手順までは明らかになっていません。

具体的にイメージできるように、図示してみました。以下の図の左側が通常の VDI 仮想デスクトップの利用形態です。Windows 7 クライアントからは、RemoteApp とデスクトップ接続 コントロールパネルまたは RD Web アクセスのポータルから、仮想デスクトップに接続します。右側は、RemoteApp テクノロジを用いて、仮想マシンのデスクトップではなく、アプリケーションのみを実行する利用シナリオです。こちらは、RDP ファイル (.rdp) をマニュアルで記述する必要があるようです。



























Windows 7 Enterprise 以上 (Professional 以下には搭載されていません)、Windows Vista SP1 以降、および Windows XP SP3 のリモート デスクトップ機能に追加された RemoteApp テクノロジを利用できるのは、Windows 7  クライアントに限られます。ただし、次のような利用シナリオを用いることで、Windows Vista や Windows XP クライアントからも利用することができます。Windows 7 の環境を、VDI の仮想デスクトップで用意するのです。

























ゲスト OS にインストールされているアプリケーションを、RemoteApp プログラムとして公開する方法については、前回説明しました。前回は、Adobe Reader 9 の例を示しましたが、今回は、Windows Vista の Windows メールを公開するための REG ファイルを紹介しておきます。

Windows Vista の Windows メールを RemoteApp プログラムとして公開するための REG ファイル
-----------------------------------------------------------------------------------
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList\Applications\WINMAIL]
"CommandLineSetting"=dword:00000000
"RequiredCommandLine"=""
"IconIndex"=dword:00000000
"IconPath"="%SYSTEMDRIVE%\\Program Files\\Windows Mail\\WinMail.exe"
"Path"="C:\\Program Files\\Windows Mail\\WinMail.exe"
"ShortPath"="C:\\PROGRA~1\\WINDOW~1\\WinMail.exe"
"VPath"="%SYSTEMDRIVE%\\Program Files\\Windows Mail\\WinMail.exe"
"ShowInTSWA"=dword:00000001
"Name"="Wiindows Mail"
"SecurityDescriptor"=""
-----------------------------------------------------------------------------------

VDI  の仮想デスクトップ内の RemoteApp プログラムに接続するには、RDP ファイルを使用します。RDP ファイルは、RD Web アクセスを提供するサーバーの C:\Windows\Web\RDWeb\Pages を参考に記述するとよいでしょう。通常の RDP 接続とは異なり、VDI の仮想デスクトップに接続する場合は、リダイレクター モードで構成した RD セッション ホストに接続するように記述します。さらに、個人用デスクトップ (マイ デスクトップ) と仮想デスクトップ プールでは、loadbalanceinfo の部分が異なります。以下の例の黒字部分だけの RDP ファイルを作成すれば、個人用デスクトップまたは仮想デスクトップ プールに接続できる RDP ファイルになります。オレンジ色の記述を追加することで、仮想マシンの RemoteApp プログラムに接続できるようになります。
 
個人用デスクトップの RemoteApp プログラムに接続するための RDP ファイルの例
-----------------------------------------------------------------------------------
redirectclipboard:i:0
redirectposdevices:i:0
redirectprinters:i:0
redirectsmartcards:i:0
devicestoredirect:s:
drivestoredirect:s:
session bpp:i:32
allow font smoothing:i:1
promptcredentialonce:i:1
gatewayusagemethod:i:2
gatewayprofileusagemethod:i:0
gatewaycredentialssource:i:0
full address:s:RDSH (RDSH はリダイレクター モードの RD セッション ホスト)
alternate shell:s:
gatewayhostname:s:
workspace id:s:RDSH.contoso.com (RDSH の FQDN)
use redirection server name:i:1
loadbalanceinfo:s:tsv://vmresource.2.
use multimon:i:1
alternate full address:s:RDSH
alternate shell:s:||WINMAIL (RemoteApp プログラムの指定)
remoteapplicationmode:i:1
remoteapplicationprogram:s:||WINMAIL (RemoteApp プログラムの指定)
remoteapplicationname:s:Windows Mail (RemoteApp プログラムの名称)
remoteapplicationcmdline:s:
-----------------------------------------------------------------------------------

仮想デスクトップ プールの RemoteApp プログラムに接続するための RDP ファイルの例
(プール内の仮想マシンのすべてに同じアプリケーションが必要)
-----------------------------------------------------------------------------------
redirectclipboard:i:0
redirectposdevices:i:0
redirectprinters:i:0
redirectsmartcards:i:0
devicestoredirect:s:
drivestoredirect:s:
session bpp:i:32
allow font smoothing:i:1
promptcredentialonce:i:1
gatewayusagemethod:i:2
gatewayprofileusagemethod:i:0
gatewaycredentialssource:i:0
full address:s:RDSH (RDSH はリダイレクター モードの RD セッション ホスト)
alternate shell:s:
gatewayhostname:s:
workspace id:s:RDSH.contoso.com (RDSH の FQDN)
use redirection server name:i:1
loadbalanceinfo:s:tsv://vmresource.1.VistaPool (VistaPool は仮想デスクトップ プールのプール ID)
use multimon:i:1
alternate full address:s:RDSH
alternate shell:s:||AcroRd32 (RemoteApp プログラムの指定)
remoteapplicationmode:i:1
remoteapplicationprogram:s:||AcroRd32 (RemoteApp プログラムの指定)
remoteapplicationname:s:Adobe Reader 9 (RemoteApp プログラムの名称)
remoteapplicationcmdline:s:
-----------------------------------------------------------------------------------

実は、Windows 7 や Windows Vista の仮想マシン環境では、すんなりと成功したのですが、Windows XP の仮想マシンだと接続時に “このリモート コンピューターは RemoteApp をサポートしていません。サポートが必要な場合は、システム管理者に問い合わせてください。”(英語では、The remote computer does not support RemoteApp. For assistance, contact your system administrator.) と表示され、接続に失敗してしまいました。これが仕様なのかどうかは不明です。個人的には、RemoteApp が Longhorn (Windows Server 2008 および Windows Vista SP1) からのテクノロジであることが関係しているような気がします。