次の方法で共有


アプリケーションの公開とクライアントとのやり取り

適用対象: Application Virtualization 5.0, Application Virtualization 5.0 SP1, Application Virtualization 5.0 SP2, Application Virtualization 5.0 SP3

この記事では、一般的な App-V クライアントの操作方法とローカルのオペレーティング システムとの統合方法について技術的な情報を提供します。

  • Sequencer で作成された App-V パッケージ ファイル

  • appv ファイル

  • App-V クライアントのデータ記憶域の場所

  • パッケージ レジストリ

  • App-V パッケージ ストアの動作

  • レジストリとデータのローミング

  • App-V クライアント アプリケーションのライフ サイクル管理

  • App-V パッケージの統合

  • 動的構成の処理

  • サイド バイ サイド アセンブリ

  • クライアントのログ記録

他の参照情報については、「Microsoft Application Virtualization (App-V) Documentation Resources Download Page (Microsoft Application Virtualization (App-v) ドキュメント リソースのダウンロード ページ)」をご覧ください。

Sequencer で作成された App-V パッケージ ファイル

Sequencer は、App-V パッケージを作成し、仮想化アプリケーションを生成します。シーケンス処理によって次のファイルが作成されます。

ファイル 説明

.appv

  • シーケンス処理からキャプチャされた資産と状態情報が含まれるプライマリ パッケージ ファイル。

  • 配信時にコンピューターや特定のユーザーに再適用できるトークン化された形式の、パッケージ ファイル、公開情報、レジストリのアーキテクチャ。

.MSI

.appv ファイルの手動展開またはサードパーティ製展開プラットフォームによる展開を可能にする、実行可能な展開ラッパー。

_DeploymentConfig.XML

パッケージ内のすべてのアプリケーションに対する既定の公開パラメーターのカスタマイズに使用されるファイル。これは、App-V クライアントを実行しているコンピューター上のすべてのユーザーにグローバルに展開されます。

_UserConfig.XML

パッケージ内のすべてのアプリケーションに対する公開パラメーターのカスタマイズに使用されるファイル。これは、App-V クライアントを実行しているコンピューター上の特定のユーザーに展開されます。

Report.xml

省略されたドライバー、ファイル、レジストリの場所を含む、シーケンス処理から生じたメッセージの概要。

.CAB

省略可能: 以前にシーケンス処理された仮想アプリケーション パッケージを自動的に再構築するために使用されるパッケージ アクセラレータ ファイル。

.appvt

省略可能: よく再利用される Sequencer 設定を保持するために使用される Sequencer テンプレート ファイル。

シーケンス処理の詳細については、「Application Virtualization 5.0 Sequencing Guide (Application Virtualization 5.0 シーケンス処理ガイド)」をご覧ください。

appv ファイル

appv ファイルは、1 つのエンティティに XML と XML 以外のファイルを一緒に格納するコンテナーです。このファイルは、Open Packaging Conventions (OPC) 標準に基づく AppX 形式で構成されます。

appv ファイルの内容を表示するには、パッケージのコピーを作成し、コピーしたファイル名の拡張子を ZIP に変更します。

appv ファイルには次のフォルダーとファイルが含まれ、仮想アプリケーションを作成するときと発行するときに使用されます。

名前 種類 説明

Root

ファイル フォルダー

シーケンス処理中にキャプチャされた仮想化アプリケーションのためのファイル システムを含むディレクトリです。

[Content_Types].xml

XML ファイル

appv ファイル内の主な内容の種類 (DLL、EXE、BIN など) を一覧します。

AppxBlockMap.xml

XML ファイル

File、Block、BlockMap 要素を利用した appv ファイルのレイアウトが含まれています。このレイアウトは、App-V パッケージ内でファイルの場所の特定と検証を可能にします。

AppxManifest.xml

XML ファイル

パッケージのメタデータです。パッケージの追加、公開、起動に必要な情報が含まれています。拡張ポイント (ファイルの種類の関連付けとショートカット)、パッケージに関連付けられている名前と GUID も含まれています。

FilesystemMetadata.xml

XML ファイル

シーケンス処理中にキャプチャされたファイルの一覧と、属性 (ディレクトリ、ファイル、不透明なディレクトリ、空のディレクトリ、長い名前や短い名前など) が含まれています。

PackageHistory.xml

XML ファイル

シーケンス処理用のコンピューター (オペレーティング システムのバージョン、Internet Explorer のバージョン、.Net Framework のバージョン) とプロセス (アップグレードとパッケージのバージョン) に関する情報。

Registry.dat

DAT ファイル

パッケージのシーケンス処理中にキャプチャされたレジストリ キーとレジストリ値。

StreamMap.xml

XML ファイル

プライマリ機能と公開機能ブロックのファイル一覧が含まれています。公開機能ブロックには、パッケージを公開するための ICO ファイル、および各ファイル (EXE および DLL) の必要な部分が含まれています。プライマリ機能ブロックが存在する場合、そのブロックには、シーケンス処理中のストリーミング用に最適化されたファイルが含まれています。

App-V クライアントのデータ記憶域の場所

App-V クライアントは、仮想アプリケーションが適切に動作し、まるでローカルにインストールされたアプリケーションのようにタスクを実行します。仮想アプリケーションを開いて実行するプロセスでは、ユーザーが想定する従来のアプリケーションに必要なコンポーネントがそのアプリケーションに含まれるようにするために、仮想ファイル システムおよびレジストリからのマッピングが必要です。このセクションでは、仮想アプリケーションを実行するのに必要な資産について説明し、App-V アプリケーションが資産を保存する場所を一覧します。

名前 場所 説明

パッケージ ストア

%ProgramData%\App-V

読み取り専用パッケージ ファイルの既定の場所

マシン カタログ

%ProgramData%\Microsoft\AppV\Client\Catalog

各コンピューターの構成ドキュメントが含まれています

ユーザー カタログ

%AppData%\Microsoft\AppV\Client\Catalog

各ユーザーの構成ドキュメントが含まれています

ショートカット バックアップ

%AppData%\Microsoft\AppV\Client\Integration\ShortCutBackups

非公開パッケージを復元できる以前の統合ポイントが保存されています

コピー オン ライト (COW) ローミング

%AppData%\Microsoft\AppV\Client\VFS

パッケージの変更に使用する、書き込み可能なローミングの場所

コピー オン ライト (COW) ローカル

%LocalAppData%\Microsoft\AppV\Client\VFS

パッケージの変更に使用する、書き込み可能なローミング以外の場所

マシン レジストリ

HKLM\Software\Microsoft\AppV

コンピューターまたはグローバルに公開されたパッケージ (マシン ハイブ) の VReg など、パッケージの状態情報が含まれています

ユーザー レジストリ

HKCU\Software\Microsoft\AppV

VReg など、ユーザー パッケージの状態情報が含まれています

ユーザー レジストリ クラス

HKCU\Software\Classes\AppV

追加のユーザー パッケージの状態情報が含まれています

この表に関するその他の詳細については、次のセクションおよびドキュメント全体にわたって説明しています。

パッケージ ストア

App-V クライアントは、パッケージ ストアにマウントされているアプリケーション資産を管理します。この場所は、既定では %ProgramData%\App-V ですが、セットアップ中またはセットアップ後に、ローカル レジストリ (HKLM\Software\Microsoft\AppV\Client\Streaming キーにある PackageInstallationRoot 値) を変更する Set-AppVClientConfiguration PowerShell コマンドを使用して構成できます。パッケージ ストアは、クライアント オペレーティング システム上のローカル パスに配置されている必要があります。個々のパッケージは、パッケージ GUID およびバージョン GUID に由来する名前を持つサブディレクトリ内のパッケージ ストアに格納されます。

特定のアプリケーションへのパスの例を次に示します。

C:\ProgramData\App-V\PackGUID\VersionGUID 

セットアップ中にパッケージ ストアの既定の場所を変更するには、「App-V クライアントを展開する方法」をご覧ください。

共有コンテンツ ストア

App-V クライアントが共有コンテンツ ストア モードで構成されている場合、ストリームの障害が発生したときにディスクには何も書き込まれません。そのため、パッケージが必要とするローカル ディスク領域は最小限になります (公開データ)。ローカル記憶域が制限される場合があり、高パフォーマンスのネットワーク上の場所 (SAN など) からアプリケーションをストリーミングすることが望ましい VDI 環境では、ディスク容量が少なくて済むため非常に効果的です。共有コンテンツ ストア モードの詳細については、https://go.microsoft.com/fwlink/p/?LinkId=392750 をご覧ください。

注意

App-V クライアントに共有コンテンツ ストア構成を使用している場合でも、マシン カタログとパッケージ ストアはローカル ドライブ上に配置されている必要があります。

パッケージ カタログ

App-V クライアントは、次に示す 2 つのファイル ベースの場所を管理します。

  • カタログ (ユーザー カタログおよびマシン カタログ)。

  • レジストリの場所 - 公開するパッケージの設定方法によって異なります。コンピューター用のカタログ (データ ストア) と個々のユーザー用のカタログがあります。マシン カタログにはすべてのユーザーに適用できるグローバル情報が格納され、ユーザー カタログには特定のユーザーに適用できる情報が格納されます。カタログは、動的構成とマニフェスト ファイルの集合体です。パッケージのバージョンごとに、個々のデータとしてファイルとレジストリの両方が存在します。

マシン カタログ

説明

パッケージが追加され、公開されると、コンピューター上でユーザーが使用できるパッケージ ドキュメントが格納されます。ただし、パッケージが公開時に "グローバル" である場合、すべてのユーザーが統合を利用できます。

パッケージがグローバルではない場合、統合は特定のユーザーのみに公開されますが、それでも、クライアント コンピューター上のどのユーザーでも変更や表示ができるグローバル リソースがあります (たとえば、パッケージ ディレクトリは共有ディスクにあります)。

コンピューター上のユーザーがパッケージを利用できる場合 (グローバルでも非グローバルでも)、マニフェストがマシン カタログに格納されます。パッケージがグローバルに公開される場合、動的構成ファイルがマシン カタログに格納されます。そのため、パッケージがグローバルかどうかは、マシン カタログ内にポリシー ファイル (UserDeploymentConfiguration ファイル) が存在かどうかによって決まることになります。

