今回は ThinDirect ( Native Browser Redirection ) について書きたいと思います。
ThinDirectは、より便利に仮想化したブラウザを利用するための機能です。
例えば、こんなシチュエーションの場合に威力を発揮します。
Windows7環境で主に利用するブラウザは
もともとインストールされているIE8だとします。
日常的なWebの利用は、IE8を利用します。
業務用のWebシステムがIE6でしか動作しないため
IE6をThinAppで仮想アプリ化し、業務用のWebシステムを利用する場合だけ
VirtIE6を利用するとします。
利用者視点でみると、問題点というか煩わしさがあります。
普段利用するのがIE8で
特定の業務Webシステムを利用したい場合だけ
VirtIE6をダブルクリックで起動して
利用することになります。
利用者がIE8で開くか、VirtIE6で開くかを
選択しないといけません。
多くの企業では、ポータルサイトをスタートページにしていて
社内システムのリンク集が並んでいると思います。
また、多くのユーザーは、自分のお気に入りの中に、
社内Webシステムのリンクを登録して利用していると思います。
そこで、問題なのがIE8で社内ポータルサイトを開き
社内システムのリンクをクリックした場合に
通常であればIE8の中でそのシステムが開いてしまいます。
また、お気に入りから呼び出した場合も、やはりIE8のなかで開いてしまいます。
本当は、VirtIE6で開いてもらいたいですよね。
その希望を実現する機能が、ThinDirectになります。
利用するまでの流れ
1. VirtIE6.exe 等の仮想化されたブラウザを対象のPCからアクセス可能な記憶域に設置します。
(HDDやネットワーク共有、CD-ROM、USBメモリ等の記憶域)
例) [C:\ThinApps\VirtIE6.exe] を設置
2.ネイティブIE用のプラグインとしてThinDirectをインストールします。
ThinDirect.msiを実行
(管理者権限が必要)
インストールすると、ネイティブIEのアドオンの管理に表示されます。
(IE9の場合)
ThinDirectのモジュールは、以下にコピーされます。
C:\Program Files\VMware\VMware ThinApp\ThinDirect
・ThinDirect.dll
・ThinDirectLauncher.exe
3.VirtIE6等の仮想化されたブラウザにリダイレクトしたい、URLを設定します。
グループポリシー、レジストリ、ThinDirect.txtの何れかを利用し、
リダイレクトしたいURLを記述します。
例)グループポリシーを利用した設定方法
( ThinDirect.adm )を利用し、コンピューターに対してThinDirectの設定を行います。
コンピューター or ユーザーに設定可能です。
1.グループポリシーエディターを起動-[管理用テンプレート]-[テンプレートの追加と削除]
[追加(A)]-[ThinDirect.adm]を選択し、[開く(O)]
[ コンピューターの構成]-[従来の管理用テンプレート(ADM)]-[VMware ThinDirect]
[フィルター]を無効にします。
右ペインより、[Define Your Setting for the Virtual Browser]をダブルクリックして設定を行います。
・有効 を選択
・Virtual Browser On/Off チェックを入れて有効にします。
・Virtual Browser Name 仮想化したブラウザの格納先のフルパスを設定します。
例)C:\ThinApps\VirtIE6.exe
・Redirect 仮想ブラウザで開きたいURLを設定します。
例)http://www.vmware.com/*
http://*yahoo.co.jp/*
*vmware.com/*
※実際にGPOで設定されるのは、以下のレジストリです。
コンピューターに設定した場合:
HKEY_LOCAL_MACHINE\SOFTWARE\VMware, Inc.\VMware ThinApp\ThinDirect\
ユーザーに設定した場合は、HKEY_CURRENT_USERに読み替えてください。

GPOを利用せずに、直接レジストリに設定しても問題ありませんでした。
レジストリを利用せずに、ThinDirect.txtを利用する場合
以下のパスにThinDirect.txtを設置します。
C:\Program Files\VMware\VMware ThinApp\ThinDirect\ThinDirect.txt
ThinDirect.txtを以下のように設定します。
[C:\ThinApps\VirtIE6.exe] 仮想化したVirtIE6のフルパスを設定
http://www.vmware.com/* リダイレクトしたいURLのマッチングルールを記述
http://*yahoo.co.jp/*
*vmware.com/*
ネイティブIE8から仮想IE6にリダイレクトされるまでの具体的な処理の流れは
1.ネイティブIE8を起動します。
ユーザーが普通にIE8を起動する。
2.IE8のプラグインとして、ThinDirect.dllが読み込まれます。
自動的にIE8が登録された様々なプラグインを読み込みます。
3.ThinDirect.dllプラグインは、設定されたリダイレクトされる対象のURLをレジストリ or ThinDirect.txtから
読み込みます。
その際に、リダイレクトするVirtIE6.exeのパスを把握します。
IE8の起動時なので、リダイレクト先のURLを編集した場合は、
IE8のプロセスをリスタートする必要があります。
毎回読み込んでいたらパフォーマンスに影響があるので、
ThinDirect.dll読み込み時にメモリにキャッシュしていると思われます。
4.IE8の中で、リンクをクリックします。
通常のリンクをクリックします。
5.IE8の中で、画面遷移が行われる前にBeforeNavigateイベントが発生します。
IE8のアドレスバーのURLも変わります。
6.IE8は、プラグインにBeforeNavigateイベントが発生したことを通知し、
あわせて、遷移先のURLを教えます。
余談ですが、IEには様々なイベントがあるので、プラグイン側でIEに対して、
欲しいイベントをもらうための登録や処理を実装します。
7.ThinDirect.dllプラグインがIEから、画面遷移先のURLを受け取ります。
8.ThinDirect.dllプラグインは、リダイレクト対象のURLとマッチングするか判断します。
マッチングしない場合は、そのまま何もせずにスルーします。
9.マッチングした場合は、VirtIE6を起動するためのThinDirectLauncher.exeを起動します。
VirtIE6が起動していない場合にThinDirectLauncher.exeを経由して、VirtIE6を起動します。
10.ThinDirect.dllプラグインは、IE8に新しいタブを作成しリダイレクト処理中のメッセージを表示します。
※ver4.6.2から3秒後に自動的に新しいタブが閉じるようになりました。
11.ThinDirectLauncher.exeはVirtIE6.exeを起動します。
12.ThinDirect.dllプラグインは起動したVirtIE6.exeに対してDDEメッセージ(WWW_OpenURL)を利用しURLを送信します。
13.VirtIE6.exeは、DDEメッセージ(WWW_OpenURL)を受信しURLを取得したあとに画面遷移を行います。
※多分合っていると思いますが、外側から調査しただけなので、ちょっと違う箇所があるかもしれません。
対応環境
ネイティブ側でサポートされるブラウザ
IE6,7,8,9,10,11
Firefox 22以降(ThinApp ver5.1.0から追加)
仮想アプリ側でサポートされるブラウザ
IE6,7,8,9,10,11
Firefox
Chrome
Safari
Opera
※リダイレクトされる側はIE系以外もサポートされます。
参考:
ThinDirect.txtの記述方法(マッチングルール)
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1026635
ThinDirectについて
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1026566
ThinDirectの設定方法について
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1026636
改定履歴:
初版:2012-06-11
2014-09-12 ThinApp5.1.0対応