次の方法で共有


アプリケーションの発行とクライアントの相互作用に関するリファレンス

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

参照情報の詳細については、「 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

オプション: 一般的に再利用されるシーケンサー設定を保持するために使用されるシーケンサー テンプレート ファイル。

シーケンスの詳細については、「 アプリケーション仮想化シーケンス ガイド」を参照してください。

appv ファイルの内容

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

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

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

名前 説明

ルート

ファイル フォルダー

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

[Content_Types].xml

XML ファイル

appv ファイル内のコア コンテンツ タイプの一覧 (e.g. DLL、EXE、BIN)。

AppxBlockMap.xml

XML ファイル

App-V パッケージ内のファイルの場所と検証を可能にする File、Block、BlockMap の各要素を使用する appv ファイルのレイアウト。

AppxManifest.xml

XML ファイル

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

FilesystemMetadata.xml

XML ファイル

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

PackageHistory.xml

XML ファイル

シーケンス コンピューター (オペレーティング システムのバージョン、インターネット エクスプローラー バージョン、.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 (Machine hive) など、パッケージの状態情報が含まれます

ユーザー レジストリ

HKCU\Software\Microsoft\AppV

VReg を含むユーザー パッケージの状態情報が含まれます

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

HKCU\Software\Classes\AppV

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

テーブルの詳細については、以下のセクションおよびドキュメント全体を通じて説明します。

パッケージ ストア

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

特定のアプリケーションへのパスの例:

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

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

共有コンテンツ ストア

App-V クライアントが共有コンテンツ ストア モードで構成されている場合、ストリーム エラーが発生したときにデータはディスクに書き込まれなくなります。つまり、パッケージには最小限のローカル ディスク領域 (データの発行) が必要です。 ローカル ストレージを制限できる VDI 環境では、ディスク領域を少なくすることが非常に望ましく、高パフォーマンスのネットワークの場所 (SAN など) からアプリケーションをストリーミングすることをお勧めします。 共有コンテンツ ストア モードの詳細については、「」を参照してください https://go.microsoft.com/fwlink/p/?LinkId=392750

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

パッケージ カタログ

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

  • カタログ (ユーザーとコンピューター)。

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

マシン カタログ

説明

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

パッケージがグローバル以外の場合、統合は特定のユーザーに対してのみ発行されますが、変更され、クライアント コンピューター上のすべてのユーザーに表示されるグローバル リソースがまだ存在します (たとえば、パッケージ ディレクトリは共有ディスクの場所にあります)。

コンピューター上のユーザーがパッケージを使用できる (グローバルまたはグローバルではない) 場合、マニフェストはマシン カタログに格納されます。 パッケージがグローバルに発行されると、マシン カタログに格納されている動的構成ファイルがあります。そのため、パッケージがグローバルかどうかの判断は、マシン カタログにポリシー ファイル (UserDeploymentConfiguration ファイル) があるかどうかに従って定義されます。

既定のストレージの場所

%programdata%\Microsoft\AppV\Client\Catalog</code>

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

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

  • Manifest.xml

  • DeploymentConfiguration.xml

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

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

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

次の場所は、上記の特定のパッケージの場所に加えてです。

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

パッケージが接続グループの一部である場合のマシン カタログ内の追加ファイル

  • PackageGroupDescriptor.xml

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

ユーザー カタログ

説明

発行プロセス中に作成されます。 パッケージの発行に使用される情報と、パッケージが特定のユーザーに確実にプロビジョニングされるように起動時に使用される情報が含まれます。 ローミングの場所に作成され、ユーザー固有の発行情報が含まれます。

ユーザーのパッケージが発行されると、ポリシー ファイルはユーザー カタログに格納されます。 同時に、マニフェストのコピーもユーザー カタログに格納されます。 ユーザーのパッケージエンタイトルメントが削除されると、関連するパッケージ ファイルがユーザー カタログから削除されます。 ユーザー カタログを見ると、管理者は動的構成ファイルの存在を表示できます。これは、パッケージがそのユーザーに対して権限を持っていることを示します。

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

既定のストレージの場所

appdata\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 アプリケーションの通常の操作中に、ユーザーまたはサービスでファイルの変更が必要になる場合があります。 これらの変更は、アプリケーションを修復する機能を維持するためにパッケージ ストアでは行われず、これらの変更は削除されます。 これらの場所は、書き込み時コピー (COW) と呼ばれ、ローミング場所と非ローミング場所の両方をサポートします。 変更が格納される場所は、ネイティブ エクスペリエンスで への変更を書き込むようアプリケーションがプログラムされている場所によって異なります。

COW ローミング

上記の COW ローミングの場所は、一般的な %AppData% の場所または \Users\{username}\AppData\Roaming の場所を対象とするファイルとディレクトリへの変更を格納します。 これらのディレクトリとファイルは、オペレーティング システムの設定に基づいてローミングされます。

COW local

COW ローカルの場所はローミングの場所に似ていますが、ローミングのサポートが構成されている場合でも、ディレクトリとファイルは他のコンピューターにローミングされません。 上記の COW ローカルの場所には、%AppData% の場所ではなく、一般的なウィンドウに適用できる変更が格納されます。 一覧表示されるディレクトリは異なりますが、一般的な Windows の場所 (Common AppData や Common AppDataS など) には 2 つの場所があります。 S は、仮想サービスがログオンしているユーザーとは別の昇格されたユーザーとして変更を要求したときに、制限された場所を示します。 S 以外の場所には、ユーザー ベースの変更が格納されます。

パッケージ レジストリ

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

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

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

 > 

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

パッケージの最初のアプリケーションがクライアントで起動されると、クライアントは Hive ファイルからコンテンツをステージまたはコピーし、別の場所 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AppV\Client\Packages\PackageGuid\Versions\VersionGuid\REGISTRYにパッケージ レジストリ データを再作成します。 ステージングされたレジストリ データには、2 種類のマシン データとユーザー データがあります。 マシン データは、マシン上のすべてのユーザー間で共有されます。 ユーザー データは、ユーザーごとにユーザー固有の場所にステージングされます HKCU\Software\Microsoft\AppV\Client\Packages\PackageGuid\Registry\User。 最終的に、マシン データはパッケージの削除時に削除され、ユーザーの発行解除操作でユーザー データが削除されます。

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

接続グループが存在する場合、レジストリをステージングする前のプロセスは true ですが、処理する Hive ファイルが 1 つではなく、複数あります。 ファイルは、接続グループ XML に表示される順序で処理され、最初のライターが競合に勝ちます。

ステージングされたレジストリは、単一パッケージの場合と同じ方法で保持されます。 ステージングされたユーザー レジストリ データは、接続グループが無効になるまで保持されます。ステージングされたマシン レジストリ データは、接続グループの削除時に削除されます。

仮想レジストリ

仮想レジストリ (VREG) の目的は、パッケージ レジストリとネイティブ レジストリの単一のマージされたビューをアプリケーションに提供することです。 また、コピーオンライト (COW) 機能も提供します。これは、仮想プロセスのコンテキストからレジストリに加えられた変更が別の COW の場所に加えられたものです。 つまり、VREG は、レジストリ COW -> パッケージ> の設定された場所 (ネイティブ) に基づいて、最大 3 つの個別のレジストリの場所を 1 つのビューに結合する必要があります。 レジストリ データに対して要求が行われると、要求されたデータが見つかるまで順番に検索されます。 つまり、COW の場所に格納されている値がある場合、他の場所には進まれませんが、COW の場所にデータがない場合は、適切なデータが見つかるまでパッケージに進み、ネイティブの場所に進みます。

レジストリの場所

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

単一パッケージ VReg:

地域

Description

  • Machine Registry\Client\Packages\PkgGUID\REGISTRY (昇格プロセスのみが書き込み可能)

  • User Registry\Client\Packages\PkgGUID\REGISTRY (ソフトウェア\クラスを除く HKCU で記述されたユーザー ローミング

  • ユーザー レジストリ クラス\Client\Packages\PkgGUID\REGISTRY (HKCU\Software\Classes writes and HKLM for non elevated process)

Package

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

  • ユーザー レジストリ クラス\Client\Packages\PkgGUID\Versions\VerGUID\Registry

ネイティブ

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

接続グループ VReg:

地域

Description

  • Machine Registry\Client\PackageGroups\GrpGUID\REGISTRY (昇格プロセスのみが書き込み可能)

  • ユーザー レジストリ\Client\PackageGroups\GrpGUID\REGISTRY (ソフトウェア\クラスを除く HKCU に書き込まれるもの

  • ユーザー レジストリ クラス\Client\PackageGroups\GrpGUID\REGISTRY

Package

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

  • ユーザー レジストリ クラス\Client\PackageGroups\GrpGUID\Versions\VerGUID\REGISTRY

ネイティブ

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

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

パススルー キー

パススルー キーを使用すると、管理者は特定のキーを構成して、パッケージと COW の場所をバイパスして、ネイティブ レジストリからのみ読み取ることができるようにすることができます。 パススルーの場所は、(パッケージ固有ではなく) コンピューターに対してグローバルであり、キーへのパスを追加して構成できます。これは、キーの HKLM\Software\Microsoft\AppV\Subsystem\VirtualRegistryPassThroughPaths という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 キーを使用すると、管理者によって設定されたグループ ポリシーベースの設定が、パッケージ設定ごとに使用されるのではなく、確実に使用されます。 Windows モダン UI ベースのアプリケーションとの統合には、AppModel キーが必要です。 管理では既定のパススルー キーを変更しないことをお勧めしますが、アプリケーションの動作に基づいて、パススルー キーを追加する必要がある場合があります。

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 クライアント UI を使用してパッケージをダウンロードすることで、明示的に読み込むことができます。 この操作により、パッケージ全体がパッケージ ストアに完全に読み込まれます。

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

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

ポリシー 説明

AllowHighCostLaunch

Windows 8以降では、3G ネットワークと携帯ネットワーク経由でのストリーミングが可能になります

Autoload

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

0 - 無効

1 – 以前に使用したパッケージのみ

2 – すべてのパッケージ

PackageInstallationRoot

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

PackageSourceRoot

パッケージのストリーミング元のルート オーバーライド

SharedContentStoreMode

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

これらの設定は、App-V パッケージ資産をクライアントにストリーミングする動作に影響します。 既定では、App-V では、最初の発行とプライマリ機能ブロックのダウンロード後に必要な資産のみがダウンロードされます。 ストリーミング パッケージには、次の 3 つの特定の動作について説明する必要があります。

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

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

  • Stream Faults

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

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

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

App-V パッケージは、シーケンス中にプライマリ機能ブロックで構成できます。 この設定を使用すると、シーケンス エンジニアは、特定のアプリケーションまたはアプリケーションの起動ファイルを監視し、パッケージ内の任意のアプリケーションの最初の起動時にストリーミング用に 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 コマンドレットは、ユーザーの App-V 状態が欠落しているか、%appdata% のデータと一致しないパッケージの発行状態HKEY_CURRENT_USERを修復しません。

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

App-V レジストリ ローミングは、次の表に示すように、2 つのシナリオに分類されます。

シナリオ 説明

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

標準ユーザーが App-V アプリケーションを起動すると、HKLM アプリケーションと APP-V アプリケーション用 HKCU の両方がマシン上の HKCU Hive に格納されます。 これは、次の 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 Hive に格納されます

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

一般的なパッケージには、AppData\Local と AppData\Roaming の両方の設定用に、ユーザーのバッキング ストアにいくつかの場所がマップされています。 これらの場所は、ユーザーのプロファイルにユーザーごとに格納され、パッケージ VFS ディレクトリに加えられた変更を格納し、既定のパッケージ VFS を保護するために使用される書き込み時のコピー場所です。

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

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

ProgramFilesX86

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

SystemX86

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

Windows

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

appv_ROOT

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

Appdata

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

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

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

ProgramFilesX86

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

SystemX86

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

Windows

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

appv_ROOT

C:\users\jsmith\AppData<strong>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 パスがローカルまたは ino AppData\Roaming の場所にマップされている場合、何も起こりません。

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

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

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

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

  3. ZIP パッケージ化プロセスの最後にあるタイムスタンプを使用して、ファイルに名前を付けます。

  4. タイムスタンプはレジストリに記録されます。GUID\AppDataTime を最後の<>既知の AppData タイムスタンプとして HKEY_CURRENT_USER\Software\Microsoft\AppV\Client\Packages\します。

  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 統合の詳細については、「App-V でサポートされる構成」を参照してください。

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 同じですが、発行更新の追加プロセス中に、構成された発行サーバーに接続され、アプリケーションの概要リストがクライアントに渡されて、より詳細な情報が取得され、1 つのパッケージ追加操作ではありません。 このプロセスは、パッケージまたは接続グループの追加または更新用にクライアントを構成して続行し、appv ファイルにアクセスします。 次に、appv ファイルの内容が展開され、適切な場所にあるローカル オペレーティング システムに配置されます。 パッケージが Fault Streaming 用に構成されていると仮定して、プロセスの詳細なワークフローを次に示します。

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 で定義されている発行ブロック データを完全にストリーミングします。 発行ブロック データをパッケージ ストア\PkgGUID\VerGUID\Root に格納します。

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

      • ポータブル実行可能ヘッダー (PE ヘッダー): ディスク上のイメージのニーズに関する基本情報を含む拡張ポイントのターゲット。直接アクセスまたはファイルの種類を使用します。

      • スクリプト: 発行プロセス全体で使用するスクリプト ディレクトリをダウンロードします。

    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 パッケージの発行は、上記のプロセスと非常によく似ています。 接続グループの場合、特定のカタログ情報を格納するパスには、カタログ ディレクトリの子としての PackageGroups が含まれます。 詳細については、上記のマシンとユーザー のカタログ情報を確認してください。

package add file and registry data - global.

アプリケーションの起動

発行更新プロセスの後、ユーザーは 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 は必要に応じてファイルの障害をストリーミングします。

    package add file and registry data - stream.

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. 統合タスクを実行します。

    • マニフェストと動的構成ファイルから拡張機能ポイント (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) があり、Windows エクスプローラーによって永続的に読み込まれている場合、ユーザーはログインできません。 App-V パッケージのアップグレードを開始するには、ユーザーがログオフしてログインし直す必要があります。

グローバルとユーザーの発行

App-V パッケージは、2 つの方法のいずれかで発行できます。特定のユーザーまたはユーザー グループに App-V パッケージを付与するユーザーと、マシンのすべてのユーザーに対して App-V パッケージをマシン全体に付与する Global。 パッケージのアップグレードが完了し、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 クライアントを使用してコンピューターに発行されると、次の一覧で説明するように、いくつかの特定のアクションが実行されます。

  • グローバル発行: ショートカットは [すべてのユーザー] プロファイルの場所に格納され、その他の拡張ポイントは HKLM Hive のレジストリに格納されます。

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

  • バックアップと復元: 既存のネイティブ アプリケーション データとレジストリ (FTA 登録など) は、発行中にバックアップされます。

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

    2. 所有している App-V パッケージが発行されていない場合、所有権は 1 つの 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 ショートカットは、更新操作に基づいてユーザーのプロファイルに既定で配置されます。 グローバル更新では、すべてのユーザー プロファイルにショートカットが配置され、ユーザーの更新によって特定のユーザーのプロファイルに保存されます。 実際の実行可能ファイルはパッケージ ストアに格納されます。 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 ビットです。

    • シーケンサーは 64 ビット コンピューターで実行されています。

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

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

ハンドラー 説明

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

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

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

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

ターゲット ハンドラーを削除する

ファイルなどのドロップ ターゲット上でデータ オブジェクトをドラッグ アンド ドロップした後のアクションを制御します。

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

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

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

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

ヒント ハンドラー

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

列ハンドラー

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

プレビュー ハンドラー

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

COM

App-V クライアントは、COM 統合と仮想化をサポートするアプリケーションの発行をサポートします。 COM 統合を使用すると、App-V クライアントはローカル オペレーティング システムに COM オブジェクトを登録し、オブジェクトの仮想化を行うことができます。 このドキュメントの目的上、COM オブジェクトの統合にはさらに詳細が必要です。

App-V では、プロセス外とインプロセスの 2 種類のプロセスで、パッケージからローカル オペレーティング システムへの COM オブジェクトの登録がサポートされています。 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 クライアントを統合するための全体的なソフトウェア クライアント設定です

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

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

URL プロトコル ハンドラー

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

特定の URL プロトコル ハンドラーを登録できるアプリケーションが複数ある場合は、動的構成ファイルを使用して動作を変更し、起動するプライマリ アプリケーションではないアプリケーションに対してこの機能を抑制または無効にすることができます。

AppPath

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

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

仮想アプリケーション

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

拡張ポイントルール

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

拡張ポイントはすべて同じ方法で公開されるわけではありません。一部の拡張ポイントではグローバル発行が必要であり、他の拡張ポイントでは、配信される特定のオペレーティング システムとアーキテクチャのシーケンス処理が必要です。 次に、これら 2 つの重要な規則について説明する表を示します。

仮想拡張機能 ターゲット OS シーケンシングが必要 グローバル発行が必要

ショートカット

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

URL プロトコル

AppPaths

COM モード

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

アプリケーション機能

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

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

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

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

ヒント ハンドラー

列ハンドラー

シェル拡張機能

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

Active X オブジェクト

動的構成処理

1 台のコンピューターまたはユーザーに App-V パッケージをデプロイするのは非常に簡単です。 ただし、組織がビジネス ラインや地理的および政治的境界を越えて AppV アプリケーションをデプロイする場合、1 つの設定セットでアプリケーションを 1 回シーケンスする機能は不可能になります。 App-V は、マニフェスト ファイルのシーケンス処理中に特定の設定と構成をキャプチャしますが、動的構成ファイルでの変更もサポートしているため、このシナリオ用に設計されました。

App-V 動的構成を使用すると、マシン レベルまたはユーザー レベルでパッケージのポリシーを指定できます。 動的構成ファイルを使用すると、シーケンス エンジニアはパッケージの構成 (シーケンス後) を変更して、ユーザーまたはマシンの個々のグループのニーズに対応できます。 場合によっては、App-V 環境内で適切な機能を提供するためにアプリケーションを変更する必要がある場合があります。 たとえば、 _*config.xml ファイルを変更して、アプリケーションの実行中に特定のアクションを指定した時間に実行できるようにする必要があります。たとえば、mailto 拡張機能を無効にして、仮想化されたアプリケーションがその拡張機能を別のアプリケーションから上書きしないようにする必要があります。

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

動的構成ファイルの例

次の例は、公開後と通常の操作中のマニフェスト、配置構成、およびユーザー構成ファイルの組み合わせを示しています。 これらの例は、各ファイルの省略された例です。 目的は、ファイルの組み合わせのみを示し、各ファイルで利用可能な特定のカテゴリの完全な説明ではありません。 詳細については、次の App-V 5 シーケンシング ガイドを参照してください。 https://go.microsoft.com/fwlink/?LinkID=269810

マニフェスト

<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:Icon>[{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:Icon>[{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 Sequencer がシーケンス ワークステーションに既に存在するアセンブリをキャプチャせず、パッケージごとに 1 ビット バージョンに制限されているアセンブリを民営化しなかった以前のバージョンの App-V の制限が取り除きます。 この動作により、必要な SxS アセンブリが不足しているクライアントに App-V アプリケーションがデプロイされ、アプリケーションの起動エラーが発生しました。 これにより、パッケージ化プロセスが文書化され、パッケージに必要なすべてのアセンブリが、仮想アプリケーションのサポートを確保するためにユーザーのクライアント オペレーティング システムにローカルにインストールされていることを確認する必要があります。 アセンブリの数と、必要な依存関係に関するアプリケーション ドキュメントがないことに基づいて、このタスクは管理と実装の両方の課題でした。

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

  • シーケンシングワークステーションにアセンブリが既にインストールされているかどうかに関係なく、シーケンシング中の SxS アセンブリの自動キャプチャ。

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

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

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

SxS アセンブリの自動発行

SxS アセンブリを使用した App-V パッケージの発行中、App-V クライアントは、マシン上にアセンブリが存在するためにチェックされます。 アセンブリが存在しない場合、クライアントはアセンブリをマシンにデプロイします。 接続グループに含まれるパッケージは、アセンブリのインストールに関する情報が含まれていないので、基本パッケージの一部であるサイド バイ サイド アセンブリインストールに依存します。

メモ アセンブリを使用してパッケージを発行解除または削除しても、そのパッケージのアセンブリは削除されません。

クライアント ログ

App-V クライアントは、標準の ETW 形式で Windows イベント ログに情報を記録します。 特定の App-V イベントは、イベント ビューアーの [アプリケーションとサービス ログ] \Microsoft\AppV\Client にあります。

メモ App-V 5.0 SP3 では、一部のログが統合され、次の場所に移動されました。

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

移動されたログの一覧については、「 App-V 5.0 SP3 について」を参照してください。

以下で説明するイベントには、3 つの特定のカテゴリが記録されています。

管理: App-V クライアントに適用されている構成のイベントをログに記録し、主な警告とエラーが含まれます。

操作: App-V クライアントで完了した App-V 操作の監査ログを作成する、一般的な App-V の実行と個々のコンポーネントの使用状況をログに記録します。

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