既定の記憶域の場所

%programdata%\Microsoft\AppV\Client\Catalog\

この場所はパッケージ ストアと同じ場所ではありません。パッケージ ストアは、パッケージ ファイルのゴールデン コピーまたはプリスティン コピーです。

マシン カタログ内のファイル

  • Manifest.xml

  • DeploymentConfiguration.xml

  • UserManifest.xml (グローバルに公開されたパッケージ)

  • UserDeploymentConfiguration.xml (グローバルに公開されたパッケージ)

パッケージが接続グループに含まれる場合に使用される追加のマシン カタログの場所

次の場所が上記の特定のパッケージに追加されます。

%programdata%\Microsoft\AppV\Client\Catalog\PackageGroups\ConGroupGUID\ConGroupVerGUID

パッケージが接続グループに含まれる場合にマシン カタログに追加されるファイル

  • PackageGroupDescriptor.xml

  • UserPackageGroupDescriptor.xml (グローバルに公開された接続グループ)

ユーザー カタログ

説明

公開プロセス中に作成されます。パッケージの公開に利用される情報を含みます。また、パッケージが特定のユーザーに対して確実にプロビジョニングされるように起動時にも使用されます。ローミングの場所に作成され、ユーザー固有の公開情報を含みます。

パッケージがユーザーに公開されると、ポリシー ファイルがユーザー カタログに格納されます。同時に、マニフェストのコピーもユーザー カタログに格納されます。ユーザーのパッケージ資格が削除されると、関連するパッケージ ファイルがユーザー カタログから削除されます。管理者は、ユーザー カタログに動的構成ファイルが存在するかどうかで、そのユーザーにパッケージが許可されているかどうかを確認できます。

移動ユーザーについては、App-V の従来の動作である既定でのユーザーのターゲット設定を維持するために、ユーザー カタログをローミングまたは共有の場所に配置する必要があります。権限とポリシーはコンピューターではなくユーザーに関連付けられるため、プロビジョニングされた後はユーザーと共に移動します。

既定の記憶域の場所

ppdata\roaming\Microsoft\AppV\Client\Catalog\Packages\PkgGUID\VerGUID

ユーザー カタログ内のファイル

  • UserManifest.xml

  • DynamicConfiguration.xml または UserDeploymentConfiguration.xml

パッケージが接続グループに含まれる場合に使用される追加のユーザー カタログの場所

次の場所が上記の特定のパッケージに追加されます。

appdata\roaming\Microsoft\AppV\Client\Catalog\PackageGroups\PkgGroupGUID\PkgGroupVerGUID

パッケージが接続グループに含まれる場合にマシン カタログに追加されるファイル

UserPackageGroupDescriptor.xml

ショートカット バックアップ

公開プロセス中に、App-V クライアントはすべてのショートカットと統合ポイントを %AppData%\Microsoft\AppV\Client\Integration\ShortCutBackups. にバックアップします。これにより、パッケージが非公開になった場合、これらの統合ポイントを以前のバージョンに復元できるようになります。

コピー オン ライト ファイル

パッケージ ストアには、公開サーバーからストリーミングされているパッケージ ファイルのプリスティン コピーが含まれています。App-V アプリケーションの通常操作中に、ユーザーまたはサービスがファイルの変更を必要とする場合があります。パッケージ ストアでは、アプリケーションの修復能力を維持するために、これらの変更は実行されずに削除されます。コピー オン ライト (Copy on Write: COW) と呼ばれるこれらの場所は、ローミングと非ローミングの両方の場所をサポートします。変更が保存される場所は、アプリケーションがネイティブ エクスペリエンスでの変更をどこに書き込むようプログラムされているかによって異なります。

COW ローミング

上記で説明したように、COW ローミングの場所には、通常の %AppData% または \Users\{username}\AppData\Roaming に移動することになるファイルとディレクトリへの変更が保存されます。その後、これらのディレクトリやファイルは、オペレーティング システムの設定に基づいてローミングされます。

COW ローカル

COW ローカルの場所はローミングの場所に似ていますが、そのディレクトリおよびファイルは、ローミング サポートが構成されている場合でも他のコンピューターにはローミングされません。上記で説明した COW ローカルの場所には標準的な Windows に適用される変更が保存されますが、その場所は %AppData% ではありません。表示されるディレクトリは環境により異なりますが、標準的な Windows 用には 2 つの場所が存在します (例: Common AppData および Common AppDataS)。S は、ログオンしたユーザーから昇格した別のユーザーとして仮想サービスが変更を要求した場合の、制限付きの場所を示します。S の付いていない場所にはユーザー ベースの変更が保存されます。

パッケージ レジストリ

アプリケーションがパッケージ レジストリ データにアクセスするには、まず App-V クライアントが、パッケージ レジストリ データをアプリケーションが利用できるようにする必要があります。App-V クライアントは、すべてのレジストリ データのバッキング ストアとして実際のレジストリを使用します。

新しいパッケージが App-V クライアントに追加されると、パッケージの REGISTRY.DAT ファイルのコピーが %ProgramData%\Microsoft\AppV\Client\VREG\{Version GUID}.dat に作成されます。ファイルの名前は、バージョン GUID に .DAT 拡張子が付いたものです。このコピーが作成される理由は、パッケージ内の実際のハイブ ファイルが使用されないようにするためです。これにより、後でパッケージが削除されるのを防ぐことになります。

パッケージ ストアの Registry.dat

 > 

%ProgramData%\Microsoft\AppV\Client\Vreg\{VersionGuid}.dat

パッケージの最初のアプリケーションがクライアント上で起動すると、クライアントはハイブ ファイルの内容をステージングまたはコピーし、代替場所の HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AppV\Client\Packages\PackageGuid\Versions\VersionGuid\REGISTRY でパッケージ レジストリ データを再作成します。ステージング済みのレジストリ データには、マシン データとユーザー データの 2 種類が含まれます。マシン データは、コンピューター上のすべてのユーザー間で共有されます。ユーザー データは、ユーザーごとにユーザー固有の場所である HKCU\Software\Microsoft\AppV\Client\Packages\PackageGuid\Registry\User にステージングされます。マシン データはパッケージの削除時に完全に削除され、ユーザー データはユーザーの公開取り消し操作時に削除されます。

パッケージ レジストリ ステージングと接続グループ レジストリ ステージングの比較

接続グループが存在する場合、以前のレジストリ ステージングのプロセスは true のままですが、処理するハイブ ファイルは 1 つではなく複数あります。各ファイルは、書き込みが競合した場合は最初の書き込みが優先されるルールに従い、接続グループの XML に記述されている順番で処理されます。

ステージング済みのレジストリは、単一パッケージの場合と同じ状態を維持します。ステージング済みのユーザー レジストリ データは無効にされるまで接続グループに残ります。ステージング済みのマシン レジストリ データは接続グループの削除時に削除されます。

仮想レジストリ

仮想レジストリ (Virtual Registry: VREG) の目的は、パッケージ レジストリとネイティブ レジストリを、単一のビューに結合してアプリケーションに提供することです。また、コピー オン ライト (COW) 機能も提供します。この機能によって、仮想プロセスのコンテキストからレジストリに加えられた変更はすべて個々の COW の場所に適用されます。これは、VREG が個々のレジストリの場所を 3 つまで結合して、レジストリ内のデータが追加される場所 (COW -> パッケージ -> ネイティブ) に基づく単一のビューにする必要があることを意味します。レジストリ データに対する要求があると、VREG はそのデータが見つかるまで順番に探します。つまり、COW の場所に値が格納されていれば他の場所まで探しに行くことはありませんが、COW にデータがなければパッケージ、ネイティブの順に適切なデータが見つかるまで探します。

レジストリの場所

パッケージ レジストリの場所と接続グループの場所は 2 つずつあり、パッケージが個別に公開されているか、接続グループの一部として公開されているかによって、App-V クライアントがどこにレジストリ情報を格納するかが決まります。パッケージ用の COW の場所と接続グループ用の COW の場所は 3 つずつあり、これらは VREG によって作成され、管理されます。パッケージおよび接続グループの設定は共有されません。

単一パッケージの VReg:

場所

説明

COW

  • Machine Registry\Client\Packages\PkgGUID\REGISTRY (管理者特権でのプロセスのみが書き込み可能)

  • User Registry\Client\Packages\PkgGUID\REGISTRY (Software\Classes を除く HKCU の下に書き込まれたものすべて)

  • User Registry Classes\Client\Packages\PkgGUID\REGISTRY (HKCU\Software\Classes の書き込み、管理者特権以外でのプロセスの HKLM)

パッケージ

  • Machine Registry\Client\Packages\PkgGUID\Versions\VerGuid\Registry\Machine

  • User Registry Classes\Client\Packages\PkgGUID\Versions\VerGUID\Registry

ネイティブ

  • ネイティブ アプリケーション レジストリの場所

 

接続グループの VReg:

場所

説明

COW

  • Machine Registry\Client\PackageGroups\GrpGUID\REGISTRY (管理者特権でのプロセスのみが書き込み可能)

  • User Registry\Client\PackageGroups\GrpGUID\REGISTRY (Software\Classes を除く HKCU に書き込まれたものすべて)

  • User Registry Classes\Client\PackageGroups\GrpGUID\REGISTRY

パッケージ

  • Machine Registry\Client\PackageGroups\GrpGUID\Versions\VerGUID\REGISTRY

  • User Registry Classes\Client\PackageGroups\GrpGUID\Versions\VerGUID\REGISTRY

ネイティブ

  1. ネイティブ アプリケーション レジストリの場所

 

HKLM 用の COW の場所は 2 つあります。管理者特権および管理者特権以外でのプロセスです。管理者特権でのプロセスは、常に HKLM の変更を HKLM の下のセキュリティで保護された COW に書き込みます。管理者特権以外でのプロセスは、常に HKLM の変更を HKCU\Software\Classes の下のセキュリティで保護されていない COW に書き込みます。アプリケーションが HKLM から変更を読み取ると、管理者特権でのプロセスは HKLM の下のセキュリティで保護された COW から変更を読み取ります。管理者特権以外でのプロセスは両方から読み取りますが、セキュリティで保護されていない COW での変更を優先します。

