Cloudpagingによる旧バージョンのChromeのアプリケーション仮想化実験(前編)【トゥモロー・ネット 技術ブログ】

Cloudpaging は、Windows アプリケーションをパッケージ化して配信し、Windows 環境で実行可能にするアプリケーション仮想化ソリューションです。アプリケーションと OS を分離(コンテナ化)することで、運用管理の効率化やセキュリティ強化を実現します。クライアント側の Windows ではインストール作業が不要で、配信を受けるだけで すぐに利用可能です。
また、SaaS のように常時クラウド接続を前提とせず、実ファイルが配信されるため、一度取得すれば Cloudpaging Server で設定された有効期間内はオフラインでも利用できます。さらに、ドメイン環境でグループポリシー(GPO)と連携すれば、シングルサインオン(SSO)やポリシー適用も可能です。
そこで本記事では 、古いバージョンの Chrome を例に、仮想化パッケージを作成し Cloudpaging Server に登録する手順をご紹介します。これにより、仮想化パッケージ作成作業の理解を深めるきっかけとなれば幸いです。
※本記事は前編と後編に分かれており、こちらは前編です。
目次
背景と目的
Cloudpaging Server と Player 間でのアプリケーション配布やユーザー管理については、Numecent 社が提供するドキュメントによって比較的理解しやすい状況にあります。
しかし、アプリケーションを仮想化して Cloudpaging Server に登録するプロセスでは、実際に多くの方がつまずきやすいのも事実です。
システム構成
今回のシステムでは、Chrome(ver 86.0.4240.183)の仮想化パッケージを作成し、それを登録・配布したうえで、クライアント端末で実行します。構成は以下のとおりです。
- Cloudpaging Studio(ver 9.4): Chromeの仮想化パッケージを作成
- Cloudpaging Server(ver 9.8): 作成したパッケージを登録し、クライアント端末へ配布
- Cloudpaing Player(ver 9.5): クライアント端末で仮想化されたアプリケーションを実行
- Active Directory: Cloudpaing serverと連携してユーザー管理を実施
なお、本ブログでの検証環境のOSは以下のとおりです。
- Cloudpaging Studio:windows10
- Cloudpaging Server:windows server 2019
- Active Directory:windows server 2019
- Cloudpaging Player:windows11
Chromeの仮想化パッケージ作成
あらかじめCloudpaging Studio がインストールされ、Windows カスタマーエクスペリエンス向上プログラムとアンチマルウェアが無効化されている状態で、以下の手順を実施します。
ChromeのインストーラーをCloudpaging Studioのマシンに配置
ファイル名:googlechromestandaloneenterprise64.msi (ver 86.0.4240.183)
Studioを起動し新規プロジェクトを作成
Studioを起動し、画面上部の「New」アイコンをクリックして新規プロジェクトを作成します。以下の設定で保存します。
プロジェクト名:Chrome_Layer4
アプリケーション名:Chrome_Layer4

アプリケーションレイヤーは分離レイヤーのLayer4に設定します。画面上部のメニューから「Edit」> 「Default Configuration」を選択し、表示されたDefault Configuration画面で「Default disposition for new assets」に「Virtual-isolated(layer 4)」を選択して、OKボタンをクリックします。
この設定により、個別に変更しない限り、作成するすべてのコンポーネントはLayer4で仮想化されるようになります。


CaptureアイコンをクリックしChromeのインストーラーを選択
LaunchボタンをクリックしたらChromeのインストールが開始され、Cloudpaging Studioがそのプロセスをトレースします。

ChromeのインストーラーをFile pathで指定し、トレース対象のプロセスとマージのオプションを設定したうえで、「Launch」ボタンをクリックします。

Chromeのインストールとプロセスのトレースが開始されます。インストールが終わったらOKボタンをクリックし、プロセスのトレースを終了させます。


トレースが終了すると、トレース内容が表示されます。必要に応じて、ログファイルを開き詳細を確認することも可能です。警告やエラーメッセージが表示された場合は、内容を確認して対応策を検討します。ただし、一時ファイルが原因のメッセージであれば、無視しても問題ないこともあります。

Saveアイコンをクリックし保存します。

Chromeの自動アップデート機能を停止させます。
Chrome はデフォルトで、起動時にインターネットに接続されていると自動的に最新版にアップデートされます。そのため、仮想化パッケージ作成時には、ローカルマシンの自動アップデート機能を停止させておきます。GoogleUpdate.exeファイル名をリネームします。


windowsサービス管理者で、Google update関連サービスを無効化します。

以下のレジストリを登録(結合)します。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Update]
“AutoUpdateCheckPeriodMinutes”=dword:00000000
“DisableAutoUpdateChecksCheckboxValue”=dword:00000001
“Update{8A69D345-D564-463C-AFF1-A69D9E530F96}”=dword:00000000
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Google\Update]
“AutoUpdateCheckPeriodMinutes”=dword:00000000
“DisableAutoUpdateChecksCheckboxValue”=dword:00000001
“Update{8A69D345-D564-463C-AFF1-A69D9E530F96}”=dword:00000000
仮想化パッケージ内のChromeにも自動アップデート機能を停止させる
Cloudpaging Player で実行した際に最新版へ自動更新されるのを防ぐため、仮想化パッケージ内にもローカルマシンと同じ自動アップデート停止の設定を反映します。
ローカル環境で自動更新を停止する際に変更したフォルダ構成を、そのまま仮想化パッケージにも適用します。具体的には、
\Google を削除し、再度追加します。
このとき、以下のようにフォルダ名を変更した状態で適用します。
・GoogleUpdater→_ GoogleUpdater
・Update→_Update
<ProgramFilesX86>\Google で右クリック、Deleteを選択します。

