アプリケーションの発行とクライアントの操作

適用対象:

  • Windows 10
  • Windows 11

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

Sequencer によって作成された App-V パッケージ ファイル

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

ファイル 説明
.appv - シーケンス プロセスからキャプチャされた資産と状態情報を含むプライマリ パッケージ ファイル。
- パッケージ ファイル、公開情報、レジストリのアーキテクチャ。トークン化された形式で、配信時にマシンと特定のユーザーに再適用できます。
.MSI .appv ファイルを手動で、またはサード パーティのデプロイ プラットフォームを使用してデプロイするために使用できる実行可能なデプロイ ラッパー。
_DeploymentConfig.XML App-V クライアントを実行しているコンピューター上のすべてのユーザーにグローバルに展開されるパッケージ内のすべてのアプリケーションの既定の発行パラメーターをカスタマイズするために使用されるファイル。
_UserConfig.XML App-V クライアントを実行しているコンピューター上の特定のユーザーに展開されているパッケージ内のすべてのアプリケーションの発行パラメーターをカスタマイズするために使用されるファイル。
Report.xml 省略されたドライバー、ファイル、レジストリの場所など、シーケンス処理の結果のメッセージの概要。
.CAB 省略可能: 以前にシーケンスされた仮想アプリケーション パッケージを自動的に再構築するために使用されるパッケージ アクセラレータ ファイル。
.appvt 省略可能: 一般的に再利用されるシーケンサー設定を保持するために使用されるシーケンサー テンプレート ファイル。

シーケンスの詳細については、「 App-V を使用して新しいアプリケーションをシーケンスする方法」を参照してください。

appv ファイルの内容

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

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

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