パススルー キー

管理者は、パススルー キーを使用して、特定のキーを構成できます。それらのキーは、パッケージおよび COW の場所をバイパスして、ネイティブ レジストリから読み取る必要があります。パススルーの場所はコンピューターに対してグローバル (パッケージ固有ではない) であり、キーへのパスを追加することで構成できます。これは HKLM\Software\Microsoft\AppV\Subsystem\VirtualRegistry キーの、PassThroughPaths という REG_MULTI_SZ 値へのパススルーとして扱う必要があります。この複数行文字列値 (とその子) の下に示されるキーは、すべてパススルーとして扱われます。

既定では、次の場所はパススルーの場所として構成されます。

  • HKEY_CURRENT_USER\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppModel

  • HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppModel

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\Autologger

  • HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib

  • HKEY_LOCAL_MACHINE\SOFTWARE\Policies

  • HKEY_CURRENT_USER\SOFTWARE\Policies

パススルー キーの目的は、仮想アプリケーションが VReg 内にレジストリ データを書き込まないようにすることで、これは仮想でないアプリケーションが正常な動作または統合を行うために必要なことです。Policies キーは、パッケージごとの設定ではなく、管理者によって設定されるグループ ポリシー ベースの設定が確実に使用されるようにしています。AppModel キーは、Windows Modern UI ベースのアプリケーションとの統合に必要です。既定のパススルー キーに変更を加えないことをお勧めしますが、場合によっては、アプリケーションの挙動に基づいて追加のパススルー キーを加える必要があります。

App-V パッケージ ストアの動作

App-V 5 はパッケージ ストアを管理します。パッケージ ストアは appvファイルから展開された資産ファイルが保存されている場所です。既定では、この場所は %ProgramData%\App-V に格納されており、ストレージ機能に関しては空きディスク領域によってのみ制限されます。パッケージ ストアは、前のセクションで説明したように、パッケージおよびバージョンの GUID 別に整理されています。

パッケージの追加

App-V パッケージは、コンピューターへの追加時に App-V クライアントを使用してステージングされます。App-V クライアントは、オンデマンドでのステージングを提供します。公開または手動での Add-AppVClientPackage の実行時に、パッケージ ストア (c:\programdata\App-V\{PkgGUID}\{VerGUID}) 内にデータ構造が構築されます。パッケージ ファイルは、StreamMap.xml で定義された公開ブロック内で識別されてシステムに追加され、起動時に適切なアプリケーション資産が確実に存在するよう、最上位フォルダーおよび子ファイルがステージングされます。

パッケージのマウント

パッケージは、PowerShell Mount-AppVClientPackage を使用して明示的に読み込むか、または App-V Client UI を使用してダウンロードできます。この操作によって、パッケージ全体がパッケージ ストアに完全に読み込まれます。

パッケージのストリーミング

App-V クライアントの構成によって、ストリーミングの既定の動作を変更できます。すべてのストリーミング ポリシーは、HKEY_LOCAL_MAcHINE\Software\Microsoft\AppV\Client\Streaming レジストリ キーの下に格納されます。ポリシーは Set-AppvClientConfiguration PowerShell コマンドレットを使用して設定されます。ストリーミングには、次のポリシーが適用されます。

ポリシー 説明

AllowHighCostLaunch

Windows 8 では 3G および移動体通信ネットワークでストリーミングできます

AutoLoad

バック グラウンド読み込み設定を指定します。

  • 0 - 無効

  • 1 – 以前使用されたパッケージのみ

  • 2 – すべてのパッケージ

PackageInstallationRoot

ローカル コンピューターのパッケージ ストア用ルート フォルダー

PackageSourceRoot

パッケージのストリーミング元でのルート上書き

SharedContentStoreMode

VDI シナリオ用の共有コンテンツ ストアを使用できるようにします

 

これらの設定は、クライアントに対する App-V パッケージ資産のストリーミングの動作に影響します。既定では、App-V は初期の公開機能ブロックおよびプライマリ機能ブロックのダウンロード後に必要になる資産のみをダウンロードします。パッケージのストリーミングに関連する次の 3 つの特定の動作について説明します。

  • バックグラウンド ストリーミング

  • 最適化されたストリーミング

  • ストリームの障害

バックグラウンド ストリーミング

PowerShell コマンドレット Get-AppvClientConfiguration は、AutoLoad 設定と共にバックグラウンド ストリーミングの現在のモードを決めるために使用でき、Set-AppvClientConfiguration コマンドレットまたはレジストリ (HKLM\SOFTWARE\Microsoft\AppV\ClientStreaming key) を使用して変更できます。バック グラウンド ストリーミングは既定の設定であり、ここでは Autoload 設定が以前使用したパッケージをダウンロードするよう設定されています。既定の設定 (値 = 1) に基づく動作によって、アプリケーションの起動後に、バックグラウンドで App-V データ ブロックがダウンロードされます。この設定は、パッケージが起動されているかどうかによって、すべてが無効 (値 = 0) になる場合と、すべてのパッケージに対して有効 (値 = 2) になる場合があります。

最適化されたストリーミング

App-V パッケージは、シーケンス処理中に、プライマリ機能ブロックを使用して構成できます。この設定により、シーケンス処理のエンジニアは 1 つまたは複数の特定のアプリケーションの起動ファイルを監視し、App-V パッケージ内にある任意のアプリケーションの初回起動時にストリーミングを行うために、パッケージ内のデータ ブロックをマークすることができます。

ストリームの障害

任意の公開データおよびプライマリ機能ブロックの初回ストリーミングの後、追加のファイルを要求すると、ストリームの障害が発生します。これらのデータ ブロックは、必要に応じてパッケージ ストアにダウンロードされます。これによりユーザーは、通常、パッケージを起動し普通のタスクを実行するのには十分な、パッケージのごく一部のみをダウンロードできます。それ以外のブロックはすべて、ユーザーが現在パッケージ ストアにないデータを必要とする操作を開始したときにダウンロードされます。

App-V パッケージのストリーミングの詳細については、https://go.microsoft.com/fwlink/?LinkId=392770 をご覧ください。

ストリーミング最適化のシーケンス処理については、https://go.microsoft.com/fwlink/?LinkId=392771 をご覧ください。

パッケージのアップグレード

App-V パッケージは、アプリケーションのライフサイクル全体にわたって更新が必要です。App-V パッケージのアップグレードは、パッケージ公開の操作に似ていますが、その理由はどちらのバージョンも独自の PackageRoot の場所 %ProgramData%\App-V\{PkgGUID}\{newVerGUID} に作成される点にあります。アップグレードの操作は、同一パッケージの別バージョンにある、同一のストリーミングされた各ファイルへのハード リンクを作成することにより最適化されます。

パッケージの削除

パッケージが削除された場合の App-V クライアントの動作は、削除方法によって異なります。App-V のフル インフラストラクチャを使用してアプリケーションを非公開にすると、ユーザー カタログ ファイル (グローバル公開アプリケーションの場合はマシン カタログ) は削除されますが、パッケージ ストアおよび COW の場所は保持されます。PowerShell コマンドレット Remove-AppVClientPackge を使用して App-V パッケージを削除すると、パッケージ ストアの場所は完全に削除されます。管理サーバーから App-V パッケージを非公開にしても、削除操作が実行されることはありません。どちらの操作も、パッケージ ストアのパッケージ ファイルを削除することはありません。

レジストリとデータのローミング

App-V 5 では、使用するアプリケーションの記述方法によっては、ローミング時に、ネイティブに近いエクスペリエンスを実現できます。既定では、App-V はオペレーティング システムのローミングの構成に基づいて、ローミングの場所に格納されている AppData をローミングします。それ以外のファイル ベース データの記憶域用の場所はローミングされない場所であるため、コンピューター間でのローミングは行われません。

ローミング要件とユーザー カタログ データ ストレージ

App-V は、ユーザーのカタログの状態を表すデータを次の形式で格納します。

  • %appdata%\Microsoft\AppV\Client\Catalog の下にあるファイル

  • HKEY_CURRENT_USER\Software\Microsoft\AppV\Client\Packages の下にあるレジストリ設定

これらのファイルとレジストリ設定は全体としてユーザーのカタログを表すため、両方がローミングされるか、またはどちらも特定のユーザーに対してはローミングされないことが必要です。App-V はローミング %AppData% をサポートしませんが、ユーザーのプロファイル (レジストリ) のローミングもサポートしません。または、その逆の場合もあります。

注意

Repair-AppvClientPackage コマンドレットは、HKEY_CURRENT_USER の下にあるユーザーの App-V 状態が見つからないか、%appdata% 内のデータと一致しない場合、パッケージの公開状態を修復しません。

レジストリ ベースのデータ

App-V レジストリのローミングは、次の表に示すように 2 つのシナリオに分けることができます。

シナリオ 説明

標準ユーザーとして実行されるアプリケーション

標準ユーザーが App-V のアプリケーションを起動すると、App-V アプリケーションの HKLM と HKCU の両方が、コンピューター上の HKCU ハイブに格納されます。これにより、次の 2 つの異なるパスが生成されます。

  • HKLM: HKCU\SOFTWARE\Classes\AppV\Client\Packages\{PkgGUID}\REGISTRY\MACHINE\SOFTWARE

  • HKCU: HKCU\SOFTWARE\Microsoft\AppV\Client\Packages\{PkgGUID}\REGISTRY\USER\{UserSID}\SOFTWARE

これらの場所は、オペレーティング システムの設定に基づいて、ローミングが有効にされます。

昇格によって実行されるアプリケーション

アプリケーションが昇格によって起動された場合:

  • HKLM データは、ローカル コンピューター上の HKLM ハイブに格納されます。

  • HKCU データは、ユーザー レジストリの場所に格納されます。

このシナリオでは、これらの設定は通常のオペレーティング システムのローミング構成によってはローミングされず、結果として生成されるレジストリ キーとレジストリ値は、次の場所に格納されます。

  • HKLM\SOFTWARE\Microsoft\AppV\Client\Packages\{PkgGUID}\{UserSID}\REGISTRY\MACHINE\SOFTWARE

  • HKCU\SOFTWARE\Microsoft\AppV\Client\Packages\{PkgGUID}\Registry\User\{UserSID}\SOFTWARE

