Veröffentlichen von Anwendungen und Clientinteraktionen

Dieser Artikel enthält technische Informationen zu gängigen App-V-Clientvorgängen und deren Integration in das lokale Betriebssystem.

Weitere Referenzinformationen finden Sie unter Microsoft Application Virtualization (App-V) Documentation Resources Download Page.For additional reference information, see Microsoft Application Virtualization (App-V) Documentation Resources Download Page.

Vom Sequencer erstellte App-V-Paketdateien

Der Sequencer erstellt App-V-Pakete und erzeugt eine virtualisierte Anwendung. Der Sequenzierungsprozess erstellt die folgenden Dateien:

Datei Beschreibung

.appv

  • Die primäre Paketdatei, die die erfassten Ressourcen und Zustandsinformationen aus dem Sequenzierungsprozess enthält.

  • Architektur der Paketdatei, der Veröffentlichung von Informationen und der Registrierung in tokenisierter Form, die bei der Übermittlung auf einen Computer und einen bestimmten Benutzer erneut angewendet werden kann.

.MSI

Ausführbarer Bereitstellungswrapper, mit dem Sie APPV-Dateien manuell oder mithilfe einer Bereitstellungsplattform eines Drittanbieters bereitstellen können.

_DeploymentConfig.XML

Datei zum Anpassen der Standardveröffentlichungsparameter für alle Anwendungen in einem Paket, das global für alle Benutzer auf einem Computer bereitgestellt wird, auf dem der App-V-Client ausgeführt wird.

_UserConfig.XML

Datei, die zum Anpassen der Veröffentlichungsparameter für alle Anwendungen in einem Paket verwendet wird, das für einen bestimmten Benutzer auf einem Computer bereitgestellt wird, auf dem der App-V-Client ausgeführt wird.

Report.xml

Zusammenfassung der Meldungen, die sich aus dem Sequenzierungsprozess ergeben, einschließlich nicht angegebener Treiber, Dateien und Registrierungsspeicherorte.

.CAB

Optional: Package Accelerator-Datei, die verwendet wird, um ein zuvor sequenziertes virtuelles Anwendungspaket automatisch neu zu erstellen.

.appvt

Optional: Sequencer-Vorlagendatei, die verwendet wird, um häufig wiederverwendete Sequencer-Einstellungen beizubehalten.

Informationen zur Sequenzierung finden Sie im Leitfaden zur Sequenzierung von Application Virtualization 5.0.

Was ist in der appv-Datei enthalten?

Die appv-Datei ist ein Container, in dem XML- und Nicht-XML-Dateien in einer einzelnen Entität gespeichert werden. Diese Datei basiert auf dem AppX-Format, das auf dem OPC-Standard (Open Packaging Conventions) basiert.

Um den Inhalt der appv-Datei anzuzeigen, erstellen Sie eine Kopie des Pakets, und benennen Sie die kopierte Datei dann in eine ZIP-Erweiterung um.

Die appv-Datei enthält die folgenden Ordner und Dateien, die beim Erstellen und Veröffentlichen einer virtuellen Anwendung verwendet werden:

Name Typ Beschreibung

Stamm

Dateiordner

Verzeichnis, das das Dateisystem für die virtualisierte Anwendung enthält, die während der Sequenzierung erfasst wird.

[Content_Types].xml

XML-Datei

Liste der wichtigsten Inhaltstypen in der appv-Datei (e.g. DLL, EXE, BIN).

AppxBlockMap.xml

XML-Datei

Layout der appv-Datei, die File-, Block- und BlockMap-Elemente verwendet, die den Speicherort und die Überprüfung von Dateien im App-V-Paket ermöglichen.

AppxManifest.xml

XML-Datei

Metadaten für das Paket, das die erforderlichen Informationen zum Hinzufügen, Veröffentlichen und Starten des Pakets enthält. Enthält Erweiterungspunkte (Dateitypzuordnungen und Verknüpfungen) sowie die Namen und GUIDs, die dem Paket zugeordnet sind.

FilesystemMetadata.xml

XML-Datei

Liste der dateien, die während der Sequenzierung erfasst wurden, einschließlich Attribute (z. B. Verzeichnisse, Dateien, nicht transparente Verzeichnisse, leere Verzeichnisse sowie lange und kurze Namen).

PackageHistory.xml

XML-Datei

Informationen zum Sequenzierungscomputer (Betriebssystemversion, Internet Explorer Version, .NET Framework-Version) und Prozess (Upgrade, Paketversion).

Registry.dat

DAT-Datei

Registrierungsschlüssel und -werte, die während des Sequenzierungsprozesses für das Paket erfasst wurden.

StreamMap.xml

XML-Datei

Liste der Dateien für den primären Featureblock und den Veröffentlichungsfeatureblock. Der Featureblock für die Veröffentlichung enthält die ICO-Dateien und die erforderlichen Teile der Dateien (EXE und DLL) für die Veröffentlichung des Pakets. Falls vorhanden, enthält der primäre Featureblock Dateien, die während des Sequenzprozesses für das Streaming optimiert wurden.

Datenspeicherorte des App-V-Clients

Der App-V-Client führt Aufgaben aus, um sicherzustellen, dass virtuelle Anwendungen ordnungsgemäß ausgeführt werden und wie lokal installierte Anwendungen funktionieren. Das Öffnen und Ausführen virtueller Anwendungen erfordert eine Zuordnung aus dem virtuellen Dateisystem und der Registrierung, um sicherzustellen, dass die Anwendung über die erforderlichen Komponenten einer herkömmlichen Anwendung verfügt, die von Benutzern erwartet wird. In diesem Abschnitt werden die Ressourcen beschrieben, die zum Ausführen virtueller Anwendungen erforderlich sind, und der Speicherort, an dem App-V die Ressourcen speichert.

Name Pfad Beschreibung

Paketspeicher

%ProgramData%\App-V

Standardspeicherort für schreibgeschützte Paketdateien

Computerkatalog

%ProgramData%\Microsoft\AppV\Client\Catalog

Enthält Konfigurationsdokumente pro Computer

Benutzerkatalog

%AppData%\Microsoft\AppV\Client\Catalog

Enthält Konfigurationsdokumente pro Benutzer

Verknüpfungssicherungen

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

Speichert vorherige Integrationspunkte, die die Wiederherstellung beim Aufheben der Veröffentlichung des Pakets ermöglichen

Copy on Write (COW) Roaming

%AppData%\Microsoft\AppV\Client\VFS

Beschreibbarer Roamingspeicherort für Paketänderungen

Copy on Write (COW) Local

%LocalAppData%\Microsoft\AppV\Client\VFS

Beschreibbarer Nicht-Roamingspeicherort für Paketänderungen

Computerregistrierung

HKLM\Software\Microsoft\AppV

Enthält Paketstatusinformationen, einschließlich VReg für Computer oder global veröffentlichte Pakete (Computerstruktur)

Benutzerregistrierung

HKCU\Software\Microsoft\AppV

Enthält Informationen zum Status des Benutzerpakets, einschließlich VReg.

Benutzerregistrierungsklassen

HKCU\Software\Classes\AppV

Enthält zusätzliche Informationen zum Status des Benutzerpakets.

Weitere Details zur Tabelle finden Sie im abschnitt unten und im gesamten Dokument.

Paketspeicher

Der App-V-Client verwaltet die im Paketspeicher eingebundenen Anwendungsressourcen. Dieser Standardspeicherort ist %ProgramData%\App-V, aber Sie können ihn während oder nach dem Setup konfigurieren, indem Sie den Set-AppVClientConfiguration PowerShell-Befehl verwenden, der die lokale Registrierung (PackageInstallationRoot Wert unter dem HKLM\Software\Microsoft\AppV\Client\Streaming Schlüssel) ändert. Der Paketspeicher muss sich unter einem lokalen Pfad auf dem Clientbetriebssystem befinden. Die einzelnen Pakete werden im Paketspeicher in Unterverzeichnissen gespeichert, die für die Paket-GUID und Version-GUID benannt sind.

Beispiel für einen Pfad zu einer bestimmten Anwendung:

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

Informationen zum Ändern des Standardspeicherspeichers während des Setups finden Sie unter Bereitstellen des App-V-Clients.

Freigegebener Inhaltsspeicher

Wenn der App-V-Client im Modus "Freigegebener Inhaltsspeicher" konfiguriert ist, werden keine Daten auf den Datenträger geschrieben, wenn ein Streamfehler auftritt. Dies bedeutet, dass die Pakete nur minimalen lokalen Speicherplatz (Veröffentlichungsdaten) benötigen. Die Verwendung von weniger Speicherplatz ist in VDI-Umgebungen, in denen der lokale Speicher begrenzt werden kann, sehr wünschenswert, und das Streaming der Anwendungen von einem Hochleistungsnetzwerkstandort (z. B. einem SAN) ist vorzuziehen. Weitere Informationen zum Speichermodus für freigegebene Inhalte finden Sie unter https://go.microsoft.com/fwlink/p/?LinkId=392750.

Hinweis Der Computer und der Paketspeicher müssen sich auf einem lokalen Laufwerk befinden, auch wenn Sie freigegebene Inhaltsspeicherkonfigurationen für den App-V-Client verwenden.

Paketkataloge

Der App-V-Client verwaltet die folgenden zwei dateibasierten Speicherorte:

  • Kataloge (Benutzer und Computer).

  • Registrierungsspeicherorte : Hängt davon ab, wie das Paket für die Veröffentlichung vorgesehen ist. Es gibt einen Katalog (Datenspeicher) für den Computer und einen Katalog für jeden einzelnen Benutzer. Der Computerkatalog speichert globale Informationen, die für alle Benutzer oder einen beliebigen Benutzer gelten, und der Benutzerkatalog speichert Informationen, die für einen bestimmten Benutzer gelten. Der Katalog ist eine Sammlung von dynamischen Konfigurationen und Manifestdateien. es gibt diskrete Daten für Datei und Registrierung pro Paketversion. 

Computerkatalog

Beschreibung

Speichert Paketdokumente, die Benutzern auf dem Computer zur Verfügung stehen, wenn Pakete hinzugefügt und veröffentlicht werden. Wenn ein Paket jedoch zum Zeitpunkt der Veröffentlichung "global" ist, sind die Integrationen für alle Benutzer verfügbar.

Wenn ein Paket nicht global ist, werden die Integrationen nur für bestimmte Benutzer veröffentlicht, aber es gibt weiterhin globale Ressourcen, die geändert und für alle Benutzer auf dem Clientcomputer sichtbar sind (z. B. das Paketverzeichnis befindet sich an einem freigegebenen Datenträgerspeicherort).