名前 説明
ルート ファイル フォルダー シーケンス処理中にキャプチャされた仮想化されたアプリケーションのファイル システムを含むディレクトリ。
[Content_Types].xml XML ファイル appv ファイル内のコア コンテンツ タイプの一覧 (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 マシンまたはグローバルに発行されたパッケージ (Machine hive) の VReg など、パッケージの状態情報が含まれます。
ユーザー レジストリ HKCU\Software\Microsoft\AppV VReg を含むユーザー パッケージの状態情報が含まれます。
ユーザー レジストリ クラス HKCU\Software\Classes\AppV より多くのユーザー パッケージの状態情報が含まれています。

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

パッケージ ストア

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

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

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

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

共有コンテンツ ストア

App-V クライアントが共有コンテンツ ストア モードで構成されている場合、ストリーム エラーが発生したときにデータはディスクに書き込まれなくなります。つまり、パッケージには最小限のローカル ディスク領域 (データの発行) が必要です。 ローカル ストレージを制限できる VDI 環境では、できるだけ少ないディスク領域を使用することが重要です。 高パフォーマンスのネットワークの場所 (SAN など) からアプリケーションをストリーミングすることで、ディスク領域の使用量を最小限に抑えることができます。 詳細については、「 Microsoft App-V 5.0 の共有コンテンツ ストア - バックグラウンド」を参照してください。

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

パッケージ カタログ

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

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

マシン カタログ

この表で説明されている場所は、%programdata%\Microsoft\AppV\Client\Catalog\ フォルダーにあります。

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

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

コンピューター上のユーザーがパッケージを使用できる (グローバルまたはグローバルではない) 場合、マニフェストはマシン カタログに格納されます。 パッケージがグローバルに発行されると、マシン カタログに格納されている動的構成ファイルがあります。そのため、パッケージがグローバルかどうかの判断は、マシン カタログにポリシー ファイル (UserDeploymentConfiguration ファイル) があるかどうかに従って定義されます。
既定のストレージの場所 %programdata%\Microsoft\AppV\Client\Catalog<br>
この場所は、パッケージ ストアの場所と同じではありません。 パッケージ ストアは、パッケージ ファイルのゴールデン コピーまたは元のコピーです。
マシン カタログ内のファイル - Manifest.xml
- DeploymentConfiguration.xml
- UserManifest.xml (グローバルに発行されたパッケージ)
- UserDeploymentConfiguration.xml (グローバルに発行されたパッケージ)
パッケージが接続グループの一部である場合に使用される追加のマシン カタログの場所 次の場所は、既定のストレージの場所として前に説明した特定のパッケージの場所に加えてです。

%programdata%\Microsoft\AppV\Client\Catalog\PackageGroups\ConGroupGUID\ConGroupVerGUID
パッケージが接続グループの一部である場合のマシン カタログ内の追加ファイル - PackageGroupDescriptor.xml
- UserPackageGroupDescriptor.xml (グローバルに公開された接続グループ)

ユーザー カタログ

この表で説明されている場所は、appdata\roaming\Microsoft\AppV\Client\Catalog\ フォルダーにあります。

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

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

ローミング ユーザーの場合、ユーザー カタログは、既定でユーザーをターゲットとする従来の 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

次の表のレジストリは、Registry\Client\Packages\PkgGUID\ フォルダーにあります。

場所 説明
- 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

次の表のレジストリは、Machine Registry\Client\PackageGroups\GrpGUID\ フォルダーとユーザー レジストリ クラス\Client\PackageGroups\GrpGUID\ フォルダーにあります。

場所 説明
- 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\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 に書き込みないようにすることです。 ポリシー キーを使用すると、管理者によって設定されたグループ ポリシーベースの設定が使用され、パッケージ設定ごとに使用されないようにします。 Windows モダン UI ベースのアプリケーションとの統合には、AppModel キーが必要です。 管理は、既定のパススルー キーを変更しないことをお勧めしますが、場合によっては、管理者がアプリケーションの動作を調整するために、さらにパススルー キーを追加する必要がある場合があります。

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

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

パッケージを追加する

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

パッケージのマウント

パッケージを明示的に読み込むには、 Mount-AppVClientPackage PowerShell コマンドレットを入力するか、 App-V クライアント UI を使用してパッケージをダウンロードします。 この操作により、パッケージ全体がパッケージ ストアに完全に読み込まれます。

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

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

ポリシー 説明
AllowHighCostLaunch 3G ネットワークと携帯ネットワーク経由のストリーミングを許可します
Autoload バックグラウンド読み込み設定を指定します。
0 – 無効にする
1 – 以前に使用したパッケージのみ
2 – すべてのパッケージ
PackageInstallationRoot ローカル コンピューターのパッケージ ストアのルート フォルダー
PackageSourceRoot パッケージのストリーミング元のルート オーバーライド
SharedContentStoreMode VDI シナリオで共有コンテンツ ストアを使用できるようにします

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

  • バックグラウンド ストリーミング
  • 最適化されたストリーミング
  • Streamエラー

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

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

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

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

Streamエラー

発行データの初期ストリームとプライマリ機能ブロックの後、より多くのファイルの要求によってストリーム エラーが実行されます。 これらのデータ ブロックは、必要に応じてパッケージ ストアにダウンロードされます。 この柔軟性により、ユーザーはパッケージのごく一部のみをダウンロードできます。通常は、パッケージを起動して通常のタスクを実行するのに十分です。 他のすべてのブロックは、ユーザーがパッケージ ストアに存在しないデータを必要とする操作を開始するとダウンロードされます。

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

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

パッケージの削除

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

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

App-V は、使用されているアプリケーションの書き込み方法に応じて、ローミング時にほぼネイティブなエクスペリエンスを提供できます。 既定では、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 アプリケーションを起動すると、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 の場所は HKLM\SOFTWARE\Microsoft\AppV\Client\Packages\{PkgGUID}\{UserSID}\REGISTRY\MACHINE\SOFTWARE です
- HKCU の場所は HKCU\SOFTWARE\Microsoft\AppV\Client\Packages\{PkgGUID}\Registry\User\{UserSID}\SOFTWARE です

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

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

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

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

パッケージ内の VFS ディレクトリ バッキング ストアのマップされた場所
ProgramFilesX86 C:\Users\Local\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\ProgramFilesX86
SystemX86 C:\Users\username\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\SystemX86
Windows C:\Users\username\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\Windows
appv_ROOT C:\Users\username\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\appv_ROOT
Appdata C:\Users\username\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\AppData

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

パッケージ内の VFS ディレクトリ バッキング ストアのマップされた場所
ProgramFilesX86 C:\Users\Local\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\ProgramFilesX86
SystemX86 C:\Users\Local\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\SystemX86
Windows C:\Users\Local\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\Windows
appv_ROOT C:\Users\Local\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\appv_ROOT
Appdata \Fileserver\users\Local\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 ディレクトリにマップされます。

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

  1. App-V アプリケーションをシャットダウンします。これにより、仮想環境もシャットダウンされます。
  2. ローミング AppData の場所のローカル キャッシュを圧縮し、.zip ファイルに格納します。
  3. .zip パッケージ化プロセスの最後にあるタイム スタンプを使用して、ファイルに名前を付けます。
  4. HKEY_CURRENT_USER\Software\Microsoft\AppV\Client\Packages\<GUID>\AppDataTime レジストリのタイム スタンプを、最後の既知の AppData タイム スタンプとして記録します。
  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 フル インフラストラクチャ ソリューションについて説明します。 app-V とMicrosoft Configuration Managerの統合の詳細については、「Configuration Managerを使用した App-V 仮想アプリケーションのデプロイ」を参照してください。

App-V アプリケーション ライフサイクル タスクは、ユーザー のサインイン時 (既定)、コンピューターの起動時、またはバックグラウンドの時間指定操作としてトリガーされます。 発行サーバー、更新間隔、パッケージ スクリプトの有効化など、App-V クライアント操作の設定は、Windows PowerShell コマンドを使用して構成されます (クライアントが有効になった後)。 「App-V クライアント構成設定: Windows PowerShell」を参照してください。

発行の更新

公開更新プロセスは、App-V クライアントで実行されるいくつかの小さな操作で構成されます。 App-V はアプリケーション仮想化テクノロジであり、タスク スケジューリング テクノロジではないため、Windows タスク スケジューラを使用して、ユーザーがサインインし、マシンの電源を入れ、スケジュールされた間隔でプロセスを有効にします。 前のセクションで示したセットアップ中のクライアント構成は、適切な設定でクライアントを大規模なコンピューター グループに配布する場合に推奨される方法です。 これらのクライアント設定は、次のWindows PowerShellコマンドレットで構成できます。

  • Add-AppVPublishingServer は、App-V パッケージを提供する App-V Publishing Server を使用してクライアントを構成します。
  • Set-AppVPublishingServer は、App-V Publishing Server の現在の設定を変更します。
  • Set-AppVClientConfiguration は、App-V クライアントの現在の設定を変更します。
  • Sync-AppVPublishingServer は、App-V 公開更新プロセスを手動で開始します。 このプロセスは、発行サーバーの構成中に作成されたスケジュールされたタスクでも使用されます。

次のセクションでは、公開更新プロセス中に行われる内容について詳しく説明します。

App-V パッケージの追加

App-V パッケージをクライアントに追加することは、公開更新プロセスの最初の手順です。 最終的な結果は、Windows PowerShellの Add-AppVClientPackage コマンドレットと同じですが、発行更新の追加プロセスが構成されている発行サーバーに接続し、アプリケーションの概要リストをクライアントに渡して、単一のパッケージ追加操作を実行するのではなく、より詳細な情報を取得します。

次に、パッケージまたは接続グループの追加または更新用にクライアントを構成し、appv ファイルにアクセスします。 次に、appv ファイルの内容が展開され、適切な場所にあるローカル オペレーティング システムに配置されます。 次の手順は、パッケージが Fault Streaming 用に構成されていると仮定して、プロセスの詳細なワークフローです。

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

  1. 発行更新プロセスのWindows 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 に格納されます。

      • アイコン: 拡張ポイントのターゲット。
      • 移植可能な実行可能ヘッダー (PE ヘッダー): ディスク上のイメージの必要性に関する基本情報を含む拡張ポイントのターゲット。直接またはファイルの種類を介してアクセスします。
      • スクリプト: 発行プロセス全体で使用するスクリプト ディレクトリをダウンロードします。
    4. 次のサブ手順を実行して、パッケージ ストアを設定します。

      1. 一覧表示されている任意のディレクトリの抽出されたパッケージを表すスパース ファイルをディスク上に作成します。

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

        その他のすべてのファイルは、ディレクトリがディスク上にスパースとして一覧表示され、オンデマンドでストリーミングされるときに作成されます。

    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. パッケージを HKLM\Microsoft\Software\AppV\MAV の App-V カーネル モード ドライバーに登録します。

    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.

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

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

App-V のパッケージ アップグレード プロセスの現在のバージョンは、ストレージ最適化の古いバージョンとは異なります。 App-V では、異なるユーザーが利用できるマシン上の同じパッケージの複数のバージョンがサポートされています。 パッケージ のバージョンは、パッケージ ストアとカタログが新しいリソースで更新されるため、いつでも追加できます。 新しいバージョンのアップグレード中に、新しいバージョンストアの場所に新しいファイルのみが追加され、変更されていないファイルのハード リンクが作成されます。 このような結果は、1 つのディスクの場所にのみファイルを表示し、ディスク上のファイルの場所エントリを持つすべてのフォルダーに投影することで、全体的なストレージを削減します。

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. マニフェストと動的構成ファイルから拡張機能ポイント (EP) を統合します。

    2. ファイル ベースの EP データは、パッケージ ストアのジャンクション ポイントを使用して AppData フォルダーに格納されます。

    3. バージョン 1 の EP は、新しいバージョンが使用可能になったときに既に存在します。

    4. 拡張ポイントは、新しい拡張ポイントまたは更新された拡張ポイントのマシンまたはユーザー カタログのバージョン 2 の場所に切り替えられます。

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

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

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

現在使用されているパッケージをアップグレードしようとすると、アップグレード タスクは保留中の状態になります。 アップグレードは、次の規則に従って後で実行されます。

タスクの種類 適用されるルール
パッケージをユーザーに発行するなど、ユーザー ベースのタスク 保留中のタスクは、ユーザーがサインアウトしてからサインインし直した後に実行されます。
グローバルベースのタスク (接続グループをグローバルに有効にするなど) 保留中のタスクは、コンピューターがシャットダウンされてから再起動されたときに実行されます。

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

ユーザー ベースまたはグローバル ベースのタスク レジストリ キーが生成される場所
ユーザー ベースのタスク HKEY_CURRENT_USER\Software\Microsoft\AppV\Client\PendingTasks
グローバル ベースのタスク HKEY_LOCAL_MACHINE\Software\Microsoft\AppV\Client\PendingTasks

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

タスク 詳細
コンピューターにパッケージを追加する このタスクはコンピューター固有であり、「 App-V パッケージを追加する方法」の手順を完了することで、いつでも実行できます。
パッケージを発行する 手順については、上記の「パッケージ発行」セクションを参照してください。 このプロセスでは、システム上の拡張ポイントを更新する必要があります。 アプリケーションの使用中は、このタスクを完了できません。

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

シナリオ 要件
アップグレードしようとすると App-V パッケージが使用されない パッケージの次のどのコンポーネントも使用できません。仮想アプリケーション、COM サーバー、またはシェル拡張機能。

管理者は新しいバージョンのパッケージを発行します。アップグレードは、パッケージ内のコンポーネントまたはアプリケーションが次回起動されるときに機能します。 パッケージの新しいバージョンがストリーミングされ、実行されます。
App-V パッケージは、管理者が新しいバージョンのパッケージを発行するときに使用されます App-V クライアントは、操作を "保留中" に設定します。これは、キューに入れられ、パッケージが使用されていないときに後で実行されることを意味します。

パッケージ アプリケーションが使用中の場合、ユーザーは仮想アプリケーションをシャットダウンし、その後アップグレードが発生する可能性があります。

パッケージにシェル拡張機能があり、Windows エクスプローラーによって永続的に読み込まれている場合、ユーザーはサインインできません。 ユーザーはサインオフしてからサインインし、App-V パッケージのアップグレードを開始する必要があります。

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

App-V パッケージは、2 つの方法のいずれかで発行できます。は、特定のユーザーまたはユーザー のグループに App-V パッケージを付与するユーザーとして、またはグローバルとして、マシンのすべてのユーザーに対して App-V パッケージをマシン全体に付与します。 パッケージのアップグレードが完了し、App-V パッケージが使用されていない場合は、次の 2 種類の発行を検討してください。

  • グローバル発行は、アプリケーションがマシンに発行されたときです。そのマシン上のすべてのユーザーが使用できます。 アップグレードは、App-V クライアント サービスの起動時に発生します。これは、実質的にマシンの再起動を意味します。
  • ユーザーの発行は、アプリケーションがユーザーに発行されたときです。 マシンに複数のユーザーが存在する場合は、アプリケーションをユーザーのサブセットに発行できます。 アップグレードは、ユーザーがサインインしたとき、または再度発行されたとき (定期的に、ConfigMgrポリシーの更新と評価、App-V の定期的な発行/更新、またはWindows PowerShell コマンドを使用して明示的に) 行われます。

App-V パッケージの削除

完全なインフラストラクチャでの App-V アプリケーションの削除は発行解除操作であり、パッケージの削除は実行されません。 このプロセスは上記の発行プロセスと同じですが、削除プロセスを追加する代わりに、App-V パッケージに対して行われた変更が逆になります。

App-V パッケージの修復

修復操作は簡単ですが、マシン上の多くの場所に影響する可能性があります。 前述の書き込み時コピー (COW) の場所が削除され、拡張ポイントがデインテグされ、再統合されます。 修復する前に、COW データの配置場所がレジストリに登録されている場所を確認してください。 修復操作を実行するには、App-V クライアント コンソールまたは Repair-AppVClientPackage PowerShell コマンドレットを使用して操作を開始するだけです。 その後、操作は自動的に完了します。

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.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 パッケージ内のトークン化された場所です。

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

ユーザーは、ファイルの種類の呼び出しを使用するか、登録された拡張子 (.docx) を持つファイルを開いて App-V アプリケーションを起動できます。これは、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</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 オブジェクトの登録は、Off、Isolated、Integrated を含む特定の App-V パッケージに対して、1 つまたは複数の操作モードの組み合わせで実行されます。 統合モードは、Out-of-process 型または In-process 型に対して構成されます。 COM モードと型の構成は、動的構成ファイル (deploymentconfig.xml または userconfig.xml) で実行されます。

App-V 統合の詳細については、「 Microsoft Application Virtualization 5.0 Integration」を参照してください。

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

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: リンクの埋め込みをサポートするアプリケーションでは、ユーザーは登録済みメール クライアントへのアクセスを想定したリンクを選択します。 App-V では、ローカル オペレーティング システムにパッケージごとに登録できる URL プロトコル ハンドラーがサポートされています。 シーケンス中に、URL プロトコル ハンドラーがパッケージに自動的に追加されます。

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

AppPath

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

AppPath 拡張ポイントは、マニフェストまたは動的構成ファイルで構成され、ユーザーの公開中にローカル コンピューターのレジストリに格納されます。 AppPath レビューの詳細については、「 App-V 5.0 のアプリ パス - 仮想アプリケーション拡張機能」を参照してください。

仮想アプリケーション

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

拡張ポイントルール

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

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

仮想拡張機能 ターゲット OS のシーケンス処理が必要 グローバル発行が必要
ショートカット
ファイルの種類の関連付け
URL プロトコル
AppPaths
COM モード
ソフトウェア クライアント
アプリケーション機能
コンテキスト メニュー ハンドラー
ドラッグ アンド ドロップ ハンドラー
データ オブジェクト ハンドラー
プロパティ シート ハンドラー
ヒント ハンドラー
列ハンドラー
シェル拡張機能
ブラウザー ヘルパー オブジェクト
Active X オブジェクト

動的構成処理

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

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

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

動的構成ファイルの例

次の例は、発行後と通常の操作中にマニフェスト、配置構成、およびユーザー構成ファイルの組み合わせを示しています。 これらの例は、各ファイルの省略された例です。 目的は、各ファイルで使用できる特定のカテゴリの完全な説明ではなく、ファイルの組み合わせのみを表示することです。 詳細については、 App-V シーケンス ガイドをダウンロードしてください。

マニフェスト

<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 では、仮想アプリケーションの発行中にクライアントのシーケンスとデプロイ中にサイド バイ サイド アセンブリの自動パッケージ化がサポートされます。 また、App-V では、シーケンシング マシンに存在しないアセンブリのシーケンシング中のサイド バイ サイド アセンブリのキャプチャもサポートされています。 Visual C++ (バージョン 8 以降) または MSXML ランタイムで構成されるアセンブリの場合、Sequencer は、監視中にインストールされていなくても、これらの依存関係を自動的に検出してキャプチャします。

サイド バイ サイド アセンブリ機能により、以前のバージョンの App-V の制限が取り除かれるので、App-V Sequencer はシーケンシング ワークステーションに既に存在するアセンブリをキャプチャせず、アセンブリを民営化し、パッケージごとのビット バージョンに制限しました。 この動作により、App-V アプリケーションがクライアントに展開され、必要なサイド バイ サイド アセンブリが見つからないため、アプリケーションの起動エラーが発生しました。 このエラーにより、パッケージ化プロセスが文書化され、パッケージに必要なすべてのアセンブリがユーザーのクライアント オペレーティング システムにローカルにインストールされていることを確認する必要がありました。 このタスクは、アセンブリの数と、必要な依存関係に関するアプリケーション ドキュメントがないため、管理と実装の両方の課題でした。

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

  • シーケンシング ワークステーションにアセンブリが既にインストールされているかどうかに関係なく、シーケンス中のサイド バイ サイド アセンブリの自動キャプチャ。
  • App-V クライアントは、まだインストールされていない場合、発行時に必要なサイド バイ サイド アセンブリをクライアント コンピューターに自動的にインストールします。
  • Sequencer は、シーケンサー レポート メカニズムで VC ランタイムの依存関係を報告します。
  • Sequencer を使用すると、Sequencer に既にインストールされているアセンブリをパッケージ化しないことを選択できます。これは、アセンブリが以前にターゲット コンピューターにインストールされているシナリオをサポートします。

サイド バイ サイド アセンブリの自動発行

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

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

クライアント ログ

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

記録されるイベントには、次の 3 つのカテゴリがあります。

  • 管理は、App-V クライアントに適用された構成のイベントをログに記録し、主な警告とエラーも含みます。
  • 操作 では、一般的な App-V の実行と個々のコンポーネントの使用状況がログに記録され、App-V クライアントの完了した App-V 操作の監査ログが作成されます。
  • 仮想アプリケーション は、仮想アプリケーションの起動と仮想化サブシステムの使用をログに記録します。