App-V とフォルダー リダイレクト

App-V 5.0 SP2 では、ローミング AppData フォルダー (%AppData%) のフォルダー リダイレクトがサポートされています。仮想環境が開始されると、ユーザーのローミング AppData ディレクトリからローミング AppData 状態がローカル キャッシュにコピーされます。反対に仮想環境がシャットダウンすると、特定のユーザーのローミング AppData に関連付けられたローカル キャッシュが、そのユーザーのローミング AppData ディレクトリの実際の場所に転送されます。

標準的なパッケージでは、AppData\Local および AppData\Roaming の両方の設定用に、ユーザーのバッキング ストア内にいくつかの場所がマップされています。これらの場所は、各ユーザーのプロファイル内に格納されているコピー オン ライトの場所であり、パッケージ VFS ディレクトリに加えられた変更を保存するため、および既定のパッケージ VFS を保護するために使用されます。

次の表は、フォルダー リダイレクトが実装されていない場合のローカルおよびローミングの場所を示しています。

パッケージ内の VFS ディレクトリ バッキング ストアのマップされた場所

ProgramFilesX86

C:\users\jsmith\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\ProgramFilesX86

SystemX86

C:\users\jsmith\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\SystemX86

Windows

C:\users\jsmith\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\Windows

appv_ROOT

C:\users\jsmith\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\appv_ROOT

AppData

C:\users\jsmith\AppData\Roaming\Microsoft\AppV\Client\VFS\<GUID>\AppData

 

次の表は、%AppData% のフォルダー リダイレクトが実装されており、その場所が (通常はネットワーク上の場所に) リダイレクトされる場合のローカルおよびローミングの場所を示しています。

パッケージ内の VFS ディレクトリ バッキング ストアのマップされた場所

ProgramFilesX86

C:\users\jsmith\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\ProgramFilesX86

SystemX86

C:\users\jsmith\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\SystemX86

Windows

C:\users\jsmith\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\Windows

appv_ROOT

C:\users\jsmith\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\appv_ROOT

AppData

\\Fileserver\users\jsmith\roaming\Microsoft\AppV\Client\VFS\<GUID>\AppData

 

現在の App-V クライアント VFS ドライバーはネットワーク上の場所に書き込みができないため、App-V クライアントはフォルダー リダイレクトの存在を検出し、公開中および仮想環境の開始時にローカル ドライブ上のデータをコピーします。ユーザーが App-V アプリケーションを終了し、App-V クライアントが仮想環境を終了すると、VFS AppData のローカル ストレージはネットワーク上にコピーされ、別のコンピューターにローミングできるようになり、そこで処理が繰り返されます。プロセスの詳細な手順は、次のとおりです。

  1. 公開中または仮想環境の起動時に、App-V クライアントは AppData ディレクトリの場所を検出します。

  2. ローミング AppData のパスがローカルであるか、またはマップされている AppData\Roaming の場所がない場合は、何も起きません。

  3. ローミング AppData のパスがローカルでない場合、VFS AppData ディレクトリは、ローカル AppData ディレクトリにマップされます。

このプロセスによって、ローカルではない %AppData% が App-V クライアント VFS ドライバーによってサポートされていないという問題が解決されます。ただし、この新しい場所に格納されているデータは、フォルダー リダイレクトではローミングされません。アプリケーション実行中のすべての変更はローカル AppData の場所で行われます。この変更はリダイレクトされた場所にコピーする必要があります。このプロセスの詳細な手順は、次のとおりです。

  1. App-V アプリケーションがシャットダウンし、それにより仮想環境がシャットダウンします。

  2. ローミング AppData の場所のローカル キャッシュは圧縮され、ZIP ファイルに格納されます。

  3. ファイルの名前には、ZIP パッケージ化プロセスの終了時のタイムスタンプが使用されます。

  4. タイムスタンプが、判明している最後の AppData タイプスタンプとしてレジストリ HKEY_CURRENT_USER\Software\Microsoft\AppV\Client\Packages\<GUID>\AppDataTime に記録されます。

  5. ローミング AppData ディレクトリにアップロードされた ZIP ファイルを評価し、開始するために、フォルダー リダイレクト プロセスが呼び出されます。

タイムスタンプは、競合が存在する場合 "最後の書き込みを優先" シナリオを確定するために使用され、App-V アプリケーションが公開されたとき、または仮想環境が開始されたときに、データのダウンロードを最適化するために使用されます。フォルダー リダイレクトは、サポート ポリシーがカバーするその他のクライアントからデータを利用できるようにし、AppData\Roaming データをクライアント上のローカル AppData の場所に格納するプロセスを開始します。詳細なプロセスは、次のとおりです。

  1. ユーザーは、アプリケーションの起動によって仮想環境を開始します。

  2. アプリケーションの仮想環境は、最新のタイムスタンプを持つ ZIP ファイルが存在する場合はそれを確認します。

  3. レジストリに、判明している最後のアップロードされたタイムスタンプがある場合、それを確認します。

  4. 判明している最後のローカル アップロードのタイムスタンプが、ZIP ファイルのタイムスタンプと同じかそれよりも後でない限り、最新の ZIP ファイルがダウンロードされます。

  5. 判明している最後のローカル アップロードのタイムスタンプが、ローミング AppData の場所での最新の ZIP ファイルのタイムスタンプよりも前の場合、その ZIP ファイルはユーザーのプロファイル内のローカル一時ディレクトリに展開されます。

  6. ZIP ファイルが正常に展開された後、ローミング AppData ディレクトリのローカル キャッシュの名前が変更され、新しいデータがその場所に移されます。

  7. 名前を変更したディレクトリが削除され、最後に保存されたローミング AppData データを使用してアプリケーションが開きます。

これによって、AppData\Roaming の場所に存在するアプリケーション設定のローミングが正常に完了します。他に説明が必要な唯一の状況は、パッケージの修復操作です。プロセスの詳細は、次のとおりです。

  1. 修復中に、ユーザーのローミング AppData ディレクトリへのパスがローカル以外かどうかを検出します。

  2. 予想されるローミングおよびローカル AppData の場所に再作成された、ローカル以外のローミング AppData パス ターゲットをマッピングします。

  3. レジストリにタイムスタンプが格納されている場合、それを削除します。

このプロセスにより、AppData のローカルおよびネットワーク上の両方の場所が再作成され、タイムスタンプのレジストリ レコードが削除されます。

App-V クライアント アプリケーションのライフ サイクル管理

App-V のフル インフラストラクチャでは、アプリケーションがシーケンス処理された後、App-V 管理サーバーによって管理され、公開サーバーによってユーザーまたはコンピューターに公開されます。このセクションでは、通常の App-V アプリケーションのライフサイクルにおいて実行される操作 (追加、公開、起動、アップグレード、および削除) と、App-V クライアントの視点から変更および修正されるファイルやレジストリの場所について詳しく説明します。App-V クライアントの操作は、App-V クライアントが稼働しているコンピューター上で開始される一連の PowerShell コマンドとして実行されます。

このドキュメントでは、App-V のフル インフラストラクチャ ソリューションに焦点を当てて説明します。Configuration Manager 2012 を使用した App-V アプリケーションの統合の詳細については、https://go.microsoft.com/fwlink/?LinkId=392773 をご覧ください。

App-V アプリケーションのライフサイクル タスクは、ユーザーのログイン (既定)、コンピューターの起動、または時間指定のバックグラウンド操作の時点でトリガーされます。公開サーバー、更新間隔、パッケージ スクリプトの有効化などの App-V クライアント操作の設定は、クライアントのセットアップ中、または PowerShell コマンドによるセットアップ後に構成されます。TechNet の「App-V クライアントを展開する方法」にある「クライアントを展開する方法」をご覧ください。または、次の PowerShell を使用します。

get-command *appv*

公開の更新

公開の更新プロセスは、App-V クライアント上で実行されるいくつかの簡単な操作で構成されます。App-V は、アプリケーション仮想化テクノロジであって、タスク スケジューリング テクノロジではありません。そのため、ユーザーのログオン時やコンピューターの起動時にスケジュールされた間隔でプロセスを実行するために Windows タスク スケジューラが使用されます。上に示したセットアップ中に行われるクライアントの構成は、大規模なコンピューター グループに正しい設定でクライアントを配布する場合に推奨される方法です。これらのクライアント設定は、次の PowerShell コマンドレットを使って構成できます。

  • Add-AppVPublishingServer: App-V パッケージを提供する App-V 公開サーバーを使ってクライアントを構成します。

  • Set-AppVPublishingServer: App-V 公開サーバーの現在の設定を変更します。

  • Set-AppVClientConfiguration: App-V クライアントの現在の設定を変更します。

  • Sync-AppVPublishingServer: App-V 公開の更新プロセスを手動で開始します。これは、公開サーバーの構成時に作成される、スケジュールされたタスクでも使用されます。

次のセクションでは、App-V 公開の更新のさまざまなフェーズで実行される操作について詳しく説明します。トピックは、次のとおりです。

  • App-V パッケージの追加

  • App-V パッケージの公開

App-V パッケージの追加

公開の更新プロセスの最初の手順は、クライアントに App-V パッケージを追加することです。最終的な結果は PowerShell の Add-AppVClientPackage コマンドレットと同じですが、公開の更新の追加プロセス中に構成された公開サーバーが照会され、さらに詳細な情報を得るためにクライアントにアプリケーションの概要リストを渡す点のみが、単一パッケージの追加操作とは異なります。パッケージや接続グループの追加または更新についてクライアントを構成することでプロセスを継続し、その後、AppV ファイルにアクセスします。次に、appv ファイルの内容が展開され、ローカルのオペレーティング システム上の適切な場所に配置されます。パッケージがストリーム フォールト用に構成されていると仮定して、プロセスの詳細なワークフローを次に示します。

