リリースされたばかりの、Horizon View Client 2.2 (32bit windows版)をThinAppで仮想アプリ化する
手順について、今回は記載したいと思います。
View Clientは、比較的簡単に仮想アプリ化できるので、お勧めです。
メリット:
・インストールする必要がない。
・即、使える。
・WindowsベースのThin Clientでも、実行できる。
デメリット:
・USBリダイレクト機能が利用できない。
(ある意味、セキュアだったりするので、メリットになるかもです。)
パッケージング環境:
Windows 7 SP1 x86
ThinApp ver4.7.3
VMware Horizon View Client for 32-bit Windows version 2.2.0
特記事項:
Windows7 環境は、クリーンな環境を利用します。
キャプチャ中は、余計な動作をなるべく阻止する事とパフォーマンスを
高めるために、以下の設定を行っています。
※必須では、ありませんが、純粋にView Clientのインストールによる変更点だけを
キャプチャしたい為。
これらを無効にしなくても、問題なく動作するパッケージは作成できると思います。
・Windows Update 無効化(サービスの設定で停止&無効)
・Windows Defender 無効化(サービスの設定で停止&無効)
・Windows Search 無効化(サービスの設定で停止&無効)
・スクリーンセーバー 無効化
・ネットワーク 無効化 (仮想マシンのNICを切断)
・省電力モード 無効化
動作確認環境:
Windows 7 SP1 x86
Windows 8 x86
Windows XP SP3 x86
仮想化手順:
#1.キャプチャ用のクリーンなWindows 7にView Client 2.2のインストーラを
デスクトップ等に、事前にコピーしておきます。
VMware-Horizon-View-Client-x86-2.2.0-1404668
#2.VMware ThinApp Setup Captureを起動します。[Next>]をクリック
#3.Prescanを行います。
#4.Prescanが完了すると、Install Application画面が表示されるので、最小化しておきます。
#5.VMware-Horizon-View-Client-x86-2.2.0-1404668.exeを実行します。
#6.vSphere Client 5.5 のインストールを行います。
USBリダイレクトの機能は、仮想アプリでは利用できないので、
インストールオプションから除外しておきます。
#7.のインストールが完了すると、システムの再起動を求められます。
キャプチャ中なので、再起動すると全てが失われてしまいそうで、躊躇すると思いますが
気にせずに、「はい」を押して再起動してしまいます。
ログインします。(同じユーザーアカウント)
自動的にSetup Captureが起動します。
「Continue installation process」を選択して、「Next」をクリックします。
元の画面に戻ってきました。
一安心ですね。
#9.エントリーポイントの設定では、VMware Horizon View Client.exeにチェックを付けてNextを押します。
#10.後は、ウィザードに従って、次々と進めていきます。
※Quality Assurance Statisticsの詳細については、以前の投稿を参照ください。
※仮想アプリを圧縮したいので、[Compress virtual package]にチェックを付けます。
※PCのスペックによりますが、2分程度かかります。
※ここでは、buildせずに Skip the build processにチェックを付けてNextをクリックします。
後で、各種チューニングを行ってからBuild.batを実行し仮想アプリケーションの作成を行います。
※キャプチャされたプロジェクトフォルダのサイズは、だいたい70MBくらいです。
#11.IME関連の問題に対する、チューニングを行います。
詳細は、以前の投稿を参照ください。
「ThinAppで仮想化したアプリのIME問題について(重要)」
プロジェクトフォルダの%AppData%の##Attributes.iniファイルのDirectoryIsolationModeを
Mergedへ変更します。
#12.ThinPrint関連でSandboxが肥大化する問題に対する、チューニングを行います。(重要)
ThinPrintを利用する場合に、Sandboxに%systemsystem%\FxsTmpフォルダが
作成されてしまいます。
環境によっては、100MBを超えるサイズに膨れ上がるので、
物理側にこのフォルダ、ファイルを作成するようにMergedモードに設定変更します。
プロジェクトフォルダの%systemsyste%にFxsTmpフォルダを作成します。
##Attributes.iniファイルを新規に作成し、DirectoryIsolationModeをMergedとして設定します。
#13.Package.iniをチューニングします。
Package.iniのパラメータは、以前に投稿したこちらを参照ください。
「ThinApp 4.7 Package.ini パラメーター」
設定項目は、以下になります。
・Disk優先モードで圧縮します。
・不要なファイルをパッケージに含めないようにします。
・IME2007、2010関連の問題を対策します。
・デバッグ用のvCMD.exeとvRegedit.exeをエントリーポイント化します。
Package.iniはこんな感じにします。
[Compression] ;圧縮を有効 CompressionType=Fast [Isolation] DirectoryIsolationMode=Merged [FileList] ;不要なファイルをパッケージに含めないようにします。 ExcludePattern=*.msi,:*.msp,*.log,*.inf,*.cat [BuildOptions] ;Disk優先圧縮を有効にする。 OptimizeFor=Disk ;IME対策 ExternalCOMObjects={FCE4078B-72B5-4122-95E4-45B5E2E88031};{F57CA90F-D309-4056-9616-6670A27BE8A1} ChildProcessEnvironmentExceptions=svchost.exe;DLLHost.exe;msiexec.exe;explorer.exe;ImeBroker.exe ;デバッグ用のvCMD.exeとvRegedit.exeをエントリーポイント化します。 [vCmd.exe] Source=%SystemSystem%\cmd.exe Shortcut=VMware Horizon View Client 2.2.exe Disabled=0 [vRegedit.exe] Source=%SystemRoot%\regedit.exe Shortcut=VMware Horizon View Client 2.2.exe Disabled=0
#14.Build.batを実行します。
#15.出来上がり。binフォルダに仮想アプリ化されたView Client 2.2が出力されます。
サイズは、約20MB程度です。
動作確認:
Windows7 SP1 x86環境で動作させた結果
ちゃんと動きました。もちろんインストールされていません。
Windows8 x86環境で動作させた結果
「MSVCR90.dll が見つからなかったため、このアプリケーションを開始できませんでした。アプリケーションをインストールし直すとこの問題は解決される場合があります。 」
MSVCR90.dllは、Microsoft Visual C++ 2008 SP1 再頒布可能パッケージ (x86)に含まれるランタイムです。
(VC2008ランタイム)
VisualC++2008で開発されたソフトを動作させるために必要です。
ViewClient2.2は、VC2008で開発されているんですね。
キャプチャ環境を今回は、Windows7で行ったので、こんな結果になります。
Windows7は、VC2008ランタイムがある程度存在しているので、キャプチャしても
仮想アプリには、含まれません。
Windows8も同様にOS自体にVC2008ランタイムの大部分がインストールされています。
Windows XPの場合は、このVC2008ランタイムは存在しないので、別途インストールするか
WindowsXP環境でキャプチャすれば、VC2008ランタイムも仮想アプリケーションパッケージに
含まれるようになります。
必要なバージョンは、MSVCR90.dll 9.0.30729.4148限定です。
古いバージョンだと動作しません。
「Microsoft Visual C++ 2008 Service Pack 1 再頒布可能パッケージ ATL のセキュリティ更新プログラム」をインストールした後に、Windows Updateすると動作します。
http://www.microsoft.com/ja-jp/download/confirmation.aspx?id=11895
VC2008 SP1ランタイムそのままでは、動作しません。
理由は、MSVCR90.dllのバージョンが9.0.30729.1のためです。
このライブラリには、脆弱性に関する問題があったようで、更新モジュールは、
Windows Update経由で適用する必要があります。
(もしかしたら、ダウンロードできるかも知れないですが、見つけられませんでした。。。)
2013-11-21追加:確認したところ、上記リンクでDLできるVC2008のランタイムで動作しました。ごめんなさい。
※「Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729.4148」が必要。
詳細は、wsnm.exeのApplicationManifestの中で以下のように利用するMSCVR90.dllを指定しているためですが、厳格な方法なのでお作法に則った正しい記述です。
<assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.30729.4148" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
と、色々書きましたが、Windows XPで利用する場合は、WindowsXP環境でViewClientを
キャプチャしたほうが手っ取り早いと思います。
簡単にWindowsXPで動作すると思ったのですが、意外とめんどくさかったです。。。
「利用するOSと同じOSでキャプチャする。」という鉄則を守らなかった私が悪いんですけどね。
参考情報:
「貸そうか?」さんのBlogに、View Client 2.2の詳細な情報があるので
一読すると幸せになれると思います。
VMware Horizon View Client for Windows バージョンアップ
http://vm-fun.blogspot.jp/2013/11/vmware-horizon-view-client-for-windows.html
Windows7 SP1 x86環境で動作させた結果
ちゃんと動きました。もちろんインストールされていません。
※Windows ファイアウォールの警告が表示されますが、アクセスを許可すればOKです。
WindowsXP SP3 x86環境で動作させた結果
エラーが表示されました。
MSVCR90.dllは、Microsoft Visual C++ 2008 SP1 再頒布可能パッケージ (x86)に含まれるランタイムです。
(VC2008ランタイム)
VisualC++2008で開発されたソフトを動作させるために必要です。
ViewClient2.2は、VC2008で開発されているんですね。
キャプチャ環境を今回は、Windows7で行ったので、こんな結果になります。
Windows7は、VC2008ランタイムがある程度存在しているので、キャプチャしても
仮想アプリには、含まれません。
Windows8も同様にOS自体にVC2008ランタイムの大部分がインストールされています。
Windows XPの場合は、このVC2008ランタイムは存在しないので、別途インストールするか
WindowsXP環境でキャプチャすれば、VC2008ランタイムも仮想アプリケーションパッケージに
含まれるようになります。
必要なバージョンは、MSVCR90.dll 9.0.30729.4148限定です。
古いバージョンだと動作しません。
「Microsoft Visual C++ 2008 Service Pack 1 再頒布可能パッケージ ATL のセキュリティ更新プログラム」
http://www.microsoft.com/ja-jp/download/confirmation.aspx?id=11895
2013-11-21追加:確認したところ、上記リンクでDLできるVC2008のランタイムで動作しました。ごめんなさい。
※「Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729.4148」が必要。
詳細は、wsnm.exeのApplicationManifestの中で以下のように利用するMSCVR90.dllを指定しているためですが、厳格な方法なのでお作法に則った正しい記述です。
<assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.30729.4148" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
と、色々書きましたが、Windows XPで利用する場合は、WindowsXP環境でViewClientを
キャプチャしたほうが手っ取り早いと思います。
簡単にWindowsXPで動作すると思ったのですが、意外とめんどくさかったです。。。
「利用するOSと同じOSでキャプチャする。」という鉄則を守らなかった私が悪いんですけどね。
「貸そうか?」さんのBlogに、View Client 2.2の詳細な情報があるので
一読すると幸せになれると思います。
VMware Horizon View Client for Windows バージョンアップ
http://vm-fun.blogspot.jp/2013/11/vmware-horizon-view-client-for-windows.html