確認メッセージで、OKボタンをクリックします。

削除後に、で右クリック、Add Subfolderを選択します。

「Create from this existing folder」を選択し、C:\Program Files (x86)\Googleのフォルダを指定します。
フォルダ配下のサブフォルダとファイルをすべて追加するためにオプションで、「Recursively include folders」と「Include files within the folder(s)」を設定します。

追加されたファイルを確認します。

Chromeアップデート停止のための以下のレジストリ項目を追加します。
Key | Value Name | Type | Data |
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Update | Update{8A69D345-D564-463C-AFF1-A69D9E530F96} | REG_DWORD | 0 |
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Update | AutoUpdateCheckPeriodMinutes | REG_DWORD | 0 |
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Update | DisableAutoUpdateChecksCheckboxValue | REG_DWORD | 1 |
KEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Google\Update | Update{8A69D345-D564-463C-AFF1-A69D9E530F96} | REG_DWORD | 0 |
KEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Google\Update | AutoUpdateCheckPeriodMinutes | REG_DWORD | 0 |
KEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Google\Update | DisableAutoUpdateChecksCheckboxValue | REG_DWORD | 1 |
Updateのキーで右クリック、Add Valueを選択します。

Add Registry Value画面で、上記の表で提示している項目と値を設定してOKボタンをクリックします。

追加されたレジストリを確認します。

必要な場合には、32bitアプリケーション専用のレジストリ領域にもレジストリを追加します。

「Service&Drivers」のタブで、キャップチャーされているGoogleのサービスを削除します。



クライアント端末にインストールされているChromeと仮想化したChromeの並行実行ができるように追加設定する
クライアント端末にインストールされているChromeと区別するため、Chromeのインストールフォルダのパスを一部変更します。
C:\Program Files\Google\Chrome → C:\Program Files\Google\Chrome_CP に変更します。

変更されたフォルダパスを仮想化パッケージにも適用するため、既存のフォルダデータを削除し変更されたフォルダを追加します。
\Google\Chromeで右クリック、Deleteを選択します。

確認メッセージでOKボタンをクリックします。

<ProgramfilesX64>\Googleで右クリック、Add Subfolderを選択します。

「Create from this existing folder」を選択し、C:\Program Files\Google\Chrome_CPのフォルダを指定します。
フォルダ配下のサブフォルダとファイルをすべて追加するためにオプションで、「Recursively include folders」と「Include files within the folder(s)」を設定します。

追加されたファイルを確認します。

Cloudpaging playerが動作するクライアント端末に、すでに通常版のChromeがインストールされている場合、仮想化されたChromeと設定やプロファイルが競合する可能性があります。それを防ぐため、コマンドプロンプトでユニークなユーザーデータディレクトリを指定してChromeを起動します。
コマンドプロンプトで、
“C:\Program Files\Google\Chrome_CP\Application\chrome.exe” –user-data-dir=%localappdata%\Google\Chrome\Chrome_CP を実行します。

Chromeが起動されたら、ユーザーアイコンをクリックし「追加」をクリックします。

ユーザー名欄に任意のユーザー名を入力し、プロファイルのアイコンを選択します。ここでは「CP-User01」と入力し、「追加」ボタンをクリックします。

作成したプロファイルが適用されていることを確認します。

この時点では、既存のChromeと新しく作成したプロファイルのChromeが同時に実行されています。新しいプロファイルのデータを保持するため、通常起動しているChromeを先に終了します。

chrome起動時に指定したユーザーディレクトリ(%localappdata%\Google\Chrome\Chrome_CP)にデータが作成されていることを確認します。

今回はここまでとなります!
Chromeのインストーラー準備から、Chromeと仮想化Chromeの並行実行で決まるところまで来ました!
次回はChromeからのアクセス制限を行うためのプロキシ設定の追加から解説いたします。
後編もお楽しみに!
お問合せ先

関連ページ
V2V移行のメリット・デメリット|仮想環境をスムーズに切り替える方法
P2Vとは?企業が知っておくべき仮想化移行の手順と最適なツール選び
アプリケーションのパッチを永久に排除するには
この記事を書いた人

株式会社トゥモロー・ネット
トゥモロー・ネットは「ITをもとに楽しい未来へつなごう」という経営理念のもと、感動や喜びのある、より良い社会へと導く企業を目指し、最先端のテクノロジーとサステナブルなインフラを提供しています。設立以来培ってきたハードウェア・ソフトウェア製造・販売、運用、保守などインフラに関わる豊富な実績と近年注力するAIサービスのコンサルティング、開発、運用、サポートにより、国内システムインテグレーション市場においてユニークなポジションを確立しています。
インフラからAIサービスまで包括的に提供することで、システム全体の柔軟性、ユーザビリティ、コストの最適化、パフォーマンス向上など、お客様の細かなニーズに沿った提案を行っています。