App-V パッケージを追加する方法

  1. PowerShell またはタスク シーケンスを使用した、手動による公開の更新プロセスの開始。

    1. App-V クライアントは HTTP 接続を確立し、ターゲットに基づいてアプリケーションの一覧を要求します。公開の更新プロセスでは、コンピューターまたはユーザーへのターゲット設定がサポートされています。

    2. App-V 公開サーバーは、開始ターゲット、ユーザー、またはコンピューターの ID を使用し、許可されたアプリケーションの一覧についてデータベースに照会します。アプリケーションの一覧は XML 応答として提供され、それをクライアントが使用して、パッケージ ベースの詳細情報を求める追加要求をサーバーに送信します。

  2. App-V クライアント上の公開エージェントは、以下の通し番号が振られたすべてのアクションを実行します。

    接続グループの一部であるパッケージ バージョンの更新を処理できないため、非公開または無効にされているすべての接続グループを評価します。

  3. 追加または更新の操作を識別することによって、パッケージを構成します。

    1. App-V クライアントは、Windows の AppX API を利用し、公開サーバーから appv ファイルにアクセスします。

    2. パッケージ ファイルが開かれ、AppXManifest.xml と StreamMap.xml がパッケージ ストアにダウンロードされます。

    3. StreamMap.xml で定義されている公開ブロックのデータを完全にストリーミングします。Package Store\PkgGUID\VerGUID\Root に公開ブロックのデータを格納します。

      • Icons: 拡張ポイントのターゲット。

      • Portable Executable Headers (PE Headers): ディスク上でのイメージの不足に関する基本情報を含む拡張ポイントのターゲット。直接またはファイルの種類によってアクセスされます。

      • Scripts: 公開プロセス全体で使用するためのダウンロード スクリプト ディレクトリ。

    4. パッケージ ストアにデータを追加します。

      1. 一覧にあるすべてのディレクトリについて、展開したパッケージを表すスパース ファイルをディスク上に作成します。

      2. ルートの下にある最上位ファイルおよびディレクトリをステージングします。

      3. その他すべてのファイルは、ディレクトリがディスク上の一覧にスパースとして追加され、要求時にストリーミングされるときに作成されます。

    5. マシン カタログのエントリを作成します。パッケージ ファイルから Manifest.xml と DeploymentConfiguration.xml を作成します (パッケージ内に DeploymentConfiguration.xml がない場合、プレースホルダーが作成されます)。

    6. HKLM\Software\Microsoft\AppV\Client\Packages\PkgGUID\Versions\VerGUID\Catalog レジストリにパッケージ ストアの場所を作成します。

    7. パッケージ ストアから %ProgramData%\Microsoft\AppV\Client\VReg\{VersionGUID}.dat に Registry.dat ファイルを作成します。

    8. App-V カーネル モード ドライバー HKLM\Microsoft\Software\AppV\MAV を使用してパッケージを登録します。

    9. パッケージ追加のタイミング用に AppxManifest.xml または DeploymentConfig.xml ファイルからスクリプトを呼び出します。

  4. 追加と、有効化または無効化によって接続グループを構成します。

  5. ターゲット (ユーザーまたはコンピューター) に公開されていないオブジェクトを削除します。

    注意

    これによりパッケージは削除されませんが、特定のターゲット (ユーザーまたはコンピューター) の統合ポイント、およびユーザー カタログ ファイル (グローバルに公開される場合はマシン カタログ ファイル) が削除されます。

  6. バックグラウンド読み込みを呼び出し、クライアントの構成に基づいてマウントします。

  7. コンピューターまたはユーザーの公開情報が既に含まれているパッケージは、すぐに復元されます。

    注意

    この状態は、非公開ではなく、バックグラウンドのパッケージ追加による削除の結果として生じます。

これにより、公開の更新プロセスの、App-V パッケージの追加が完了します。次の手順は、特定のターゲット (コンピューターまたはユーザー) へのパッケージの公開です。

パッケージ追加ファイルとレジストリ データ

App-V パッケージの公開

公開の更新操作中、特定の公開操作 (Publish-AppVClientPackage) は、ユーザー カタログにエントリを追加し、ユーザーに権限をマッピングして、ローカル ストアを識別し、最後に統合の手順をすべて完了することで終了します。詳細な手順を次に示します。

App-V パッケージを公開する方法

  1. パッケージのエントリが、ユーザー カタログに追加されます。

    1. ユーザー対象パッケージ: UserDeploymentConfiguration.xml と UserManifest.xml はコンピューター上のユーザー カタログに配置されています。

    2. マシン対象 (グローバル) パッケージ: UserDeploymentConfiguration.xml はマシン カタログに配置されています。

  2. カーネル モード ドライバーを使用して HKLM\Software\Microsoft\AppV\MAV のユーザーにパッケージを登録します。

  3. 統合タスクを実行します。

    1. 拡張ポイントを作成します。

    2. ユーザーのレジストリおよびローミング プロファイル (ショートカット バックアップ) にバックアップ情報を格納します。

      注意

      これにより、パッケージが非公開の場合に拡張ポイントを復元できます。

    3. 公開のタイミングの対象となるスクリプトを実行します。

接続グループに含まれている App-V パッケージの公開は、上記の手順とよく似ています。接続グループの場合、特定のカタログ情報を格納するパスには、Catalog Directory の子として PackageGroups が含まれています。詳細については、上記のマシン カタログおよびユーザー カタログの情報をご確認ください。

パッケージ追加ファイルとレジストリ データ - グローバル

アプリケーションの起動

公開の更新プロセス後、ユーザーは App-V アプリケーションを起動し、その後、再び起動します。プロセスは非常に単純で、最小限のネットワーク トラフィックで迅速に起動できるよう最適化されています。App-V クライアントは、ユーザー カタログへのパスを確認して、ファイルが公開中に作成されたかどうかを調べます。パッケージを起動する権限が確立されると、App-V クライアントは仮想環境を作成し、その間に、必要なすべてのデータのストリーミングを開始して、適切なマニフェストおよび展開の構成ファイルを適用します。特定のパッケージおよびアプリケーションに対して仮想環境の作成と構成が終わると、アプリケーションが開始されます。

App-V アプリケーションを起動する方法

  1. ユーザーは、ショートカットまたはファイルの種類の呼び出しをクリックして、アプリケーションを起動します。

  2. App-V クライアントは、次のファイルがユーザー カタログに存在しているかどうかを確認します。

    • UserDeploymentConfiguration.xml

    • UserManifest.xml

  3. ファイルが存在する場合、その特定のユーザーに対してアプリケーションが許可され、アプリケーションは起動するためのプロセスを開始します。この時点では、ネットワーク トラフィックはありません。

  4. 次に、App-V クライアントは、App-V クライアント サービスに登録したパッケージのパスがレジストリ内にあるかどうかを確認します。

  5. パッケージ ストアへのパスが見つかると、仮想環境が作成されます。これが初回の起動である場合、プライマリ機能ブロックが存在すれば、ダウンロードします。

  6. ダウンロード後、App-V クライアント サービスがマニフェストと展開の構成ファイルを使用して仮想環境を構成し、すべての App-V サブシステムが読み込まれます。

  7. アプリケーションが起動します。パッケージ ストア内の不足しているファイル (スパース ファイル) については、必要に応じて App-V によってそのファイルのストリームの障害が発生します。

    パッケージ追加ファイルとレジストリ データ - ストリーム

App-V パッケージのアップグレード

App-V 5 パッケージのアップグレード プロセスは、以前のバージョンの App-V とは異なります。App-V はさまざまなユーザーに許可された、コンピューター上にある同じパッケージの複数のバージョンをサポートします。パッケージ ストアおよびカタログは新しいリソースを使用して更新されるため、パッケージのバージョンはいつでも追加ができます。新しいバージョンのリソースの追加に唯一固有のプロセスは、記憶域の最適化です。アップグレード中に、新しいファイルだけが、新しいバージョンのストアの場所に追加され、変更されていないファイルのハード リンクが作成されます。これにより、記憶域全体は 1 つのディスクの場所にファイルが存在するだけになるまで減少し、それがディスク上のファイルの場所エントリを持つすべてのフォルダーに投影されます。App-V パッケージのアップグレードに関する具体的な詳細は次のとおりです。

App-V パッケージをアップグレードする方法

  1. App-V クライアントは公開の更新を実行し、より新しいバージョンの App-V パッケージを検出します。

  2. パッケージのエントリが、新しいバージョンの適切なカタログに追加されます。

    1. ユーザー対象パッケージ: UserDeploymentConfiguration.xml と UserManifest.xml は、コンピューター上の appdata\roaming\Microsoft\AppV\Client\Catalog\Packages\PkgGUID\VerGUID にあるユーザー カタログ内に配置されます。

    2. マシン対象 (グローバル) パッケージ: UserDeploymentConfiguration.xml は、%programdata%\Microsoft\AppV\Client\Catalog\Packages\PkgGUID\VerGUID にあるマシン カタログ内に配置されます。

  3. カーネル モード ドライバーを使用して HKLM\Software\Microsoft\AppV\MAV のユーザーにパッケージを登録します。

  4. 統合タスクを実行します。

    1. マニフェストと動的構成ファイルから拡張ポイント (Extensions Points: EP) を統合します。
    1. ファイル ベースの EP データは、パッケージ ストアから接合ポイントを利用して AppData フォルダーに格納します。

    2. 新しいバージョンが利用可能になるときには、バージョン 1 の EP が既に存在しています。

    3. 新しいまたは更新されたすべての拡張機能ポイント用のマシン カタログまたはユーザー カタログ内のバージョン 2 の場所に、拡張ポイントが移されます。

  5. 公開のタイミングの対象となるスクリプトを実行します。

  6. 必要に応じ、サイド バイ サイド アセンブリをインストールします。

使用中の App-V パッケージをアップグレードします。

App-V 5 SP2 以降: エンド ユーザーに使用されているパッケージをアップグレードしようとすると、アップグレード タスクは保留状態になります。アップグレードは、次のルールに従って、後で実行されます。

タスクの種類 適用されるルール

ユーザー ベースのタスク (例: パッケージをユーザーに公開する)

保留中のタスクは、ユーザーがログオフし、再びログオンした後に実行されます。

グローバル ベースのタスク (例: 接続グループをグローバルに有効にする)

保留中のタスクは、コンピューターがシャットダウンされ、再起動されたときに実行されます。