Wenn ein Paket für einen Benutzer auf dem Computer (global oder nicht global) verfügbar ist, wird das Manifest im Computerkatalog gespeichert. Wenn ein Paket global veröffentlicht wird, gibt es eine dynamische Konfigurationsdatei, die im Computerkatalog gespeichert ist. Daher wird die Bestimmung, ob ein Paket global ist, danach definiert, ob im Computerkatalog eine Richtliniendatei (UserDeploymentConfiguration-Datei) vorhanden ist.

Standardspeicherort

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

Dieser Speicherort ist nicht identisch mit dem Speicherort des Paketspeichers. Der Paketspeicher ist die goldene oder unberührte Kopie der Paketdateien.

Dateien im Computerkatalog

  • Manifest.xml

  • DeploymentConfiguration.xml

  • UserManifest.xml (global veröffentlichtes Paket)

  • UserDeploymentConfiguration.xml (global veröffentlichtes Paket)

Zusätzlicher Speicherort des Computerkatalogs, der verwendet wird, wenn das Paket Teil einer Verbindungsgruppe ist

Der folgende Speicherort ist zusätzlich zum oben erwähnten spezifischen Paketspeicherort:

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

Zusätzliche Dateien im Computerkatalog, wenn das Paket Teil einer Verbindungsgruppe ist

  • PackageGroupDescriptor.xml

  • UserPackageGroupDescriptor.xml (global veröffentlichte Verbindungsgruppe)

Benutzerkatalog

Beschreibung

Wird während des Veröffentlichungsprozesses erstellt. Enthält Informationen, die zum Veröffentlichen des Pakets verwendet werden und auch beim Start verwendet werden, um sicherzustellen, dass ein Paket für einen bestimmten Benutzer bereitgestellt wird. Wird an einem Roamingstandort erstellt und enthält benutzerspezifische Veröffentlichungsinformationen.

Wenn ein Paket für einen Benutzer veröffentlicht wird, wird die Richtliniendatei im Benutzerkatalog gespeichert. Gleichzeitig wird auch eine Kopie des Manifests im Benutzerkatalog gespeichert. Wenn eine Paketberechtigung für einen Benutzer entfernt wird, werden die relevanten Paketdateien aus dem Benutzerkatalog entfernt. Im Benutzerkatalog kann ein Administrator das Vorhandensein einer dynamischen Konfigurationsdatei anzeigen, die angibt, dass das Paket für diesen Benutzer berechtigt ist.

Für Roamingbenutzer muss sich der Benutzerkatalog an einem Roaming- oder freigegebenen Speicherort befinden, um das ältere App-V-Verhalten der Standardmäßigen Zielbenutzer beizubehalten. Berechtigung und Richtlinie sind an einen Benutzer und nicht an einen Computer gebunden. Daher sollten sie mit dem Benutzer roamingn, sobald sie bereitgestellt wurden.

Standardspeicherort

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

Dateien im Benutzerkatalog

  • UserManifest.xml

  • DynamicConfiguration.xml oder UserDeploymentConfiguration.xml

Zusätzlicher Benutzerkatalogspeicherort, der verwendet wird, wenn das Paket Teil einer Verbindungsgruppe ist

Der folgende Speicherort ist zusätzlich zum oben erwähnten spezifischen Paketspeicherort:

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

Zusätzliche Datei im Computerkatalog, wenn das Paket Teil einer Verbindungsgruppe ist

UserPackageGroupDescriptor.xml

Verknüpfungssicherungen

Während des Veröffentlichungsprozesses sichert der App-V-Client alle Verknüpfungen und Integrationspunkte auf %AppData%\Microsoft\AppV\Client\Integration\ShortCutBackups. Diese Sicherung ermöglicht die Wiederherstellung dieser Integrationspunkte auf die vorherigen Versionen, wenn die Veröffentlichung des Pakets aufgehoben wird.

Kopieren bei Schreibdateien

Der Paketspeicher enthält eine unberührte Kopie der Paketdateien, die vom Veröffentlichungsserver gestreamt wurden. Während des normalen Betriebs einer App-V-Anwendung erfordert der Benutzer oder Dienst möglicherweise Änderungen an den Dateien. Diese Änderungen werden nicht im Paketspeicher vorgenommen, um die Fähigkeit zu erhalten, die Anwendung zu reparieren, wodurch diese Änderungen entfernt werden. Diese Speicherorte, die als Copy On Write (COW) bezeichnet werden, unterstützen sowohl Roamingspeicherorte als auch Nicht-Roaming-Standorte. Der Speicherort der Änderungen hängt davon ab, wo die Anwendung so programmiert wurde, dass Änderungen in einer nativen Benutzeroberfläche geschrieben werden.

COW-Roaming

Der oben beschriebene COW-Roamingspeicherort speichert Änderungen an Dateien und Verzeichnissen, die auf den typischen %AppData%-Speicherort oder \Users\{username}\AppData\Roaming-Speicherort ausgerichtet sind. Diese Verzeichnisse und Dateien werden dann basierend auf den Betriebssystemeinstellungen übertragen.

COW lokal

Der lokale Speicherort von COW ähnelt dem Roamingspeicherort, aber die Verzeichnisse und Dateien werden nicht auf andere Computer übertragen, auch wenn die Roamingunterstützung konfiguriert wurde. Der oben beschriebene cow Local-Standort speichert Änderungen, die für typische Fenster und nicht für den Standort %AppData% gelten. Die aufgelisteten Verzeichnisse variieren, aber es gibt zwei Speicherorte für alle typischen Windows-Speicherorte (z. B. Common AppData und Common AppDataS). Das S gibt den eingeschränkten Speicherort an, wenn der virtuelle Dienst die Änderung als einen anderen Benutzer mit erhöhten Rechten als die angemeldeten Benutzer anfordert. Der Nicht-S-Standort speichert benutzerbasierte Änderungen.

Paketregistrierung

Bevor eine Anwendung auf die Paketregistrierungsdaten zugreifen kann, muss der App-V-Client die Paketregistrierungsdaten für die Anwendungen verfügbar machen. Der App-V-Client verwendet die echte Registrierung als Sicherungsspeicher für alle Registrierungsdaten.

Wenn dem App-V-Client ein neues Paket hinzugefügt wird, eine Kopie der REGISTRIERUNG. Die DAT-Datei aus dem Paket wird unter %ProgramData%\Microsoft\AppV\Client\VREG\{Version GUID}.daterstellt. Der Name der Datei ist die Versions-GUID mit dem . DAT-Erweiterung. Der Grund für diese Kopie besteht darin, sicherzustellen, dass die tatsächliche Hive-Datei im Paket nie verwendet wird, was das Entfernen des Pakets zu einem späteren Zeitpunkt verhindern würde.

Registry.dat aus dem Paketspeicher

 > 

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

Wenn die erste Anwendung aus dem Paket auf dem Client gestartet wird, wird der Inhalt aus der Hive-Datei vom Client bereitgestellt oder kopiert, wobei die Paketregistrierungsdaten an einem alternativen Speicherort HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AppV\Client\Packages\PackageGuid\Versions\VersionGuid\REGISTRYneu erstellt werden. Die mehrstufigen Registrierungsdaten verfügen über zwei unterschiedliche Typen von Computerdaten und Benutzerdaten. Computerdaten werden für alle Benutzer auf dem Computer freigegeben. Benutzerdaten werden für jeden Benutzer an einem benutzerspezifischen Speicherort HKCU\Software\Microsoft\AppV\Client\Packages\PackageGuid\Registry\Userbereitgestellt. Die Computerdaten werden letztendlich zum Zeitpunkt der Paketentfernung entfernt, und die Benutzerdaten werden bei einem Vorgang zum Aufheben der Veröffentlichung durch den Benutzer entfernt.

Paketregistrierungs-Staging im Vergleich zu Verbindungsgruppenregistrierungs-Staging

Wenn Verbindungsgruppen vorhanden sind, ist der vorherige Prozess des Stagings der Registrierung true, aber anstelle einer hive-Datei, die verarbeitet werden muss, gibt es mehr als eine. Die Dateien werden in der Reihenfolge verarbeitet, in der sie im XML-Code der Verbindungsgruppe angezeigt werden, wobei der erste Writer konflikte gewinnt.

Die mehrstufige Registrierung wird auf die gleiche Weise beibehalten wie im Fall eines einzelnen Pakets. Mehrstufige Benutzerregistrierungsdaten verbleiben für die Verbindungsgruppe, bis sie deaktiviert sind. Die Registrierungsdaten des mehrstufigen Computers werden beim Entfernen der Verbindungsgruppe entfernt.

Virtuelle Registrierung

Der Zweck der virtuellen Registrierung (VREG) besteht darin, Anwendungen eine einzelne zusammengeführte Ansicht der Paketregistrierung und der nativen Registrierung bereitzustellen. Es bietet auch Cow-Funktionalität (Copy-On-Write), das heißt, dass alle Änderungen an der Registrierung, die aus dem Kontext eines virtuellen Prozesses vorgenommen werden, an einem separaten COW-Speicherort vorgenommen werden. Dies bedeutet, dass der VREG bis zu drei separate Registrierungsspeicherorte in einer einzigen Ansicht kombinieren muss, basierend auf den aufgefüllten Speicherorten in der Registrierung COW -> Paket -> nativ. Wenn eine Anforderung für Registrierungsdaten gestellt wird, wird diese in der richtigen Reihenfolge gefunden, bis die angeforderten Daten gefunden werden. Das bedeutet, wenn ein Wert an einem COW-Standort gespeichert ist, wird er nicht an andere Speicherorte fortgesetzt. Wenn jedoch keine Daten am COW-Speicherort vorhanden sind, wird er zum Paket und dann zum nativen Speicherort fortgesetzt, bis die entsprechenden Daten gefunden werden.

Registrierungsspeicherorte

Es gibt zwei Speicherorte der Paketregistrierung und zwei Verbindungsgruppenspeicherorte, an denen der App-V-Client Registrierungsinformationen speichert, je nachdem, ob das Paket einzeln oder als Teil einer Verbindungsgruppe veröffentlicht wird. Es gibt drei COW-Speicherorte für Pakete und drei für Verbindungsgruppen, die von der VREG erstellt und verwaltet werden. Einstellungen für Pakete und Verbindungsgruppen werden nicht freigegeben:

Einzelpaket VReg:

Speicherort

Beschreibung