タスクが保留状態の場合、App-V クライアントは、次のように保留中のタスクのレジストリ キーの生成も行います。

ユーザー ベースまたはグローバル ベースのタスク レジストリ キーが生成される場所

ユーザー ベースのタスク

KEY_CURRENT_USER\Software\Microsoft\AppV\Client\PendingTasks

グローバル ベースのタスク

HKEY_LOCAL_MACHINE\Software\Microsoft\AppV\Client\PendingTasks

ユーザーが新しいバージョンのパッケージを使用できるようになるには、次の操作を完了する必要があります。

タスク 詳細情報

パッケージをコンピューターに追加する

これはコンピューターに固有のタスクで、前述したパッケージの追加に関するセクションの手順を完了することにより、いつでも実行できます。

パッケージを公開する

手順については、前述したパッケージの公開についてのセクションをご覧ください。このプロセスでは、システム上の拡張ポイントを更新することが必要です。このタスクを完了すると、エンド ユーザーがアプリケーションを使用できなくなります。

パッケージを更新するためのガイドとして、次のシナリオ例を使用してください。

シナリオ 要件

アップグレードをしようとするときに App-V パッケージが使用されていない

次のパッケージ コンポーネントはどれも使用できません。仮想アプリケーション、COM サーバー、またはシェル拡張。

管理者が新しいバージョンのパッケージを公開すると、次にパッケージ内のコンポーネントまたはアプリケーションが起動されたときに、アップグレードが実行されます。新しいバージョンのパッケージがストリーミングされて、実行されます。App-V 5 SP2 におけるこのシナリオは、前回までの App-V 5 のリリースから何も変更されていません。

管理者が新しいバージョンのパッケージを公開するときに App-V パッケージが使用されている

App-V クライアントによってアップグレード操作が保留中になります。つまり、アップグレード操作はキューに登録され、後でパッケージが使用されていないときに実行されます。

パッケージ アプリケーションが使用されている場合、ユーザーが仮想アプリケーションを終了すると、その後にアップグレードが開始できます。

パッケージにシェル拡張 (Office 2013) が含まれており、それがエクスプローラーによって完全に読み込まれている場合、ユーザーはログインできません。App-V パッケージのアップグレードを開始するために、ユーザーはログオフしてから再度ログインする必要があります。

グローバル公開とユーザー公開の比較

App-V パッケージは、次の 2 つの方法のいずれかで公開できます。1 つは、App-V パッケージを特定のユーザーまたはユーザー グループに許可するユーザー公開です。もう 1 つは、App-V パッケージをコンピューター全体 (コンピューターのすべてのユーザー) に許可するグローバル公開です。パッケージのアップグレードが保留になり、App-V パッケージが使用されていなければ、この 2 種類の公開方法を検討してください。

  • グローバル公開: アプリケーションはコンピューターに対して公開され、そのコンピューター上のすべてのユーザーが使用できます。App-V クライアント サービスが開始するとアップグレードが始まります。そのため、コンピューターが再起動されます。

  • ユーザー公開: アプリケーションはユーザーに対して公開されます。コンピューター上に複数のユーザーが存在する場合、ユーザーのサブセットに対してアプリケーションを公開できます。アップグレードは、ユーザーのログイン時または再度の公開時に実行されます (ConfigMgr ポリシーの更新と評価、または App-V の定期公開/更新により定期的に、あるいは PowerShell コマンドを使用して明示的に)。

App-V パッケージの削除

フル インフラストラクチャでの App-V アプリケーションの削除は公開の取り消し操作であり、パッケージの削除は行われません。プロセスは上記の公開プロセスと同様ですが、削除プロセスを追加する代わりに、App-V パッケージに加えられた変更を元に戻します。

App-V パッケージの修復

修復操作は非常に単純ですが、コンピューター上のさまざまな場所に影響を与える可能性があります。前に説明したコピー オン ライト (COW) の場所は削除され、拡張ポイントは統合を解除され、その後再統合されます。COW データの配置場所 (レジストリ内のどこに登録されているか) をご確認ください。この操作は自動的に実行され、App-V クライアントのコンソールから、または PowerShell (Repair-AppVClientPackage) を使用して修復操作を開始する以外に、管理制御の手段はありません。

App-V パッケージの統合

App-V クライアントおよびパッケージ アーキテクチャは、パッケージの追加および公開中に、ローカルのオペレーティング システムとの統合を提供します。次の 3 つのファイルが、App-V パッケージの統合または拡張ポイントを定義します。

  • AppXManifest.xml: パッケージ内部に格納されており、パッケージ ストアおよびユーザー プロファイル内にファールバック コピーを保存します。シーケンス処理中に作成されたオプションが含まれています。

  • DeploymentConfig.xml: コンピューターおよびユーザー ベースの統合拡張ポイントに関する構成情報を提供します。

  • UserConfig.xml: Deploymentconfig.xml の一部であり、ユーザー ベースの構成のみを提供し、ユーザー ベースの拡張ポイントのみを対象とします。

統合のルール

App-V クライアントによって App-V アプリケーションがコンピューターに公開されると、次の一覧で説明しているように、特定のアクションがいくつか実行されます。

  • グローバル公開: ショートカットが All Users プロファイルの場所に格納され、その他の拡張ポイントは HKLM ハイブ内のレジストリに格納されます。

  • ユーザー公開: ショートカットが現在のユーザー アカウントのプロファイルに格納され、その他の拡張ポイントは HKCU ハイブ内のレジストリに格納されます。

  • バックアップと復元: 既存のネイティブ アプリケーションのデータおよびレジストリ (FTA の登録など) が公開時にバックアップされます。

    1. App-V パッケージには、最後に統合されたパッケージに基づいて所有権が与えられ、その所有権は最新の公開済み App-V アプリケーションに渡されます。

    2. 所有権を持つ App-V パッケージが公開されていない場合、その所有権は別の App-V パッケージに移動されます。これにより、データまたはレジストリの復元が開始されることはありません。

    3. 最後のパッケージに公開取り消しまたは削除が行われた場合、拡張ポイントごとにバックアップ データを復元します。

拡張ポイント

App-V の公開ファイル (マニフェストおよび動的な構成) は、アプリケーションとローカルのオペレーティング システムとの統合を可能にする複数の拡張ポイントを提供します。これらの拡張ポイントは、ショートカットの配置、ファイルの種類の関連付けの作成、コンポーネントの登録など、標準的なアプリケーションのインストール タスクを実行します。これらの仮想化されたアプリケーションは、従来のアプリケーションとは異なる方法でインストールされているため、両者にはいくつかの違いがあります。このセクションで説明している拡張ポイントの一覧を次に示します。

  • ショートカット

  • ファイルの種類の関連付け

  • シェル拡張

  • COM

  • ソフトウェア クライアント

  • アプリケーションの機能

  • URL プロトコル ハンドラー

  • AppPath

  • 仮想アプリケーション

ショートカット

ショートカットは、OS との統合における基本要素の 1 つで、App-V のアプリケーションをユーザーが直接起動するためのインターフェイスです。App-V アプリケーションの公開および公開取り消し中。

パッケージ マニフェストおよび動的構成 XML ファイルにおいて、次のようなセクション内に、特定のアプリケーション実行可能ファイルへのパスが見つかります。

<Extension Category="AppV.Shortcut">
          <Shortcut>
            <File>[{Common Desktop}]\Adobe Reader 9.lnk</File>
            <Target>[{AppVPackageRoot}]\Reader\AcroRd32.exe</Target>
            <Icon>[{Windows}]\Installer\{AC76BA86-7AD7-1033-7B44-A94000000001}\SC_Reader.ico</Icon>
            <Arguments />
            <WorkingDirectory />
            <ShowCommand>1</ShowCommand>
            <ApplicationId>[{AppVPackageRoot}]\Reader\AcroRd32.exe</ApplicationId>
          </Shortcut>
        </Extension>

既に説明したように、App-V のショートカットは、既定では更新操作に基づいてユーザーのプロファイル内に配置されます。グローバル更新により、All Users プロファイルにショートカットが配置され、ユーザー更新により、それが特定のユーザーのプロファイルに格納されます。実際の実行可能ファイルは、パッケージ ストアに格納されます。ICO ファイルの場所は、App-V パッケージ内のトークン化された場所です。

ファイルの種類の関連付け

App-V クライアントは、公開中にローカル オペレーティング システムのファイルの種類の関連付けを管理しますが、これによってユーザーはファイルの種類の呼び出しを使用するか、特別に登録された拡張子 (.docx) を持つファイルを起動して、App-V アプリケーションを開始できます。ファイルの種類の関連付けは、次の例に示すように、マニフェストおよび動的構成ファイル内に存在します。

<Extension Category="AppV.FileTypeAssociation">
          <FileTypeAssociation>
            <FileExtension MimeAssociation="true">
              <Name>.xdp</Name>
              <ProgId>AcroExch.XDPDoc</ProgId>
              <ContentType>application/vnd.adobe.xdp+xml</ContentType>
            </FileExtension>
            <ProgId>
              <Name>AcroExch.XDPDoc</Name>
              <Description>Adobe Acrobat XML Data Package File</Description>
              <EditFlags>65536</EditFlags>
              <DefaultIcon>[{Windows}]\Installer\{AC76BA86-7AD7-1033-7B44-A94000000001}\XDPFile_8.ico</DefaultIcon>
              <ShellCommands>
                <DefaultCommand>Read</DefaultCommand>
                <ShellCommand>
                  <ApplicationId>[{AppVPackageRoot}]\Reader\AcroRd32.exe</ApplicationId>
                  <Name>Open</Name>
                  <CommandLine>"[{AppVPackageRoot}]\Reader\AcroRd32.exe" "%1"</CommandLine>
                </ShellCommand>
                <ShellCommand>
                  <ApplicationId>[{AppVPackageRoot}]\Reader\AcroRd32.exe</ApplicationId>
                  <Name>Printto</Name>
                  <CommandLine>"[{AppVPackageRoot}]\Reader\AcroRd32.exe"  /t "%1" "%2" "%3" "%4"</CommandLine>
                </ShellCommand>
                <ShellCommand>
                  <ApplicationId>[{AppVPackageRoot}]\Reader\AcroRd32.exe</ApplicationId>
                  <Name>Read</Name>
                  <FriendlyName>Open with Adobe Reader 9</FriendlyName>
                  <CommandLine>"[{AppVPackageRoot}]\Reader\AcroRd32.exe" "%1"</CommandLine>
                </ShellCommand>
              </ShellCommands>
            </ProgId>
          </FileTypeAssociation>
        </Extension>