KUH

  • Computerregistrierung\Client\Packages\PkgGUID\REGISTRY (Nur der Prozess mit erhöhten Rechten kann schreiben)

  • Benutzerregistrierung\Client\Packages\PkgGUID\REGISTRY (Benutzerroaming alles, was unter HKCU geschrieben wurde, außer Software\Classes

  • Benutzerregistrierungsklassen\Client\Packages\PkgGUID\REGISTRY (HKCU\Software\Classes writes and HKLM for non elevated process)

Paket

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

  • Benutzerregistrierungsklassen\Client\Packages\PkgGUID\Versions\VerGUID\Registry

Ursprünglich

  • Speicherort der nativen Anwendungsregistrierung

Verbindungsgruppen-VReg:

Speicherort

Beschreibung

KUH

  • Computerregistrierung\Client\PackageGroups\GrpGUID\REGISTRY (nur der Prozess mit erhöhten Rechten kann schreiben)

  • User Registry\Client\PackageGroups\GrpGUID\REGISTRY (Alles, was in HKCU geschrieben wird, außer Software\Classes

  • Benutzerregistrierungsklassen\Client\PackageGroups\GrpGUID\REGISTRY

Paket

  • Computerregistrierung\Client\PackageGroups\GrpGUID\Versions\VerGUID\REGISTRY

  • Benutzerregistrierungsklassen\Client\PackageGroups\GrpGUID\Versions\VerGUID\REGISTRY

Ursprünglich

  • Speicherort der nativen Anwendungsregistrierung

Es gibt zwei COW-Standorte für HKLM; Prozesse mit erhöhten und nicht erhöhten Rechten. Prozesse mit erhöhten Rechten schreiben HKLM-Änderungen immer in die sichere COW unter HKLM. Prozesse mit nicht erhöhten Rechten schreiben HKLM-Änderungen immer in die nicht sichere COW unter HKCU\Software\Classes. Wenn eine Anwendung Änderungen aus HKLM liest, lesen Prozesse mit erhöhten Rechten Änderungen aus der sicheren COW unter HKLM. Lesevorgänge mit nicht erhöhten Rechten aus beiden, wobei die Änderungen, die in der unsicheren COW vorgenommen wurden, zuerst bevorzugt werden.

Passthrough-Schlüssel

Passthrough-Schlüssel ermöglichen es einem Administrator, bestimmte Schlüssel so zu konfigurieren, dass sie nur aus der nativen Registrierung gelesen werden können, wobei die Speicherorte Paket und COW umgangen werden. Passthrough-Speicherorte sind global für den Computer (nicht paketspezifisch) und können durch Hinzufügen des Pfads zum Schlüssel konfiguriert werden, der als Passthrough für den REG_MULTI_SZ Wert namens PassThroughPaths des SchlüsselsHKLM\Software\Microsoft\AppV\Subsystem\VirtualRegistrybehandelt werden sollte. Alle Schlüssel, die unter diesem Wert mit mehreren Zeichenfolgen (und ihren untergeordneten Elementen) angezeigt werden, werden als Passthrough behandelt.

Die folgenden Speicherorte sind standardmäßig als Passthrough-Speicherorte konfiguriert:

  • 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

Der Zweck von Passthrough-Schlüsseln besteht darin, sicherzustellen, dass eine virtuelle Anwendung keine Registrierungsdaten in den VReg schreibt, die für nicht virtuelle Anwendungen für einen erfolgreichen Betrieb oder eine erfolgreiche Integration erforderlich sind. Der Richtlinienschlüssel stellt sicher, dass Gruppenrichtlinie vom Administrator festgelegten Einstellungen und nicht pro Paket verwendet werden. Der AppModel-Schlüssel ist für die Integration in Windows Modern UI-basierte Anwendungen erforderlich. Es wird empfohlen, dass Verwaltungen keinen der Standard-Pass-Through-Schlüssel ändern, aber in einigen Fällen kann es aufgrund des Anwendungsverhaltens erforderlich sein, zusätzliche Pass-Through-Schlüssel hinzuzufügen.

App-V-Paketspeicherverhalten

App-V 5 verwaltet den Paketspeicher, d. h. den Speicherort, an dem die erweiterten Ressourcendateien aus der appv-Datei gespeichert werden. Standardmäßig wird dieser Speicherort unter %ProgramData%\App-V gespeichert und ist hinsichtlich der Speicherfunktionen nur durch freien Speicherplatz begrenzt. Der Paketspeicher ist nach den GUIDs für das Paket und die Version organisiert, wie im vorherigen Abschnitt erwähnt.

Hinzufügen von Paketen

App-V-Pakete werden beim Hinzufügen des Computers mit dem App-V-Client bereitgestellt. Der App-V-Client bietet bedarfsgesteuertes Staging. Während der Veröffentlichung oder eines manuellen Add-AppVClientPackage wird die Datenstruktur im Paketspeicher (c:\programdata\App-V\{PkgGUID}\{VerGUID}) erstellt. Die im im StreamMap.xml definierten Veröffentlichungsblock identifizierten Paketdateien werden dem System und den Ordnern der obersten Ebene und untergeordneten Dateien hinzugefügt, um sicherzustellen, dass beim Start geeignete Anwendungsressourcen vorhanden sind.

Einbinden von Paketen

Pakete können explizit mithilfe von PowerShell Mount-AppVClientPackage oder mithilfe der App-V-Clientbenutzeroberfläche geladen werden, um ein Paket herunterzuladen. Dieser Vorgang lädt das gesamte Paket vollständig in den Paketspeicher.

Streamingpakete

Der App-V-Client kann so konfiguriert werden, dass das Standardverhalten des Streamings geändert wird. Alle Streamingrichtlinien werden unter dem folgenden Registrierungsschlüssel gespeichert: HKEY_LOCAL_MAcHINE\Software\Microsoft\AppV\Client\Streaming. Richtlinien werden mithilfe des PowerShell-Cmdlets Set-AppvClientConfigurationfestgelegt. Die folgenden Richtlinien gelten für Streaming:

Richtlinie Beschreibung

AllowHighCostLaunch

Auf Windows 8 ermöglicht es streaming über 3G und Mobilfunknetze

Autoload

Gibt die Einstellung "Hintergrundladevorgang" an:

0 – Deaktiviert

1 – Nur zuvor verwendete Pakete

2 – Alle Pakete

PackageInstallationRoot

Der Stammordner für den Paketspeicher auf dem lokalen Computer

PackageSourceRoot

Die Stammüberschreibung, von der Pakete gestreamt werden sollen

SharedContentStoreMode

Ermöglicht die Verwendung des freigegebenen Inhaltsspeichers für VDI-Szenarien

Diese Einstellungen wirken sich auf das Verhalten des Streamings von App-V-Paketressourcen an den Client aus. Standardmäßig lädt App-V nur die Ressourcen herunter, die nach dem Herunterladen der anfänglichen Veröffentlichung und der primären Featureblöcke erforderlich sind. Es gibt drei spezifische Verhaltensweisen für Streamingpakete, die erläutert werden müssen:

  • Hintergrundstreaming

  • Optimiertes Streaming

  • Streamfehler

Hintergrundstreaming

Das PowerShell-Cmdlet Get-AppvClientConfiguration kann verwendet werden, um den aktuellen Modus für Das Hintergrundstreaming mit der Einstellung AutoLoad zu bestimmen und mit dem Cmdlet Set-AppvClientConfiguration oder aus der Registrierung (SCHLÜSSEL HKLM\SOFTWARE\Microsoft\AppV\ClientStreaming) zu ändern. Das Hintergrundstreaming ist eine Standardeinstellung, bei der die Einstellung Autoload so festgelegt ist, dass zuvor verwendete Pakete heruntergeladen werden. Das auf der Standardeinstellung (Wert=1) basierende Verhalten lädt App-V-Datenblöcke im Hintergrund herunter, nachdem die Anwendung gestartet wurde. Diese Einstellung kann für alle Pakete (Wert=0) deaktiviert oder aktiviert werden (Wert=2), unabhängig davon, ob sie gestartet wurden.

Optimiertes Streaming

App-V-Pakete können während der Sequenzierung mit einem primären Featureblock konfiguriert werden. Diese Einstellung ermöglicht es dem Sequenziertechniker, Startdateien für eine bestimmte Anwendung oder Anwendungen zu überwachen und die Datenblöcke im App-V-Paket für das Streaming beim ersten Start einer anwendung im Paket zu markieren.

Streamfehler

Nach dem anfänglichen Stream von Veröffentlichungsdaten und dem primären Featureblock führen Anforderungen für zusätzliche Dateien Zustromfehler aus. Diese Datenblöcke werden nach Bedarf in den Paketspeicher heruntergeladen. Dadurch kann ein Benutzer nur einen kleinen Teil des Pakets herunterladen, in der Regel genug, um das Paket zu starten und normale Aufgaben auszuführen. Alle anderen Blöcke werden heruntergeladen, wenn ein Benutzer einen Vorgang initiiert, der Daten erfordert, die sich derzeit nicht im Paketspeicher befinden.

Weitere Informationen zum Streaming von App-V-Paketen finden Sie unter. https://go.microsoft.com/fwlink/?LinkId=392770

Die Sequenzierung für die Streamingoptimierung ist unter verfügbar: https://go.microsoft.com/fwlink/?LinkId=392771.

Paketupgrades

App-V-Pakete müssen während des gesamten Lebenszyklus der Anwendung aktualisiert werden. App-V-Paketupgrades ähneln dem Paketveröffentlichungsvorgang, da jede Version an einem eigenen PackageRoot-Speicherort erstellt wird: %ProgramData%\App-V\{PkgGUID}\{newVerGUID}. Der Upgradevorgang wird optimiert, indem feste Links zu identischen und gestreamten Dateien aus anderen Versionen desselben Pakets erstellt werden.

Paketentfernung

Das Verhalten des App-V-Clients beim Entfernen von Paketen hängt von der methode ab, die zum Entfernen verwendet wird. Bei Verwendung einer vollständigen App-V-Infrastruktur zum Aufheben der Veröffentlichung der Anwendung werden die Benutzerkatalogdateien (Computerkatalog für global veröffentlichte Anwendungen) entfernt, der Paketspeicherort und die COW-Speicherorte werden jedoch beibehalten. Wenn das PowerShell-Cmdlet Remove-AppVClientPackge verwendet wird, um ein App-V-Paket zu entfernen, wird der Speicherort des Paketspeichers bereinigt. Beachten Sie, dass beim Aufheben der Veröffentlichung eines App-V-Pakets auf dem Verwaltungsserver kein Vorgang zum Entfernen ausgeführt wird. Bei keinem Vorgang werden die Paketspeicher-Paketdateien entfernt.

Roamingregistrierung und -daten

App-V 5 kann eine nahezu native Umgebung beim Roaming bereitstellen, je nachdem, wie die verwendete Anwendung geschrieben wird. App-V roamingt standardmäßig AppData, die am Roamingspeicherort gespeichert sind, basierend auf der Roamingkonfiguration des Betriebssystems. Andere Speicherorte für die Speicherung von dateibasierten Daten werden nicht von Computer zu Computer übertragen, da sie sich an Speicherorten befinden, die nicht übertragen werden.

Roaminganforderungen und Datenspeicherung für Benutzerkataloge

App-V speichert Daten, die den Status des Benutzerkatalogs darstellen, in form von:

  • Dateien unter %appdata%\Microsoft\AppV\Client\Catalog

  • Registrierungseinstellungen unter HKEY_CURRENT_USER\Software\Microsoft\AppV\Client\Packages

Zusammen stellen diese Dateien und Registrierungseinstellungen den Katalog des Benutzers dar, sodass entweder beide geroamt werden müssen, oder keines von beiden muss für einen bestimmten Benutzer geroamt werden. App-V unterstützt kein %AppData%-Roaming, aber kein Roaming des Benutzerprofils (Registrierung) oder umgekehrt.

Hinweis Das Cmdlet Repair-AppvClientPackage repariert nicht den Veröffentlichungsstatus von Paketen, bei denen der App-V-Zustand des Benutzers unter HKEY_CURRENT_USER fehlt oder nicht mit den Daten in %appdata% übereinstimmen.

Registrierungsbasierte Daten

Das Roaming der App-V-Registrierung gliedert sich in zwei Szenarien, wie in der folgenden Tabelle gezeigt.

Szenario Beschreibung

Anwendungen, die als Standardbenutzer ausgeführt werden

Wenn ein Standardbenutzer eine App-V-Anwendung startet, werden sowohl HKLM als auch HKCU für App-V-Anwendungen in der HKCU-Struktur auf dem Computer gespeichert. Dies stellt zwei unterschiedliche Pfade dar:

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

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

Die Standorte werden basierend auf den Einstellungen des Betriebssystems für roaming aktiviert.

Anwendungen, die mit Erhöhung ausgeführt werden

Wenn eine Anwendung mit Erhöhung gestartet wird:

  • HKLM-Daten werden in der HKLM-Struktur auf dem lokalen Computer gespeichert.

  • HKCU-Daten werden am Speicherort der Benutzerregistrierung gespeichert.

In diesem Szenario werden diese Einstellungen nicht mit normalen Roamingkonfigurationen des Betriebssystems übertragen, und die resultierenden Registrierungsschlüssel und -werte werden am folgenden Speicherort gespeichert:

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

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

App-V und Ordnerumleitung

App-V 5.0 SP2 unterstützt die Ordnerumleitung des roaminggespeicherten AppData-Ordners (%AppData%). Wenn die virtuelle Umgebung gestartet wird, wird der Roamingstatus AppData aus dem Roamingverzeichnis AppData des Benutzers in den lokalen Cache kopiert. Umgekehrt wird beim Herunterfahren der virtuellen Umgebung der lokale Cache, der der Roaming-AppData eines bestimmten Benutzers zugeordnet ist, an den tatsächlichen Speicherort des Roaming-AppData-Verzeichnisses dieses Benutzers übertragen.

Ein typisches Paket verfügt über mehrere Speicherorte, die im Sicherungsspeicher des Benutzers für Einstellungen in AppData\Local und AppData\Roaming zugeordnet sind. Diese Speicherorte sind die Speicherorte zum Kopieren bei Schreibvorgängen, die pro Benutzer im Profil des Benutzers gespeichert werden und zum Speichern von Änderungen an den VFS-Paketverzeichnissen und zum Schutz des VfS-Standardpakets verwendet werden.

In der folgenden Tabelle sind lokale und Roamingspeicherorte aufgeführt, wenn die Ordnerumleitung nicht implementiert wurde.

VFS-Verzeichnis im Paket Zugeordneter Speicherort des Sicherungsspeichers

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

In der folgenden Tabelle sind lokale und Roamingspeicherorte aufgeführt, wenn die Ordnerumleitung für %AppData% implementiert wurde und der Speicherort umgeleitet wurde (in der Regel an einen Netzwerkspeicherort).

VFS-Verzeichnis im Paket Zugeordneter Speicherort des Sicherungsspeichers

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

Der aktuelle VFS-Treiber des App-V-Clients kann nicht in Netzwerkspeicherorte schreiben. Daher erkennt der App-V-Client das Vorhandensein einer Ordnerumleitung und kopiert die Daten während der Veröffentlichung und beim Start der virtuellen Umgebung auf dem lokalen Laufwerk. Nachdem der Benutzer die App-V-Anwendung geschlossen hat und der App-V-Client die virtuelle Umgebung schließt, wird der lokale Speicher von VFS AppData wieder in das Netzwerk kopiert, wodurch das Roaming auf zusätzliche Computer ermöglicht wird, auf denen der Prozess wiederholt wird. Die detaillierten Schritte der Prozesse sind:

  1. Während der Veröffentlichung oder beim Starten der virtuellen Umgebung erkennt der App-V-Client den Speicherort des AppData-Verzeichnisses.

  2. Wenn der Roaming-AppData-Pfad lokal ist oder ino AppData\Roamingspeicherort zugeordnet ist, geschieht nichts.

  3. Wenn der Roaming-AppData-Pfad nicht lokal ist, wird das VFS AppData-Verzeichnis dem lokalen AppData-Verzeichnis zugeordnet.

Dieser Prozess löst das Problem einer nicht lokalen %AppData%-Instanz, die vom VFS-Treiber des App-V-Clients nicht unterstützt wird. Die an diesem neuen Speicherort gespeicherten Daten werden jedoch nicht mit Ordnerumleitung übertragen. Alle Änderungen während der Ausführung der Anwendung erfolgen am lokalen AppData-Speicherort und müssen an den umgeleiteten Speicherort kopiert werden. Die detaillierten Schritte dieses Prozesses sind:

  1. Die App-V-Anwendung wird heruntergefahren, wodurch die virtuelle Umgebung heruntergefahren wird.

  2. Der lokale Cache des Roamingspeicherorts von AppData wird komprimiert und in einer ZIP-Datei gespeichert.

  3. Ein Zeitstempel am Ende des ZIP-Paketerstellungsprozesses wird verwendet, um die Datei zu benennen.

  4. Der Zeitstempel wird in der Registrierung aufgezeichnet: HKEY_CURRENT_USER\Software\Microsoft\AppV\Client\Packages\<GUID>\AppDataTime als letzten bekannten AppData-Zeitstempel.

  5. Der Ordnerumleitungsprozess wird aufgerufen, um die ZIP-Datei auszuwerten und zu initiieren, die in das Roamingverzeichnis AppData hochgeladen wurde.

Der Zeitstempel wird verwendet, um ein Szenario mit dem "Last Writer wins" zu bestimmen, wenn ein Konflikt vorliegt, und wird verwendet, um den Download der Daten zu optimieren, wenn die App-V-Anwendung veröffentlicht oder die virtuelle Umgebung gestartet wird. Durch die Ordnerumleitung werden die Daten von allen anderen Clients verfügbar, die von der unterstützenden Richtlinie abgedeckt sind, und der Prozess zum Speichern der AppData\Roaming-Daten am lokalen AppData-Speicherort auf dem Client initiiert. Die detaillierten Prozesse sind:

  1. Der Benutzer startet die virtuelle Umgebung, indem er eine Anwendung startet.

  2. Die virtuelle Umgebung der Anwendung sucht nach der letzten ZIP-Datei mit Zeitstempel, falls vorhanden.

  3. Die Registrierung wird auf den letzten bekannten hochgeladenen Zeitstempel überprüft, falls vorhanden.

  4. Die neueste ZIP-Datei wird heruntergeladen, es sei denn, der Zeitstempel des lokalen letzten bekannten Uploads ist größer oder gleich dem Zeitstempel aus der ZIP-Datei.

  5. Wenn der lokale Zeitstempel des letzten bekannten Uploads vor dem der letzten ZIP-Datei am Roamingspeicherort "AppData" liegt, wird die ZIP-Datei in das lokale temporäre Verzeichnis im Profil des Benutzers extrahiert.

  6. Nachdem die ZIP-Datei erfolgreich extrahiert wurde, wird der lokale Cache des roaminggespeicherten AppData-Verzeichnisses umbenannt, und die neuen Daten werden verschoben.

  7. Das umbenannte Verzeichnis wird gelöscht, und die Anwendung wird mit den zuletzt gespeicherten Roaming-AppData-Daten geöffnet.

Dadurch wird das erfolgreiche Roaming von Anwendungseinstellungen abgeschlossen, die in AppData\Roaming-Speicherorten vorhanden sind. Die einzige andere Bedingung, die behoben werden muss, ist ein Paketreparaturvorgang. Die Details des Prozesses sind:

  1. Erkennen Sie während der Reparatur, ob der Pfad zum Roaming-AppData-Verzeichnis des Benutzers nicht lokal ist.

  2. Zuordnen der nicht lokalen Roaming-AppData-Pfadziele werden die erwarteten Roaming- und lokalen AppData-Speicherorte neu erstellt.

  3. Löschen Sie den in der Registrierung gespeicherten Zeitstempel, falls vorhanden.

Bei diesem Prozess werden sowohl die lokalen als auch die Netzwerkspeicherorte für AppData neu erstellt und der Registrierungsdatensatz des Zeitstempels entfernt.

Lebenszyklusverwaltung für App-V-Clientanwendungen

In einer vollständigen App-V-Infrastruktur werden Anwendungen nach der Sequenz verwaltet und über die App-V-Verwaltungs- und Veröffentlichungsserver für Benutzer oder Computer veröffentlicht. In diesem Abschnitt werden die Vorgänge, die während der allgemeinen App-V-Anwendungslebenszyklusvorgänge (Hinzufügen, Veröffentlichen, Starten, Upgraden und Entfernen) auftreten, sowie die Datei- und Registrierungsspeicherorte beschrieben, die aus Sicht des App-V-Clients geändert und geändert werden. Die App-V-Clientvorgänge werden als eine Reihe von PowerShell-Befehlen ausgeführt, die auf dem Computer initiiert werden, auf dem der App-V-Client ausgeführt wird.

Dieses Dokument konzentriert sich auf App-V Full Infrastructure-Lösungen. Spezifische Informationen zur App-V-Integration mit Configuration Manager 2012 finden Sie unter Von App-V unterstützte Konfigurationen.

Die Lebenszyklusaufgaben der App-V-Anwendung werden bei der Benutzeranmeldung (Standardeinstellung), beim Computerstart oder als zeitgesteuerte Hintergrundvorgänge ausgelöst. Die Einstellungen für die App-V-Clientvorgänge, einschließlich Veröffentlichungsserver, Aktualisierungsintervalle, Paketskriptaktivierung usw., werden während der Einrichtung des Clients oder nach dem Setup mit PowerShell-Befehlen konfiguriert. Weitere Informationen finden Sie im Abschnitt Bereitstellen des Clients auf TechNet unter: Bereitstellen des App-V-Clients oder Verwenden der PowerShell:

get-command *appv*

Aktualisierung der Veröffentlichung

Der Veröffentlichungsaktualisierungsprozess besteht aus mehreren kleineren Vorgängen, die auf dem App-V-Client ausgeführt werden. Da App-V eine Technologie zur Anwendungsvirtualisierung und keine Technologie zur Aufgabenplanung ist, wird der Windows-Aufgabenplaner verwendet, um den Prozess bei der Benutzeranmeldung, beim Starten des Computers und in geplanten Intervallen zu aktivieren. Die Konfiguration des Clients während des oben aufgeführten Setups ist die bevorzugte Methode beim Verteilen des Clients auf eine große Gruppe von Computern mit den richtigen Einstellungen. Diese Clienteinstellungen können mit den folgenden PowerShell-Cmdlets konfiguriert werden:

  • Add-AppVPublishingServer: Konfiguriert den Client mit einem App-V-Veröffentlichungsserver, der App-V-Pakete bereitstellt.

  • Set-AppVPublishingServer: Ändert die aktuellen Einstellungen für den App-V-Veröffentlichungsserver.

  • Set-AppVClientConfiguration: Ändert die aktuellen Einstellungen für den App-V-Client.

  • Sync-AppVPublishingServer: Initiiert manuell einen App-V-Veröffentlichungsaktualisierungsprozess. Dies wird auch in den geplanten Aufgaben verwendet, die während der Konfiguration des Veröffentlichungsservers erstellt wurden.

In den folgenden Abschnitten werden die Vorgänge in verschiedenen Phasen einer App-V-Veröffentlichungsaktualisierung ausführlich erläutert. Zu den Themen gehören:

  • Hinzufügen eines App-V-Pakets

  • Veröffentlichen eines App-V-Pakets

Hinzufügen eines App-V-Pakets

Das Hinzufügen eines App-V-Pakets zum Client ist der erste Schritt des Veröffentlichungsaktualisierungsprozesses. Das Endergebnis ist dasselbe wie das Add-AppVClientPackage Cmdlet in PowerShell, außer während des Vorgangs zum Hinzufügen der Veröffentlichungsaktualisierung wird der konfigurierte Veröffentlichungsserver kontaktiert und übergibt eine allgemeine Liste von Anwendungen zurück an den Client, um ausführlichere Informationen und nicht einen einzelnen Vorgang zum Hinzufügen von Paketen abzurufen. Der Prozess wird fortgesetzt, indem der Client für Paket- oder Verbindungsgruppenerneuerungen oder -updates konfiguriert wird und dann auf die appv-Datei zugreift. Als Nächstes werden die Inhalte der appv-Datei erweitert und auf dem lokalen Betriebssystem an den entsprechenden Speicherorten platziert. Im Folgenden finden Sie einen detaillierten Workflow des Prozesses, vorausgesetzt, das Paket ist für Fault Streaming konfiguriert.

Hinzufügen eines App-V-Pakets

  1. Manuelle Initiierung über PowerShell oder Tasksequenzinitiierung des Veröffentlichungsaktualisierungsprozesses.

    1. Der App-V-Client stellt eine HTTP-Verbindung her und fordert basierend auf dem Ziel eine Liste von Anwendungen an. Der Veröffentlichungsaktualisierungsprozess unterstützt die Ausrichtung auf Computer oder Benutzer.

    2. Der App-V-Veröffentlichungsserver verwendet die Identität des initiierenden Ziels, Benutzers oder Computers und fragt die Datenbank nach einer Liste berechtigter Anwendungen ab. Die Liste der Anwendungen wird als XML-Antwort bereitgestellt, die der Client verwendet, um zusätzliche Anforderungen an den Server zu senden, um weitere Informationen pro Paket zu erhalten.

  2. Der Veröffentlichungs-Agent auf dem App-V-Client führt alle unten serialisierten Aktionen aus.

    Bewerten Sie alle Verbindungsgruppen, die nicht veröffentlicht oder deaktiviert sind, da Paketversionsupdates, die Teil der Verbindungsgruppe sind, nicht verarbeitet werden können.

  3. Konfigurieren Sie die Pakete, indem Sie einen Add- oder Update-Vorgang identifizieren.

    1. Der App-V-Client verwendet die AppX-API von Windows und greift vom Veröffentlichungsserver auf die appv-Datei zu.

    2. Die Paketdatei wird geöffnet, und die AppXManifest.xml und StreamMap.xml werden in den Paketspeicher heruntergeladen.

    3. Vollständiges Streamen von Blockdaten, die im StreamMap.xml definiert sind. Speichert die Veröffentlichungsblockdaten im Paketspeicher\PkgGUID\VerGUID\Root.

      • Symbole: Ziele von Erweiterungspunkten.

      • Portable Executable Headers (PE-Header): Ziele von Erweiterungspunkten, die die Basisinformationen über die Imageanforderung auf einem Datenträger enthalten, auf den direkt zugegriffen wird, oder über Dateitypen.

      • Skripts: Laden Sie das Skriptverzeichnis zur Verwendung während des gesamten Veröffentlichungsprozesses herunter.

    4. Füllen Sie den Paketspeicher auf:

      1. Erstellen Sie Sparsedateien auf dem Datenträger, die das extrahierte Paket für alle aufgelisteten Verzeichnisse darstellen.

      2. Stellen Sie Dateien und Verzeichnisse der obersten Ebene unter dem Stamm bereit.

      3. Alle anderen Dateien werden erstellt, wenn das Verzeichnis als Sparse auf dem Datenträger aufgeführt und bei Bedarf gestreamt wird.

    5. Erstellen Sie die Computerkatalogeinträge. Erstellen Sie die Manifest.xml und DeploymentConfiguration.xml aus den Paketdateien (wenn kein DeploymentConfiguration.xml Datei im Paket erstellt wird, wird ein Platzhalter erstellt).

    6. Erstellen des Speicherorts des Paketspeichers in der Registrierung HKLM\Software\Microsoft\AppV\Client\Packages\PkgGUID\Versions\VerGUID\Catalog

    7. Erstellen Sie die Registry.dat-Datei aus dem Paketspeicher in %ProgramData%\Microsoft\AppV\Client\VReg\{VersionGUID}.dat

    8. Registrieren des Pakets mit dem App-V-Kernelmodustreiber HKLM\Microsoft\Software\AppV\MAV

    9. Aufrufen von Skripts aus der AppxManifest.xml- oder DeploymentConfig.xml-Datei für die Zeitsteuerung zum Hinzufügen von Paketen.

  4. Konfigurieren Sie Verbindungsgruppen durch Hinzufügen und Aktivieren oder Deaktivieren.

  5. Entfernen Sie Objekte, die nicht auf dem Ziel (Benutzer oder Computer) veröffentlicht werden.

    Hinweis Dadurch wird keine Paketlöschung durchgeführt, sondern Integrationspunkte für das bestimmte Ziel (Benutzer oder Computer) entfernt und Benutzerkatalogdateien (Computerkatalogdateien für global veröffentlicht) entfernt.

  6. Rufen Sie die Hintergrundlastbereitstellung basierend auf der Clientkonfiguration auf.

  7. Pakete, die bereits über Veröffentlichungsinformationen für den Computer oder Benutzer verfügen, werden sofort wiederhergestellt.

    Hinweis Diese Bedingung tritt als Produkt der Entfernung auf, ohne die Veröffentlichung mit Hintergrundzugabe des Pakets aufzuheben.

Dadurch wird das Hinzufügen eines App-V-Pakets des Veröffentlichungsaktualisierungsprozesses abgeschlossen. Der nächste Schritt besteht darin, das Paket auf dem spezifischen Ziel (Computer oder Benutzer) zu veröffentlichen.

-Paket fügt Datei- und Registrierungsdaten hinzu.

Veröffentlichen eines App-V-Pakets

Während des Veröffentlichungsaktualisierungsvorgangs fügt der spezifische Veröffentlichungsvorgang (Publish-AppVClientPackage) Dem Benutzerkatalog Einträge hinzu, ordnet dem Benutzer Berechtigungen zu, identifiziert den lokalen Speicher und schließt alle Integrationsschritte ab. Im Folgenden finden Sie die ausführlichen Schritte.

Veröffentlichen und App-V-Paket

  1. Paketeinträge werden dem Benutzerkatalog hinzugefügt.

    1. Benutzerorientierte Pakete: die UserDeploymentConfiguration.xml und UserManifest.xml werden auf dem Computer im Benutzerkatalog platziert.

    2. Computerorientierte (globale) Pakete: Die UserDeploymentConfiguration.xml wird im Computerkatalog platziert.

  2. Registrieren des Pakets mit dem Kernelmodustreiber für den Benutzer unter HKLM\Software\Microsoft\AppV\MAV

  3. Führen Sie Integrationsaufgaben aus.

    1. Erstellen sie Erweiterungspunkte.

    2. Speichern Sie Sicherungsinformationen in der Registrierung und dem Roamingprofil des Benutzers (Verknüpfungssicherungen).

      Hinweis Dadurch werden Wiederherstellungserweiterungspunkte aktiviert, wenn die Veröffentlichung des Pakets aufgehoben wird.

    3. Führen Sie Skripts für die Veröffentlichungszeit aus.

Das Veröffentlichen eines App-V-Pakets, das Teil einer Verbindungsgruppe ist, ähnelt dem oben genannten Prozess sehr. Bei Verbindungsgruppen enthält der Pfad, in dem die spezifischen Kataloginformationen gespeichert werden, PackageGroups als untergeordnetes Element des Katalogverzeichnisses. Weitere Informationen finden Sie in den oben aufgeführten Kataloginformationen für Computer und Benutzer.

Paket fügt Datei- und Registrierungsdaten hinzu – global.

Anwendungsstart

Nach der Veröffentlichungsaktualisierung startet der Benutzer eine App-V-Anwendung und anschließend erneut. Der Prozess ist sehr einfach und für den schnellen Start mit einem Minimum an Netzwerkdatenverkehr optimiert. Der App-V-Client überprüft den Pfad zum Benutzerkatalog auf Dateien, die während der Veröffentlichung erstellt wurden. Nachdem die Rechte zum Starten des Pakets eingerichtet wurden, erstellt der App-V-Client eine virtuelle Umgebung, beginnt mit dem Streamen aller erforderlichen Daten und wendet während der Erstellung der virtuellen Umgebung die entsprechenden Manifest- und Bereitstellungskonfigurationsdateien an. Nachdem die virtuelle Umgebung für das jeweilige Paket und die Anwendung erstellt und konfiguriert wurde, wird die Anwendung gestartet.

Starten von App-V-Anwendungen

  1. Der Benutzer startet die Anwendung, indem er auf eine Verknüpfung oder einen Dateitypaufruf klickt.

  2. Der App-V-Client überprüft die Existenz im Benutzerkatalog für die folgenden Dateien

    • UserDeploymentConfiguration.xml

    • UserManifest.xml

  3. Wenn die Dateien vorhanden sind, ist die Anwendung für diesen bestimmten Benutzer berechtigt, und die Anwendung startet den Startvorgang. An diesem Punkt ist kein Netzwerkdatenverkehr vorhanden.

  4. Als Nächstes überprüft der App-V-Client, ob der Pfad für das Paket, das für den App-V-Clientdienst registriert ist, in der Registrierung gefunden wird.

  5. Beim Ermitteln des Pfads zum Paketspeicher wird die virtuelle Umgebung erstellt. Wenn dies der erste Start ist, wird der primäre Featureblock heruntergeladen, falls vorhanden.

  6. Nach dem Herunterladen verwendet der App-V-Clientdienst die Manifest- und Bereitstellungskonfigurationsdateien, um die virtuelle Umgebung zu konfigurieren, und alle App-V-Subsysteme werden geladen.

  7. Die Anwendung wird gestartet. Für alle fehlenden Dateien im Paketspeicher (Sparsedateien) streamt App-V die Dateien nach Bedarf.

    Paket fügt Datei- und Registrierungsdaten hinzu – Stream.

Aktualisieren eines App-V-Pakets

Der App-V 5-Paketupgradeprozess unterscheidet sich von den älteren Versionen von App-V. App-V unterstützt mehrere Versionen desselben Pakets auf einem Computer, der für unterschiedliche Benutzer berechtigt ist. Paketversionen können jederzeit hinzugefügt werden, wenn paketspeicher und kataloge mit den neuen Ressourcen aktualisiert werden. Der einzige Prozess, der spezifisch für das Hinzufügen neuer Versionsressourcen ist, ist die Speicheroptimierung. Während eines Upgrades werden nur die neuen Dateien zum Speicherort der neuen Version hinzugefügt, und für unveränderte Dateien werden feste Links erstellt. Dadurch wird der Gesamtspeicher reduziert, indem die Datei nur an einem Datenträgerspeicherort angezeigt und dann in alle Ordner mit einem Dateispeicherorteintrag auf dem Datenträger projiziert wird. Die spezifischen Details zum Upgrade eines App-V-Pakets sind wie folgt:

Aktualisieren eines App-V-Pakets

  1. Der App-V-Client führt eine Veröffentlichungsaktualisierung durch und ermittelt eine neuere Version eines App-V-Pakets.

  2. Paketeinträge werden dem entsprechenden Katalog für die neue Version hinzugefügt.

    1. Benutzerorientierte Pakete: Die UserDeploymentConfiguration.xml und UserManifest.xml werden auf dem Computer im Benutzerkatalog unter appdata\roaming\Microsoft\AppV\Client\Catalog\Packages\PkgGUID\VerGUID platziert.

    2. Computerorientierte (globale) Pakete: Die UserDeploymentConfiguration.xml wird im Computerkatalog unter %programdata%\Microsoft\AppV\Client\Catalog\Packages\PkgGUID\VerGUID platziert.

  3. Registrieren des Pakets mit dem Kernelmodustreiber für den Benutzer unter HKLM\Software\Microsoft\AppV\MAV

  4. Führen Sie Integrationsaufgaben aus.

    • Integrieren Sie Erweiterungspunkte (EP) aus den Manifest- und dynamischen Konfigurationsdateien.
    1. Dateibasierte EP-Daten werden unter Verwendung von Verbindungspunkten aus dem Paketspeicher im Ordner AppData gespeichert.

    2. EPs der Version 1 sind bereits vorhanden, wenn eine neue Version verfügbar wird.

    3. Die Erweiterungspunkte werden in Computer- oder Benutzerkatalogen für alle neueren oder aktualisierten Erweiterungspunkte an den Speicherort der Version 2 umgestellt.

  5. Führen Sie Skripts für die Veröffentlichungszeit aus.

  6. Installieren Sie nach Bedarf parallele Assemblys.

Aktualisieren eines verwendeten App-V-Pakets

Ab App-V 5 SP2: Wenn Sie versuchen, ein Paket zu aktualisieren, das von einem Endbenutzer verwendet wird, wird der Upgradetask in den Status Ausstehend versetzt. Das Upgrade wird später gemäß den folgenden Regeln ausgeführt:

Art der Hintergrundaufgabe Anwendbare Regel

Benutzerbasierte Aufgabe, z. B. Veröffentlichen eines Pakets für einen Benutzer

Die ausstehende Aufgabe wird ausgeführt, nachdem sich der Benutzer abmeldet und sich dann wieder anmeldet.

Global basierende Aufgabe, z. B. globales Aktivieren einer Verbindungsgruppe

Die ausstehende Aufgabe wird ausgeführt, wenn der Computer heruntergefahren und dann neu gestartet wird.

Wenn eine Aufgabe in einen ausstehenden Zustand versetzt wird, generiert der App-V-Client wie folgt auch einen Registrierungsschlüssel für die ausstehende Aufgabe:

Benutzerbasierte oder global basierte Aufgabe Wo der Registrierungsschlüssel generiert wird

Benutzerbasierte Aufgaben

KEY_CURRENT_USER\Software\Microsoft\AppV\Client\PendingTasks

Global basierte Aufgaben

HKEY_LOCAL_MACHINE\Software\Microsoft\AppV\Client\PendingTasks

Die folgenden Vorgänge müssen abgeschlossen werden, bevor Benutzer die neuere Version des Pakets verwenden können:

Aufgabe Details

Hinzufügen des Pakets zum Computer

Diese Aufgabe ist computerspezifisch, und Sie können sie jederzeit ausführen, indem Sie die Schritte im Abschnitt Paket hinzufügen oben ausführen.

Veröffentlichen des Pakets

Schritte finden Sie oben im Abschnitt Paketveröffentlichung. Für diesen Prozess müssen Sie Erweiterungspunkte auf dem System aktualisieren. Endbenutzer können die Anwendung nicht verwenden, wenn Sie diese Aufgabe ausführen.

Verwenden Sie die folgenden Beispielszenarien als Leitfaden für das Aktualisieren von Paketen.

Szenario Anforderungen

Das App-V-Paket wird nicht verwendet, wenn Sie versuchen, ein Upgrade durchzuführen.

Keine der folgenden Komponenten des Pakets kann verwendet werden: virtuelle Anwendung, COM-Server oder Shellerweiterungen.

Der Administrator veröffentlicht eine neuere Version des Pakets, und das Upgrade funktioniert beim nächsten Starten einer Komponente oder Anwendung innerhalb des Pakets. Die neue Version des Pakets wird gestreamt und ausgeführt. In diesem Szenario in App-V 5 SP2 hat sich gegenüber früheren Versionen von App-V 5 nichts geändert.

Das App-V-Paket wird verwendet, wenn der Administrator eine neuere Version des Pakets veröffentlicht.

Der Upgradevorgang wird vom App-V-Client auf Ausstehend festgelegt. Dies bedeutet, dass er in die Warteschlange eingereiht und später ausgeführt wird, wenn das Paket nicht verwendet wird.

Wenn die Paketanwendung verwendet wird, fährt der Benutzer die virtuelle Anwendung herunter, danach kann das Upgrade erfolgen.

Wenn das Paket Shellerweiterungen (Office 2013) aufweist, die dauerhaft von Windows Explorer geladen werden, kann der Benutzer nicht angemeldet werden. Benutzer müssen sich abmelden und wieder anmelden, um das App-V-Paketupgrade zu initiieren.

Globale Veröffentlichung im Vergleich zu Benutzerveröffentlichung

App-V-Pakete können auf eine von zwei Arten veröffentlicht werden: Benutzer, der ein App-V-Paket für einen bestimmten Benutzer oder eine gruppe von Benutzern berechtigt, und Global, der das App-V-Paket für den gesamten Computer für alle Benutzer des Computers berechtigt. Wenn ein Paketupgrade erstellt wurde und das App-V-Paket nicht mehr verwendet wird, sollten Sie die beiden Arten der Veröffentlichung in Betracht ziehen:

  • Global veröffentlicht: Die Anwendung wird auf einem Computer veröffentlicht; Alle Benutzer auf diesem Computer können es verwenden. Das Upgrade erfolgt, wenn der App-V-Clientdienst gestartet wird. Dies bedeutet im Grunde einen Neustart des Computers.

  • Benutzer veröffentlicht: Die Anwendung wird für einen Benutzer veröffentlicht. Wenn mehrere Benutzer auf dem Computer vorhanden sind, kann die Anwendung für eine Teilmenge der Benutzer veröffentlicht werden. Das Upgrade erfolgt, wenn sich der Benutzer anmeldet oder erneut veröffentlicht wird (in regelmäßigen Abständen, Aktualisierung und Auswertung der ConfigMgr-Richtlinie oder regelmäßige App-V-Veröffentlichung/Aktualisierung oder explizit über PowerShell-Befehle).

Entfernen eines App-V-Pakets

Das Entfernen von App-V-Anwendungen in einer vollständigen Infrastruktur ist ein Vorgang zum Aufheben der Veröffentlichung und führt keine Paketentfernung durch. Der Prozess ist identisch mit dem oben genannten Veröffentlichungsprozess, aber anstatt den Entfernungsprozess hinzuzufügen, werden die Änderungen, die für App-V-Pakete vorgenommen wurden, rückgängig gemacht.

Reparieren eines App-V-Pakets

Der Reparaturvorgang ist sehr einfach, kann sich jedoch auf viele Positionen auf der Maschine auswirken. Die zuvor erwähnten Cow-Speicherorte (Copy On Write) werden entfernt, und Erweiterungspunkte werden entfernt und dann wieder integriert. Überprüfen Sie die Speicherorte der COW-Datenplatzierung, indem Sie überprüfen, wo sie in der Registrierung registriert sind. Dieser Vorgang wird automatisch ausgeführt, und es gibt keine administrative Kontrolle außer dem Initiieren eines Reparaturvorgangs über die App-V-Clientkonsole oder über PowerShell (Repair-AppVClientPackage).

Integration von App-V-Paketen

Die App-V-Client- und Paketarchitektur ermöglicht eine spezifische Integration mit dem lokalen Betriebssystem während des Hinzufügens und Veröffentlichens von Paketen. Drei Dateien definieren die Integrations- oder Erweiterungspunkte für ein App-V-Paket:

  • AppXManifest.xml: Wird im Paket mit Fallbackkopien gespeichert, die im Paketspeicher und im Benutzerprofil gespeichert sind. Enthält die Optionen, die während des Sequenzierungsprozesses erstellt wurden.

  • DeploymentConfig.xml: Stellt Konfigurationsinformationen von computerbasierten und benutzerbasierten Integrationserweiterungspunkten bereit.

  • UserConfig.xml: Eine Teilmenge der Deploymentconfig.xml, die nur benutzerbasierte Konfigurationen bereitstellt und nur auf benutzerbasierte Erweiterungspunkte abzielt.

Integrationsregeln

Wenn App-V-Anwendungen auf einem Computer mit dem App-V-Client veröffentlicht werden, werden einige spezifische Aktionen wie in der folgenden Liste beschrieben ausgeführt:

  • Globale Veröffentlichung: Verknüpfungen werden im Profilspeicherort "Alle Benutzer" und andere Erweiterungspunkte in der Registrierung in der HKLM-Struktur gespeichert.

  • Benutzerveröffentlichung: Tastenkombinationen werden im aktuellen Benutzerkontoprofil und andere Erweiterungspunkte in der Registrierung in der HKCU-Struktur gespeichert.

  • Sicherung und Wiederherstellung: Vorhandene native Anwendungsdaten und Registrierungen (z. B. FTA-Registrierungen) werden während der Veröffentlichung gesichert.

    1. App-V-Paketen wird der Besitz basierend auf dem letzten integrierten Paket zugewiesen, bei dem der Besitz an die neueste veröffentlichte App-V-Anwendung übergeben wird.

    2. Der Besitz wird von einem App-V-Paket zu einem anderen übertragen, wenn die Veröffentlichung des besitzenden App-V-Pakets aufgehoben wird. Dadurch wird keine Wiederherstellung der Daten oder Registrierung initiiert.

    3. Stellen Sie die gesicherten Daten wieder her, wenn das letzte Paket pro Erweiterungspunkt nicht veröffentlicht oder entfernt wurde.

Erweiterungspunkte

Die App-V-Veröffentlichungsdateien (Manifest und dynamische Konfiguration) bieten mehrere Erweiterungspunkte, mit denen die Anwendung in das lokale Betriebssystem integriert werden kann. Diese Erweiterungspunkte führen typische Anwendungsinstallationsaufgaben aus, z. B. das Platzieren von Verknüpfungen, das Erstellen von Dateitypzuordnungen und das Registrieren von Komponenten. Da es sich hierbei um virtualisierte Anwendungen handelt, die nicht auf die gleiche Weise wie herkömmliche Anwendungen installiert werden, gibt es einige Unterschiede. Im Folgenden ist eine Liste der Erweiterungspunkte aufgeführt, die in diesem Abschnitt behandelt werden:

  • Tastenkombinationen

  • Dateitypzuordnungen

  • Shellerweiterungen

  • COM

  • Softwareclients

  • Anwendungsfunktionen

  • URL-Protokollhandler

  • AppPath

  • Virtuelle Anwendung

Tastenkombinationen

Die Abkürzung ist eines der grundlegenden Elemente der Integration in das Betriebssystem und die Schnittstelle für den direkten Benutzerstart einer App-V-Anwendung. Während der Veröffentlichung und Aufhebung der Veröffentlichung von App-V-Anwendungen.

Aus den XML-Dateien des Paketmanifests und der dynamischen Konfiguration finden Sie den Pfad zu einer bestimmten ausführbaren Anwendungsdatei in einem Abschnitt, der dem folgenden ähnelt:

<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>

Wie bereits erwähnt, werden die App-V-Verknüpfungen basierend auf dem Aktualisierungsvorgang standardmäßig im Profil des Benutzers platziert. Globale Aktualisierung platziert Verknüpfungen im Profil "Alle Benutzer", und die Benutzeraktualisierung speichert sie im Profil des jeweiligen Benutzers. Die eigentliche ausführbare Datei wird im Paketspeicher gespeichert. Der Speicherort der ICO-Datei ist ein tokenisierter Speicherort im App-V-Paket.

Dateitypzuordnungen

Der App-V-Client verwaltet die dateitypbezogenen Zuordnungen des lokalen Betriebssystems während der Veröffentlichung, sodass Benutzer Dateitypaufrufe verwenden oder eine Datei mit einer speziell registrierten Erweiterung (.docx) öffnen können, um eine App-V-Anwendung zu starten. Dateitypzuordnungen sind in den Manifest- und dynamischen Konfigurationsdateien vorhanden, wie im folgenden Beispiel dargestellt:

<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>

Hinweis In diesem Beispiel:

  • <Name>.xdp</Name> ist die Erweiterung

  • <Name>AcroExch.XDPDoc</Name> ist der ProgId-Wert (der auf die angrenzende ProgId verweist)

  • <CommandLine>"[{AppVPackageRoot}]\Reader\AcroRd32.exe" "%1"</CommandLine> ist die Befehlszeile, die auf die ausführbare Datei der Anwendung verweist.

-Shell-Erweiterungen

Shellerweiterungen werden während des Sequenzierungsprozesses automatisch in das Paket eingebettet. Wenn das Paket global veröffentlicht wird, bietet die Shellerweiterung benutzern die gleichen Funktionen wie bei einer lokalen Installation der Anwendung. Die Anwendung erfordert keine zusätzliche Einrichtung oder Konfiguration auf dem Client, um die Shellerweiterungsfunktionalität zu aktivieren.

Anforderungen für die Verwendung von Shellerweiterungen:

  • Pakete, die eingebettete Shellerweiterungen enthalten, müssen global veröffentlicht werden.

  • Die "Bitanzahl" der Anwendung, des Sequencers und des App-V-Clients muss übereinstimmen, andernfalls funktionieren die Shellerweiterungen nicht. Zum Beispiel:

    • Die Version der Anwendung ist 64-Bit.

    • Der Sequencer wird auf einem 64-Bit-Computer ausgeführt.

    • Das Paket wird an einen 64-Bit-App-V-Clientcomputer übermittelt.

In der folgenden Tabelle werden die unterstützten Shellerweiterungen angezeigt.

Handler Beschreibung

Kontextmenühandler

Fügt dem Kontextmenü Menüelemente hinzu. Es wird aufgerufen, bevor das Kontextmenü angezeigt wird.

Drag-and-Drop-Handler

Steuert die Aktion beim Rechtsklick per Drag-and-Drop und ändert das angezeigte Kontextmenü.

Löschen des Zielhandlers

Steuert die Aktion, nachdem ein Datenobjekt über ein Ablageziel wie eine Datei gezogen und abgelegt wurde.

Datenobjekthandler

Steuert die Aktion, nachdem eine Datei in die Zwischenablage kopiert oder über ein Ablageziel gezogen und abgelegt wurde. Es kann zusätzliche Zwischenablageformate für das Ablageziel bereitstellen.

Eigenschaftenblatthandler

Ersetzt oder fügt Seiten zum Eigenschaftenblattdialogfeld eines Objekts hinzu.

Infotip-Handler

Ermöglicht das Abrufen von Flags und Infoinfoinformationen für ein Element und das Anzeigen in einer Popup-QuickInfo beim Zeigen mit der Maus.

Spaltenhandler

Ermöglicht das Erstellen und Anzeigen benutzerdefinierter Spalten in windows Explorer Detailansicht. Es kann verwendet werden, um die Sortierung und Gruppierung zu erweitern.

Vorschauhandler

Ermöglicht die Anzeige einer Vorschau einer Datei im Windows Explorer Vorschaubereich.

COM

Der App-V-Client unterstützt die Veröffentlichung von Anwendungen mit Unterstützung für COM-Integration und -Virtualisierung. Die COM-Integration ermöglicht es dem App-V-Client, COM-Objekte auf dem lokalen Betriebssystem zu registrieren und die Objekte zu virtualisierung. Für die Zwecke dieses Dokuments erfordert die Integration von COM-Objekten zusätzliche Details.

App-V unterstützt die Registrierung von COM-Objekten aus dem Paket beim lokalen Betriebssystem mit zwei Prozesstypen: Out-of-Process und In-Process. Die Registrierung von COM-Objekten erfolgt mit einem oder einer Kombination aus mehreren Betriebsmodi für ein bestimmtes App-V-Paket, das off, Isolated und Integrated umfasst. Der integrierte Modus ist entweder für den Out-of-Process- oder in-Process-Typ konfiguriert. Die Konfiguration von COM-Modi und -Typen erfolgt mit dynamischen Konfigurationsdateien (deploymentconfig.xml oder userconfig.xml).

Details zur App-V-Integration finden Sie unter. https://go.microsoft.com/fwlink/?LinkId=392834

Softwareclients und Anwendungsfunktionen

App-V unterstützt bestimmte Softwareclients und Anwendungsfunktionen-Erweiterungspunkte, mit denen virtualisierte Anwendungen beim Softwareclient des Betriebssystems registriert werden können. Dadurch können Benutzer Standardprogramme für Vorgänge wie E-Mail, Chat und Media Player auswählen. Dieser Vorgang wird in der Systemsteuerung mit den Einstellungen "Programmzugriff festlegen" und "Computerstandardeinstellungen" ausgeführt und während der Sequenzierung im Manifest oder in den dynamischen Konfigurationsdateien konfiguriert. Anwendungsfunktionen werden nur unterstützt, wenn die App-V-Anwendungen global veröffentlicht werden.

Beispiel für die Softwareclientregistrierung eines App-V-basierten E-Mail-Clients.

    <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>

Hinweis In diesem Beispiel:

  • <ClientConfiguration EmailEnabled="true" />ist die allgemeine Einstellung für Softwareclients zum Integrieren Email Clients.

  • <EMail MakeDefault="true">ist das Flag, um einen bestimmten Email Client als Standardclient Email festzulegen.

  • <MAPILibrary>[{ProgramFilesX86}]\Mozilla Thunderbird\mozMapi32_InUse.dll</MAPILibrary> ist die MAPI-DLL-Registrierung

URL-Protokollhandler

Anwendungen werden nicht immer speziell als virtualisierte Anwendungen bezeichnet, die den Dateitypaufruf verwenden. Beispielsweise klickt der Benutzer in einer Anwendung, die das Einbetten eines mailto:-Links in ein Dokument oder eine Webseite unterstützt, auf einen mailto:-Link und erwartet, dass er seinen registrierten E-Mail-Client erhält. App-V unterstützt URL-Protokollhandler, die pro Paket beim lokalen Betriebssystem registriert werden können. Während der Sequenzierung werden die URL-Protokollhandler automatisch zum Paket hinzugefügt.

In Situationen, in denen mehrere Anwendungen den spezifischen URL-Protokollhandler registrieren können, können die dynamischen Konfigurationsdateien verwendet werden, um das Verhalten zu ändern und dieses Feature für eine Anwendung zu unterdrücken oder zu deaktivieren, die nicht die primäre Anwendung sein sollte.

AppPath

Der AppPath-Erweiterungspunkt unterstützt das Aufrufen von App-V-Anwendungen direkt über das Betriebssystem. Dies erfolgt in der Regel über den Ausführungs- oder Startbildschirm, je nach Betriebssystem, wodurch Administratoren zugriff auf App-V-Anwendungen über Betriebssystembefehle oder Skripts bereitstellen können, ohne den spezifischen Pfad zur ausführbaren Datei aufzurufen. Daher wird vermieden, dass die Umgebungsvariable des Systempfads auf allen Systemen geändert wird, wie dies während der Veröffentlichung erfolgt.

Der AppPath-Erweiterungspunkt wird entweder im Manifest oder in den dynamischen Konfigurationsdateien konfiguriert und während der Veröffentlichung für den Benutzer in der Registrierung auf dem lokalen Computer gespeichert. Weitere Informationen zu AppPath finden Sie unter . https://go.microsoft.com/fwlink/?LinkId=392835

Virtuelle Anwendung

Dieses Subsystem stellt eine Liste der Anwendungen bereit, die während der Sequenzierung erfasst werden und in der Regel von anderen App-V-Komponenten genutzt werden. Die Integration von Erweiterungspunkten, die zu einer bestimmten Anwendung gehören, kann mithilfe dynamischer Konfigurationsdateien deaktiviert werden. Wenn ein Paket beispielsweise zwei Anwendungen enthält, ist es möglich, alle Zu einer Anwendung gehörenden Erweiterungspunkte zu deaktivieren, um nur die Integration von Erweiterungspunkten einer anderen Anwendung zuzulassen.

Regeln für Erweiterungspunkte

Die oben beschriebenen Erweiterungspunkte werden basierend auf der Veröffentlichung der Pakete in das Betriebssystem integriert. Globale Veröffentlichung platziert Erweiterungspunkte an öffentlichen Computerstandorten, an denen die Benutzerveröffentlichung Erweiterungspunkte an Benutzerspeicherorten platziert. Beispielsweise führt eine Verknüpfung, die auf dem Desktop erstellt und global veröffentlicht wird, zu den Dateidaten für die Verknüpfung (%Public%\Desktop) und den Registrierungsdaten (HKLM\Software\Classes). Dieselbe Verknüpfung enthält Dateidaten (%UserProfile%\Desktop) und Registrierungsdaten (HKCU\Software\Classes).

Erweiterungspunkte werden nicht alle auf die gleiche Weise veröffentlicht, wobei einige Erweiterungspunkte eine globale Veröffentlichung erfordern und andere eine Sequenzierung auf dem spezifischen Betriebssystem und der Architektur erfordern, in dem sie bereitgestellt werden. Im Folgenden finden Sie eine Tabelle, in der diese beiden wichtigsten Regeln beschrieben werden.

Virtuelle Erweiterung Erfordert Die Sequenzierung des Zielbetriebssystems Erfordert globale Veröffentlichung

Tastenkombination

Dateitypzuordnung

URL-Protokolle

X

AppPaths

X

COM-Modus

Softwareclient

X

Anwendungsfunktionen

X

X

Kontextmenühandler

X

X

Drag-and-Drop-Handler

X

Datenobjekthandler

X

Eigenschaftenblatthandler

X

Infotip-Handler

X

Spaltenhandler

X

Shellerweiterungen

X

Browserhilfsobjekt

X

X

Active X-Objekt

X

X

Dynamische Konfigurationsverarbeitung

Das Bereitstellen von App-V-Paketen auf einem Computer oder Benutzer ist sehr einfach. Da Organisationen AppV-Anwendungen jedoch über Geschäftsbereiche und geografische und politische Grenzen hinweg bereitstellen, ist es unmöglich, eine Anwendung einmal mit einer Gruppe von Einstellungen zu sequenzieren. App-V wurde für dieses Szenario entwickelt, da bestimmte Einstellungen und Konfigurationen während der Sequenzierung in der Manifestdatei erfasst werden, aber auch änderungen mit dynamischen Konfigurationsdateien unterstützt werden.

Die dynamische App-V-Konfiguration ermöglicht das Angeben einer Richtlinie für ein Paket auf Computerebene oder auf Benutzerebene. Mithilfe der Dynamischen Konfigurationsdateien können Sequenzierer die Konfiguration eines Pakets nach der Sequenzierung ändern, um die Anforderungen einzelner Benutzer- oder Computergruppen zu erfüllen. In einigen Fällen kann es erforderlich sein, Änderungen an der Anwendung vorzunehmen, um die richtige Funktionalität in der App-V-Umgebung bereitzustellen. Beispielsweise kann es erforderlich sein, Änderungen an den Dateien _*config.xml vorzunehmen, damit bestimmte Aktionen zu einem bestimmten Zeitpunkt während der Ausführung der Anwendung ausgeführt werden können, z. B. das Deaktivieren einer mailto-Erweiterung, um zu verhindern, dass eine virtualisierte Anwendung diese Erweiterung aus einer anderen Anwendung überschreibt.

App-V-Pakete enthalten die Manifestdatei innerhalb der appv-Paketdatei, die für Sequenzierungsvorgänge repräsentativ ist und die Richtlinie der Wahl ist, es sei denn, dynamische Konfigurationsdateien werden einem bestimmten Paket zugewiesen. Nach der Sequenzierung können die Dynamischen Konfigurationsdateien geändert werden, um die Veröffentlichung einer Anwendung auf verschiedenen Desktops oder Benutzern mit unterschiedlichen Erweiterungspunkten zu ermöglichen. Die beiden dynamischen Konfigurationsdateien sind die DDC-Dateien (Dynamic Deployment Configuration) und Dynamic User Configuration (DUC). Dieser Abschnitt konzentriert sich auf die Kombination aus Manifest- und dynamischen Konfigurationsdateien.

Beispiel für dynamische Konfigurationsdateien

Das folgende Beispiel zeigt die Kombination der Manifest-, Bereitstellungskonfigurations- und Benutzerkonfigurationsdateien nach der Veröffentlichung und während des normalen Betriebs. Diese Beispiele sind abgekürzte Beispiele für die einzelnen Dateien. Der Zweck besteht darin, nur die Kombination der Dateien anzuzeigen und nicht eine vollständige Beschreibung der spezifischen Kategorien zu sein, die in den einzelnen Dateien verfügbar sind. Weitere Informationen finden Sie im Leitfaden zur App-V 5-Sequenzierung unter: https://go.microsoft.com/fwlink/?LinkID=269810

Manifest

<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>

Bereitstellungskonfiguration

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

Benutzerkonfiguration

<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>

Parallele Assemblys

App-V unterstützt das automatische Packen von parallelen (SxS)-Assemblys während der Sequenzierung und Bereitstellung auf dem Client während der Veröffentlichung virtueller Anwendungen. App-V 5 SP2 unterstützt das Erfassen von SxS-Assemblys während der Sequenzierung für Assemblys, die nicht auf dem Sequenziercomputer vorhanden sind. Und für Assemblys, die aus Visual C++ (Version 8 und höher) und/oder MSXML-Laufzeit bestehen, erkennt und erfasst der Sequencer diese Abhängigkeiten automatisch, auch wenn sie während der Überwachung nicht installiert wurden. Das Feature Parallele Assemblys entfernt die Einschränkungen früherer Versionen von App-V, bei denen der App-V Sequencer keine Assemblys erfasst hat, die bereits auf der Sequenzierungsarbeitsstation vorhanden waren, und privatisiert die Assemblys, die auf eine Bitversion pro Paket beschränkt sind. Dieses Verhalten führte dazu, dass app-V-Anwendungen auf Clients bereitgestellt wurden, die die erforderlichen SxS-Assemblys fehlten, was zu Fehlern beim Starten der Anwendung führte. Dadurch wurde der Paketerstellungsprozess gezwungen, zu dokumentieren und dann sicherzustellen, dass alle für Pakete erforderlichen Assemblys lokal auf dem Clientbetriebssystem des Benutzers installiert wurden, um die Unterstützung für die virtuellen Anwendungen sicherzustellen. Basierend auf der Anzahl der Assemblys und der fehlenden Anwendungsdokumentation für die erforderlichen Abhängigkeiten war diese Aufgabe sowohl eine Verwaltungs- als auch eine Implementierungsaufgabe.

Die Unterstützung für parallele Assemblys in App-V verfügt über die folgenden Features.

  • Automatische Erfassung der SxS-Assembly während der Sequenzierung, unabhängig davon, ob die Assembly bereits auf der Sequenzierungsarbeitsstation installiert wurde.

  • Der App-V-Client installiert erforderliche SxS-Assemblys automatisch zum Zeitpunkt der Veröffentlichung auf dem Clientcomputer, wenn sie nicht vorhanden sind.

  • Der Sequencer meldet die VC-Laufzeitabhängigkeit im Sequencer-Berichterstellungsmechanismus.

  • Der Sequencer ermöglicht es, die Assemblys, die bereits auf dem Sequencer installiert sind, nicht zu packen, was Szenarien unterstützt, in denen die Assemblys zuvor auf den Zielcomputern installiert wurden.

Automatische Veröffentlichung von SxS-Assemblys

Während der Veröffentlichung eines App-V-Pakets mit SxS-Assemblys überprüft der App-V-Client, ob die Assembly auf dem Computer vorhanden ist. Wenn die Assembly nicht vorhanden ist, stellt der Client die Assembly auf dem Computer bereit. Pakete, die Teil von Verbindungsgruppen sind, basieren auf den parallelen Assemblyinstallationen, die Teil der Basispakete sind, da die Verbindungsgruppe keine Informationen zur Assemblyinstallation enthält.

Hinweis Wenn Sie die Veröffentlichung eines Pakets mit einer Assembly aufheben oder entfernen, werden die Assemblys für dieses Paket nicht entfernt.

Clientprotokollierung

Der App-V-Client protokolliert Informationen im Windows-Ereignisprotokoll im ETW-Standardformat. Die spezifischen App-V-Ereignisse finden Sie in der Ereignisanzeige unter Anwendungs- und Dienstprotokolle\Microsoft\AppV\Client.

Hinweis In App-V 5.0 SP3 wurden einige Protokolle konsolidiert und an den folgenden Speicherort verschoben:

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

Eine Liste der verschobenen Protokolle finden Sie unter Informationen zu App-V 5.0 SP3.

Es gibt drei spezifische Kategorien von Ereignissen, die unten beschrieben werden.

Admin: Protokolliert Ereignisse für Konfigurationen, die auf den App-V-Client angewendet werden, und enthält die primären Warnungen und Fehler.

Betriebsbereit: Protokolliert die allgemeine App-V-Ausführung und Nutzung einzelner Komponenten, die ein Überwachungsprotokoll der App-V-Vorgänge erstellen, die auf dem App-V-Client abgeschlossen wurden.

Virtuelle Anwendung: Protokolliert den Start virtueller Anwendungen und die Verwendung von Virtualisierungssubsystemen.