注意

この例では、

  • <Name>.xdp</Name> は拡張子です

  • <Name>AcroExch.XDPDoc</Name> は ProgId 値 (隣接する ProgId を示す) です

  • <CommandLine>"[{AppVPackageRoot}]\Reader\AcroRd32.exe" "%1"</CommandLine> はコマンド ラインで、アプリケーションの実行可能ファイルを示します

シェル拡張

シェル拡張は、シーケンス処理中に自動的にパッケージに埋め込まれます。パッケージがグローバルに公開されると、シェル拡張により、ユーザーはアプリケーションがローカルにインストールされた場合と同じ機能を利用できます。アプリケーションは、シェル拡張機能を有効にするのに、クライアント上での追加のセットアップや構成を必要としません。

シェル拡張を使用するための要件:

  • 埋め込みシェル拡張を含むパッケージは、グローバルに公開する必要があります。

  • アプリケーション、Sequencer、および App-V クライアントの "ビット数" が一致しないと、シェル拡張は動作しません。例:

    • アプリケーションのバージョンは 64 ビットです。

    • Sequencer は 64 ビット コンピューター上で実行されます。

    • パッケージは、64 ビットの App-V クライアント コンピューターに配布されます。

サポートされるシェル拡張を次の表に示します。

ハンドラー 説明

コンテキスト メニュー ハンドラー

メニュー項目をコンテキスト メニューに追加します。コンテキスト メニューを表示する前にこのハンドラーが呼び出されます。

ドラッグ アンド ドロップ ハンドラー

右クリックによるドラッグ アンド ドロップの操作を制御し、表示されるコンテキスト メニューを変更します。

ドロップ ターゲット ハンドラー

ファイルのようなドロップ ターゲット上に、データ オブジェクトをドラッグ アンド ドロップした後の操作を制御します。

データ オブジェクト ハンドラー

ファイルをクリップボードにコピーしたり、ドロップ ターゲット上にドラッグ アンド ドロップしたりした後の操作を制御します。ドロップ ターゲットに追加のクリップボード形式を提供できます。

プロパティ シート ハンドラー

オブジェクトのプロパティ シート ダイアログ ボックスのページを置換したり追加したりできます。

ヒント ハンドラー

項目のフラグ情報やヒント情報を取得し、マウスオーバーしたときにポップアップ ヒント内に表示できるようにします。

列ハンドラー

エクスプローラーの詳細表示にカスタムの列を作成したり表示したりできるようにします。並び替えやグループ化を拡張するときに使用できます。

プレビュー ハンドラー

エクスプローラーのプレビュー ウィンドウにファイルのプレビューを表示できるようにします。

COM

App-V クライアントでは、COM の統合および仮想化へのサポートを含む、アプリケーションの公開がサポートされています。COM の統合によって、App-V クライアントがローカル オペレーティング システムに COM オブジェクトを登録できるようになり、オブジェクトの仮想化も可能になります。このドキュメントの目的から、COM オブジェクトの統合には追加の詳細情報が必要になります。

App-V では、2 種類のプロセスで、パッケージからローカルのオペレーティング システムに COM オブジェクトを登録できます。その 2 種類のプロセスは、アウトプロセスおよびインプロセスです。COM オブジェクトの登録は、オフ、分離、統合を含む、特定の App-V パッケージの操作モードを 1 つまたは複数の組み合わせで使用することにより行われます。統合モードは、アウトプロセスとインプロセスのどちらかの種類に対して構成されます。COM のモードおよび種類の構成は、動的な構成ファイル (deploymentconfig.xml または userconfig.xml) によって行われます。

App-V の統合の詳細については、https://go.microsoft.com/fwlink/?LinkId=392834 をご覧ください。

ソフトウェア クライアントとアプリケーションの機能

App-V は、特定のソフトウェア クライアントおよびアプリケーションの機能の拡張ポイントをサポートしており、オペレーティング システムのソフトウェア クライアントを使用して仮想アプリケーションを登録できます。これにより、ユーザーは電子メール、インスタント メッセージング、メディア プレーヤーなどの操作に対して既定のプログラムを選択できます。この操作は、コントロール パネルの [プログラムのアクセスとコンピューターの既定] で実行し、シーケンス処理中にマニフェストまたは動的な構成ファイル内で構成されます。アプリケーションの機能は、App-V アプリケーションがグローバルに公開された場合にのみサポートされます。

ソフトウェア クライアントによる App-V ベースのメール クライアントの登録例を次に示します。

    <SoftwareClients Enabled="true">
      <ClientConfiguration EmailEnabled="true" />
      <Extensions>
        <Extension Category="AppV.SoftwareClient">
          <SoftwareClients>
            <EMail MakeDefault="true">
              <Name>Mozilla Thunderbird</Name>
              <Description>Mozilla Thunderbird</Description>
              <DefaultIcon>[{ProgramFilesX86}]\Mozilla Thunderbird\thunderbird.exe,0</DefaultIcon>
              <InstallationInformation>
                <RegistrationCommands>
                  <Reinstall>"[{ProgramFilesX86}]\Mozilla Thunderbird\uninstall\helper.exe" /SetAsDefaultAppGlobal</Reinstall>
                  <HideIcons>"[{ProgramFilesX86}]\Mozilla Thunderbird\uninstall\helper.exe" /HideShortcuts</HideIcons>
                  <ShowIcons>"[{ProgramFilesX86}]\Mozilla Thunderbird\uninstall\helper.exe" /ShowShortcuts</ShowIcons>
                </RegistrationCommands>
                <IconsVisible>1</IconsVisible>
                <OEMSettings />
              </InstallationInformation>
              <ShellCommands>
                <ApplicationId>[{ProgramFilesX86}]\Mozilla Thunderbird\thunderbird.exe</ApplicationId>
                <Open>"[{ProgramFilesX86}]\Mozilla Thunderbird\thunderbird.exe" -mail</Open>
              </ShellCommands>
              <MAPILibrary>[{ProgramFilesX86}]\Mozilla Thunderbird\mozMapi32_InUse.dll</MAPILibrary>
              <MailToProtocol>
                <Description>Thunderbird URL</Description>
                <EditFlags>2</EditFlags>
                <DefaultIcon>[{ProgramFilesX86}]\Mozilla Thunderbird\thunderbird.exe,0</DefaultIcon>
                <ShellCommands>
                  <ApplicationId>[{ProgramFilesX86}]\Mozilla Thunderbird\thunderbird.exe</ApplicationId>
                  <Open>"[{ProgramFilesX86}]\Mozilla Thunderbird\thunderbird.exe" -osint -compose "%1"</Open>
                </ShellCommands>
              </MailToProtocol>
            </EMail>
          </SoftwareClients>
        </Extension>
      </Extensions>
    </SoftwareClients>

注意

この例では、

  • <ClientConfiguration EmailEnabled="true" /> は、電子メール クライアントを統合するための、ソフトウェア クライアントの設定全体です

  • <EMail MakeDefault="true"> は、特定の電子メール クライアントを既定の電子メール クライアントとして設定するフラグです

  • <MAPILibrary>[{ProgramFilesX86}]\Mozilla Thunderbird\mozMapi32_InUse.dll</MAPILibrary> は、MAPI dll の登録です

URL プロトコル ハンドラー

アプリケーションは、常にファイルの種類の呼び出しを利用して仮想化されたアプリケーションを呼び出すわけではありません。たとえば、ドキュメントまたは Web ページ内部への mailto: リンクの埋め込みをサポートするアプリケーションでは、ユーザーは mailto: リンクをクリックし、登録済みのメール クライアントが呼び出されるのを待ちます。App-V は、パッケージごとにローカルのオペレーティング システムへの登録が可能な URL プロトコル ハンドラーをサポートしています。シーケンス処理中、URL プロトコル ハンドラーは自動的にパッケージに追加されます。

特定の URL プロトコル ハンドラーを登録できる 2 つ以上のアプリケーションが存在する状況では、起動する必要があるプライマリ アプリケーションではないアプリケーションの動作を変更し、その機能を抑制または無効にするために、動的な構成ファイルを利用できます。

AppPath

AppPath 拡張ポイントは、オペレーティング システムからの App-V アプリケーションの直接呼び出しをサポートしています。これは通常、オペレーティング システムに応じて [実行] または [スタート] 画面から行いますが、それによって管理者は、実行可能ファイルへの特定パスを呼び出さずに、オペレーティング システムのコマンドまたはスクリプトから App-V アプリケーションにアクセスする方法を提供できるようになります。そのため、すべてのシステム上のシステム パス環境変数に対する変更を回避できます。変更は、公開時に行われます。

AppPath 拡張ポイントは、マニフェストまたは動的構成ファイル内で構成され、ユーザーへの公開時に、ローカル コンピューター上のレジストリに格納されます。AppPath の確認の詳細については、https://go.microsoft.com/fwlink/?LinkId=392835 をご覧ください。

仮想アプリケーション

このサブシステムは、通常は他の App-V コンポーネントによって使用される、シーケンス処理中にキャプチャされたアプリケーションの一覧を提供します。特定のアプリケーションに属している拡張ポイントの統合は、動的構成ファイルを使用して無効にすることができます。たとえば、パッケージに 2 つのアプリケーションが含まれている場合、1 つのアプリケーションの拡張ポイントのみを統合できるようにするために、もう 1 つのアプリケーションに属しているすべての拡張ポイントを無効にできます。

拡張ポイントのルール

上記で説明した拡張ポイントは、パッケージの公開方法に基づいて、オペレーティング システムに統合されます。グローバル公開ではパブリック コンピューターの場所に拡張ポイントが配置されるのに対し、ユーザー公開ではユーザーの場所に拡張ポイントが配置されます。たとえば、ショートカットがデスクトップ上に作成され、グローバルに公開されると、ショートカットのファイル データ (%Public%\Desktop) とレジストリ データ (HKLM\Software\Classes) が生成されます。同じショートカットが、ファイル データ (%UserProfile%\Desktop) とレジストリ データ (HKCU\Software\Classes) を持つことになります。

拡張ポイントは、すべてが同じように公開されるわけではありません。グローバル公開を必要とする拡張ポイントもあれば、特定のオペレーティング システムや配信先のアーキテクチャでシーケンス処理必要とする拡張ポイントもあります。以下の表では、これら 2 つの重要なルールを説明しています。

仮想拡張 ターゲット OS のシーケンス処理が必要 グローバル公開が必要

Shortcut

ファイルの種類の関連付け

URL プロトコル

X

AppPath

X

COM モード

ソフトウェア クライアント

X

アプリケーションの機能

X

X

コンテキスト メニュー ハンドラー

X

X

ドラッグ アンド ドロップ ハンドラー

X

データ オブジェクト ハンドラー

X

プロパティ シート ハンドラー

X

ヒント ハンドラー

X

列ハンドラー

X

シェル拡張

X

ブラウザー ヘルパー オブジェクト

X

X

Active X オブジェクト

X

X

動的構成の処理

1 つのコンピューターまたはユーザーに対する App-V パッケージの展開は非常に単純です。ただし、組織が事業分野や地理的、政治的な境界を越えて AppV アプリケーションを展開する場合は、1 組みの設定で一度にアプリケーションのシーケンス処理を実行することはできません。App-V は、このシナリオのために、マニフェスト ファイル内でシーケンス処理中に特定の設定および構成をキャプチャするよう設計されていますが、動的構成ファイルによる変更も同様にサポートしています。

App-V の動的構成により、パッケージに対するポリシーを、コンピューター レベルまたはユーザー レベルで指定できます。動的構成ファイルによって、シーケンス処理のエンジニアはシーケンス処理後にパッケージ構成を変更することが可能になり、各ユーザー グループまたはコンピューター グループのニーズに対応できます。一部のインスタンスでは、App-V 環境内で適切な機能を提供するため、アプリケーションに変更を加えることが必要になる場合があります。たとえば、仮想化されたアプリケーションが他のアプリケーションの mailto 拡張機能を上書きしないように、その機能を無効にするなど、アプリケーションの実行中の指定した時刻に特定のアクションを実行できるようにするには、_*config.xml ファイルに変更を加えることが必要になる場合があります。

App-V パッケージには、appv パッケージ ファイル内にマニフェスト ファイルが含まれています。これはシーケンス処理操作の代表的なファイルであり、動的構成ファイルが特定のパッケージに割り当てられていない限りは最適なポリシーでもあります。シーケンス処理後は、異なる拡張ポイントを持つさまざまなデスクトップまたはユーザーにアプリケーションを公開できるよう、動的構成ファイルを変更できます。2 つの動的構成ファイルは、動的展開構成 (Dynamic Deployment Configuration: DDC) ファイルと動的ユーザー構成 (Dynamic User Configuration: DUC) ファイルです。このセクションでは、マニフェストおよび動的構成ファイルの組み合わせについて説明します。

動的構成ファイルの例

次の例では、公開後および通常動作中におけるマニフェスト ファイル、展開構成ファイル、ユーザー構成ファイルの組み合わせについて説明します。これらの例は、各ファイルを簡略化したものです。目的は各ファイルの組み合わせを示すことであり、各ファイル内で使用できる特定のカテゴリを詳細に説明することではありません。詳細については、https://go.microsoft.com/fwlink/?LinkID=269810 にある App-V 5 シーケンス処理ガイドをご覧ください。

マニフェスト

<appv:Extension Category="AppV.Shortcut">
     <appv:Shortcut>
          <appv:File>[{Common Programs}]\7-Zip\7-Zip File Manager.lnk</appv:File>
          <appv:Target>[{AppVPackageRoot}]\7zFM.exe</appv:Target>
          <appv:Icon>[{AppVPackageRoot}]\7zFM exe.O.ico</appv:Icon>
     </appv:Shortcut>
</appv:Extension>

展開構成

<MachineConfiguration>
     <Subsystems>
          <Registry>
               <Include>
                    <Key Path= "\REGISTRY\Machine\Software\7zip">
                    <Value Type="REG_SZ" Name="Config" Data="1234"/>
                    </Key>
               </Include>
          </Registry>
     </Subsystems>

ユーザー構成

<UserConfiguration>
     <Subsystems>
<appv:ExtensionCategory="AppV.Shortcut">
     <appv:Shortcut>
          <appv:File>[{Desktop}]\7-Zip\7-Zip File Manager.lnk</appv:File>
          <appv:Target>[{AppVPackageRoot}]\7zFM.exe</appv:Target>
          <appv:Icon>[{AppVPackageRoot}]\7zFM exe.O.ico</appv:Icon>
     </appv:Shortcut>
</appv:Extension>
     </Subsystems>
<UserConfiguration>
     <Subsystems>
<appv:Extension Category="AppV.Shortcut">
     <appv:Shortcut>
          <appv:Fìle>[{Desktop}]\7-Zip\7-Zip File Manager.lnk</appv:File>
          <appv:Target>[{AppVPackageRoot}]\7zFM.exe</appv:Target>
          <appv:lcon>[{AppVPackageRoot}]\7zFM.exe.O.ico</appv:Icon>
     </appv:Shortcut>
     <appv:Shortcut>
          <appv:File>[{Common Programs}]\7-Zip\7-Zip File Manager.Ink</appv:File>
          <appv:Target>[{AppVPackageRoot}]\7zFM.exe</appv:Target>
          <appv:lcon>[{AppVPackageRoot)]\7zFM.exe.O.ico</appv: Icon>
     </appv:Shortcut>
</appv:Extension>
     </Subsystems>
<MachineConfiguration>
     <Subsystems>
          <Registry>
               <Include>
                    <Key Path="\REGISTRY\Machine\Software\7zip">
                    <Value Type=”REG_SZ" Name="Config" Data="1234"/>
               </Include>
          </Registry>
     </Subsystems>

サイド バイ サイド アセンブリ

App-V では、仮想アプリケーションの公開中、クライアント上でのシーケンス処理および展開時に行う、サイド バイ サイド (SxS) アセンブリの自動パッケージ化をサポートしています。App-V 5 SP2 では、シーケンス処理用のコンピューター上に存在しないアセンブリのシーケンス処理中に行う、SxS アセンブリのキャプチャをサポートしています。また、Visual C++ (バージョン 8 以降) と MSXML ランタイムの両方またはいずれかで構成されるアセンブリについては、監視時にインストールされていない場合でも、Sequencer がこれらの依存関係を自動的に検出してキャプチャします。サイド バイ サイド アセンブリ機能は以前のバージョンの App-V の制限を取り除きます。以前のバージョンでは、App-V Sequencer がシーケンス処理用ワークステーション上に既に存在するアセンブリをキャプチャせず、1 パッケージにつき 1 ビット バージョンに制限されるアセンブリをプライベート化していました。この動作は、クライアントに展開された App-V アプリケーションが必要な SxS アセンブリを取得できず、アプリケーションの起動に失敗する原因になりました。これにより、仮想アプリケーション用のサポートを確実にするために、パッケージ化プロセスを文書化し、パッケージに必要なすべてのアセンブリがユーザーのクライアント オペレーティング システムにローカル インストールされていることを確認する必要が生じました。アセンブリの数と、必要な依存関係についてのアプリケーション マニュアルの不足を踏まえると、この作業は管理および実装、両方の面での課題でした。

App-V でのサイド バイ サイド アセンブリのサポートには、次の機能が含まれます。

  • シーケンス処理用ワークステーションにアセンブリがインストール済みかどうかにかかわらず、シーケンス処理中に SxS アセンブリを自動的にキャプチャします。

  • App-V クライアントは、公開時に必要な SxS アセンブリがクライアント コンピューター上に存在しない場合、その SxS アセンブリを自動的にインストールします。

  • Sequencer は、シーケンサー レポート メカニズムを使用して VC ランタイム依存関係を報告します。

  • Sequencer は、アセンブリが前もって対象のコンピューターにインストールされているシナリオをサポートしており、既に Sequencer にインストールされているアセンブリについてはパッケージ化しないことを選択できます。

SxS アセンブリの自動公開

SxS アセンブリを使用した App-V パッケージの公開時に、App-V クライアントはコンピューター上にアセンブリが存在しているかどうかを確認します。アセンブリが存在しない場合、クライアントは、コンピューターにアセンブリを展開します。接続グループにはアセンブリのインストールに関する情報が何も含まれないため、接続グループに含まれているパッケージは基本パッケージの一部であるサイド バイ サイド アセンブリのインストールに依存しています。

注意

アセンブリを使用したパッケージの公開取り消しまたは削除によって、そのパッケージのアセンブリが削除されることはありません。

クライアントのログ記録

App-V クライアントは、Windows イベント ログに標準の ETW 形式でログ情報を記録します。特定の App-V イベントは、イベント ビューアーの Applications and Services Logs\Microsoft\AppV\Client で確認できます。

注意

App-V 5.0 SP3 では、いくつかのログが統合されて次の場所に移動されました。

Event logs/Applications and Services Logs/Microsoft/AppV/ServiceLog

移動されたログの一覧については、「App-V event logs have been consolidated」をご覧ください。

記録されたイベントの特定の 3 つのカテゴリを次に示します。

管理: App-V クライアントに適用される構成のイベントをログに記録します。プライマリ警告およびエラーが含まれます。

運用: 通常の App-V における各コンポーネントの実行および使用についてのログを記録し、App-V クライアント上で完了した動作の監査ログを作成します。

仮想アプリケーション: 仮想アプリケーションの起動および仮想化サブシステムの使用についてのログを記録します。

APP-V への提案がございますか

こちらから提案を追加するか、提案に投票してください。App V の問題については、「APP-V に関する TechNet フォーラム」を利用してください。

-----
MDOP の詳細については、TechNet ライブラリを参照してください。TechNet Wiki では、トラブルシューティング情報を検索できます。また、Microsoft の FacebookTwitter をフォローすることをお勧めします。
-----