Anwendungsveröffentlichung und Clientinteraktion

Letzte Aktualisierung: Dezember 2014

Betrifft: Application Virtualization 5.0, Application Virtualization 5.0 SP1, Application Virtualization 5.0 SP2, Application Virtualization 5.0 SP3

Dieser Artikel enthält technische Informationen zu allgemeinen App-V-Client-Vorgängen und der Integration mit dem lokalen Betriebssystem.

  • Vom Sequencer erstellte App-V-Paketdateien

  • Was ist in der APPV-Datei?

  • App-V-Client-Datenspeicherorte

  • Paketregistrierung

  • App-V-Paketspeicherverhalten

  • Roaming-Registrierung und Daten

  • App-V-Client Anwendungslebenszyklus-Verwaltung

  • Integration von App-V-Paketen

  • Dynamische Konfigurationsverarbeitung

  • Parallele Assemblys

  • Clientprotokollierung

Weitere Informationen finden Sie auf der Downloadseite unter Microsoft Application Virtualization (App-V)-Dokumentationsressourcen.

Vom Sequencer erstellte App-V-Paketdateien

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

Datei Beschreibung

.appv

  • Die primäre Paketdatei mit den aufgezeichneten Bestands- und Zustandsinformationen aus der Sequenzierung.

  • Architektur der Paketdatei, Veröffentlichungsinformationen und die Registrierung in Token-Form, die auf einem Computer und für einen bestimmten Benutzer bei der Übermittlung erneut angewendet werden kann.

.MSI

Ausführbarer Bereitstellungswrapper, zum Bereitstellen manuellen Bereitstellen von APPV-Dateien oder mithilfe einer Bereitstellungsplattform von Drittanbietern.

_DeploymentConfig.XML

Datei zum Anpassen der Standardeinstellung der Verö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 zum Anpassen der Standardeinstellung der Veröffentlichungsparameter für alle Anwendungen in einem Paket, 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 aus der Sequenzierung, einschließlich ausgelassener Treiber, Dateien und Registrierungspfaden.

.CAB

Optional: Package Accelerator-Datei zur automatischen Neuerstellung eines zuvor sequenzierten virtuellen Anwendungspakets.

APPVT

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

Weitere Informationen zur Sequenzierung finden Sie unter Application Virtualization 5.0-Sequenzierungshandbuch.

Was ist in der APPV-Datei?

Die APPV-Datei ist ein Container, in dem XML- und andere Dateien zusammen in einer einzelnen Entität gespeichert werden. Diese Datei wird aus dem APPX-Format erstellt, das auf dem Standard OPC (Open Packaging Conventions) basiert.

Um den Inhalt der APPV-Datei anzuzeigen, erstellen Sie eine Kopie des Pakets, und ändern Sie die Dateinamenserweiterung der kopierten Datei in ZIP.

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 mit dem Dateisystem für die virtualisierte Anwendung, die während der Sequenzierung erfasst wird.

[Content_Types].xml

XML-Datei

Liste der Core-Inhaltstypen in der APPV-Datei (z. B. DLL, EXE, BIN).

AppxBlockMap.xml

XML-Datei

Layout der APPV-Datei mit Datei-, Block- und BlockMap-Elementen, die Positionierung und Validierung der Dateien im App-V-Paket ermöglichen.

AppxManifest.xml

XML-Datei

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

FilesystemMetadata.xml

XML-Datei

Die Liste der Dateien, die während der Sequenzierung mit ihren Attributen (z. B. Verzeichnisse, Dateien, ausgeblendete und leere Verzeichnisse sowie lange und kurze Namen) erfasst werden.

PackageHistory.xml

XML-Datei

Informationen zum sequenzierten Computer (Version des Betriebssystems, Internet Explorer-Version, .NET Framework-Version) und Prozess (Upgrade, Paketversion).

Registry.dat

DAT-Datei

Registrierungsschlüssel und Werte, die während der Sequenzierung des Pakets erfasst wurden.

StreamMap.xml

XML-Datei

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

App-V-Client-Datenspeicherorte

Der App-V-Client führt Aufgaben aus, um sicherzustellen, dass die virtuellen Anwendungen ordnungsgemäß ausgeführt werden wie lokal installierte Anwendungen funktioniert. Der Prozess für das Öffnen und Ausführen virtueller Anwendungen erfordert die 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 den Benutzern erwartet werden. Dieser Abschnitt beschreibt die Ressourcen, die erforderlich sind, um virtuelle Anwendungen auszuführen, und führt den Speicherort auf, an dem App-V die Ressourcen speichert.

Name Speicherort Beschreibung

Paketspeicher

%ProgramData%\App-V

Standardspeicherort für schreibgeschützte Paketdateien

Computerkatalog

%ProgramData%\Microsoft\AppV\Client\Catalog

Enthält die Konfigurationsdokumente pro Computer

Benutzerkatalog

%AppData%\Microsoft\AppV\Client\Catalog

Enthält die Konfigurationsdokumente pro Benutzer

Verknüpfung zu Sicherungen

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

Speichert vorherige Integrationspunkte, mit denen die Wiederherstellung des Pakets beim Zurückziehen der Veröffentlichung möglich ist

Roamingeinstellungen für Kopie beim Schreiben (COW)

%AppData%\Microsoft\AppV\Client\VFS

Beschreibbarer Roaming-Speicherort für Paketänderungen

Lokale Kopie beim Schreiben (COW)

%LocalAppData%\Microsoft\AppV\Client\VFS

Beschreibbarer Nicht-Roaming-Speicherort für Paketänderungen

Computerregistrierung

HKLM\Software\Microsoft\AppV

Enthält Paket-Statusinformationen, einschließlich VReg für Computer oder global veröffentlichte Pakete (Computer-Hive)

Benutzerregistrierung

HKCU\Software\Microsoft\AppV

Enthält Benutzer-Paketstatusinformationen einschließlich VReg

Benutzer-Registrierungsklassen

HKCU\Software\Classes\AppV

Enthält zusätzliche Benutzer-Paketstatusinformationen

Weitere Details für die Tabelle stehen im Abschnitt unten und im gesamten Dokument zur Verfügung.

Paketspeicher

Der App-V-Client verwaltet die im Paketspeicher bereitgestellten Anwendungsressourcen. Dieser Standardspeicherort ist %ProgramData%\App-V. Sie können ihn aber während oder nach dem Setup mithilfe des PowerShell-Befehls Set-AppVClientConfiguration ändern, wodurch die lokale Registrierung geändert wird (PackageInstallationRoot-Wert im Schlüssel HKLM\Software\Microsoft\AppV\Client\Streaming). Der Paketspeicher muss sich in einem lokalen Pfad auf dem Clientbetriebssystem befinden. Die einzelnen Pakete werden in Paketspeicher-Unterverzeichnissen mit dem Namen der Paket-GUID und der Versions-GUID gespeichert.

Beispiel für einen Pfad zu einer bestimmten Anwendung:

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

Informationen zum Ändern des Standardspeicherorts des Paketspeichers während der Installation finden Sie unter Bereitstellung des App-V-Clients.

Freigegebener Inhaltsspeicher

Wenn der App-V-Client im freigegebenen Inhaltsspeichermodus konfiguriert ist, werden keine Daten auf die Festplatte geschrieben, wenn ein Stream-Fehler auftritt. Das bedeutet, dass die Pakete nur minimalen lokalen Speicherplatz benötigen (Daten zur Veröffentlichung). Die Belegung von weniger Speicherplatz ist in VDI-Umgebungen wünschenswert, in denen lokaler Speicher begrenzt werden kann und das Streaming von Anwendungen von einem Hochleistungs-Netzwerkspeicherort (z. B. SAN) vorzuziehen ist. Weitere Informationen zum freigegebenen Inhaltsspeichermodus finden Sie unter https://go.microsoft.com/fwlink/p/?LinkId=392750.

Hinweis

Der Computer- und Paketspeicher muss sich auf einem lokalen Laufwerk befinden, selbst wenn Sie die freigegebene Inhaltsspeicherkonfigurationen für den App-V-Client verwenden.

Paketkataloge

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

  • Kataloge (Benutzer und Computer).

  • Registrierungspfade: je nachdem, wie das Paket für die Veröffentlichung ausgerichtet ist. Es gibt einen Katalog (Datenspeicher) für den Computer und einen für jeden einzelnen Benutzer. Der Computerkatalog speichert globale Informationen für alle Benutzer oder beliebige Benutzer, und der Benutzerkatalog speichert Informationen zu einem bestimmten Benutzer. Der Katalog ist eine Sammlung von dynamischen Konfigurationen und Manifest-Dateien. Es gibt separate Daten für Datei und Registrierung pro Paketversion.

Computerkatalog

Beschreibung

Speichert Paketdokumente, die für Benutzer auf dem Computer verfügbar sind, wenn Pakete hinzugefügt und veröffentlicht werden. Wenn ein Paket zum Zeitpunkt der Veröffentlichung jedoch "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 werden und für alle auf dem Client-Computer sichtbar sind (z. B. das Paketverzeichnis ist in einem freigegebenen Datenträgerverzeichnis).

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, wird eine dynamische Konfigurationsdatei im Computerjatalog gespeichert. Daher wird die Feststellung, ob ein Paket global ist, daran festgemacht, ob eine Richtliniendatei (UserDeploymentConfiguration-Datei) im Computerkatalog vorhanden ist.

Standardspeicherort

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

Dieser Speicherort ist nicht identisch mit dem Speicherort des Pakets. Der Paketspeicher ist die goldene oder ursprüngliche Kopie der Paketdateien.

Dateien im Computerkatalog

  • Manifest.xml

  • DeploymentConfiguration.xml

  • UserManifest.xml (Global veröffentlichtes Paket)

  • UserDeploymentConfiguration.xml (Global veröffentlichtes Paket)

Zusätzliche Speicherort für den Computerkatalogs, wenn das Paket Teil einer Verbindungsgruppe ist.

Folgender Speicherort wird zusätzlich zu den oben genannten spezifischen Paketspeicherorten verwendet:

%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

Während des Veröffentlichungsvorgangs erstellt. Enthält Informationen zum Veröffentlichen des Pakets und wird auch beim Starten verwendet, damit dass Paket für einen bestimmten Benutzer bereitgestellt wird. An einem Roaming-Speicherort 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 ein Paketberechtigung für einen Benutzer entfernt wird, werden die relevanten Paketdateien aus dem Benutzerkatalog entfernt. Bei Betrachtung des Benutzerkatalogs kann ein Administrator das Vorhandensein einer dynamischen Konfigurationsdatei sehen, die angibt, dass das Paket für diesen Benutzer berechtigt ist.

Für Roaming-Benutzer muss sich der Benutzerkatalog an einem Roaming- oder freigegebenen Speicherort befinden, um das App-V-Legacyverhalten der standardmäßigen Benutzerausrichtung beizubehalten. Ansprüche und Richtlinie sind mit einem Benutzer verknüpft, nicht mit einem Computer – einmal bereitgestellt, sollten sie überall für den Benutzer verfügbar sein.

Standardspeicherort

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

Dateien im Benutzerkatalog

  • UserManifest.xml

  • DynamicConfiguration.xml oder UserDeploymentConfiguration.xml

Zusätzliche Speicherort für den Benutzerkatalog, wenn das Paket Teil einer Verbindungsgruppe ist.

Folgender Speicherort wird zusätzlich zu den oben genannten spezifischen Paketspeicherorten verwendet:

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

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

UserPackageGroupDescriptor.xml

Verknüpfung zu Sicherungen

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

Kopie beim Schreiben-Dateien

Der Paketspeicher enthält die Originalversion der Paketdateien, die vom Veröffentlichungsserver per Streaming übertragen wurden. Während des normalen Betriebs einer App-V-Anwendung kann der Benutzer oder Dienst die Änderung von Dateien anfordern. Diese Änderungen werden nicht im Paketspeicher vorgenommen, damit Sie die Anwendung weiterhin reparieren können, wodurch diese Änderungen entfernt werden. Diese Speicherorte namens Kopie beim Schreiben (COW) unterstützen Roaming und Nicht-Roaming-Speicherorte. Der Speicherort der Änderungen hängt davon ab, wie die Anwendung programmiert wurde, um systemeigene Änderungen zu speichern.

COW-Roaming

Der oben beschriebene COW-Roaming-Speicherort speichert Änderungen an Dateien und Verzeichnissen, die für den typischen %AppData% location or \Users\{username}\AppData\Roaming-Speicherort bestimmt sind. Diese Verzeichnisse und Dateien sind dann basierend auf den Einstellungen des Betriebssystems überall verfügbar.

Lokale COW

Der lokale COW-Speicherort ähnelt dem Roaming-Speicherort, aber die Verzeichnisse und Dateien sind nicht auf anderen Computern verfügbar, selbst wenn Roaming-Unterstützung konfiguriert wurde. Der oben beschriebene lokale COW-Speicherort speichert Änderungen typischerweise für Windows und nicht für den %AppData%-Speicherort. Die aufgeführten Verzeichnisse variieren, jedoch stehen zwei Speicherorte für typische Windows-Speicherorte (z. B. gemeinsame AppData und gemeinsame AppDataS). Das S gibt den eingeschränkten Speicherort an, wenn der virtuelle Dienst die Änderung als ein anderer Benutzer mit erhöhten Rechten von den angemeldeten Benutzern anfordert. Der Nicht-S-Speicherort speichert benutzerbasierte Änderungen.

Paketregistrierung

Bevor eine Anwendung Daten auf Paketregistrierungsdaten zugreifen kann, muss der App-V-Client die Paketregistrierungsdaten für die Anwendungen zur Verfügung stellen. Der App-V-Client verwendet die echte Registrierung als Sicherungsspeicher für alle Registrierungsdaten.

Wenn ein neues Paket zum App-V-Client hinzugefügt wird, wird eine Kopie der REGISTRY.DAT-Datei aus dem Paket unter %ProgramData%\Microsoft\AppV\Client\VREG\{Version GUID}.dat erstellt. Der Name der Datei ist die Versions-GUID mit der .DAT-Erweiterung. Diese Kopie wird erstellt, um sicherzustellen, dass die tatsächliche Strukturdatei im Paket nie verwendet wird, da dies die Entfernung des Pakets zu einem späteren Zeitpunkt verhindert.

Registry.dat aus Paketspeicher

 > 

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

Wenn die erste Anwendung aus dem Paket auf dem Client gestartet wird, produziert oder kopiert der Client den Inhalt der Strukturdatei und erstellt die Paketregistrierungsdaten an einem alternativen Speicherort HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AppV\Client\Packages\PackageGuid\Versions\VersionGuid\REGISTRY neu. Die bereitgestellten Registrierungsdaten haben zwei unterschiedliche Arten von Computerdaten und Benutzerdaten. Computerdaten werden von allen Benutzern des Computers gemeinsam verwendet. Benutzerdaten werden für jeden Benutzer an einem benutzerspezifischen Speicherort HKCU\Software\Microsoft\AppV\Client\Packages\PackageGuid\Registry\User bereitgestellt. Die Computerdaten werden letztendlich zum Zeitpunkt der Paketerstellung entfernt, und die Benutzerdaten werden in einem Vorgang zur Aufhebung der Veröffentlichung entfernt.

Paketregistrierungsstaffelung im Vergleich zu Verbindungsgruppen-Registrierungsstaffelung

Wenn Verbindungsgruppen vorhanden sind, gilt der vorherige Prozess der gestaffelten Registrierungsbereitstellung, doch statt einer zu verarbeitenden Strukturdatei gibt es mehrere. Die Dateien werden in der Reihenfolge verarbeitet, in der sie in der Verbindungsgruppen-XML angezeigt werden, wobei die zuerst geschriebene Datei alle Konflikte gewinnt.

Die gestaffelte Registrierung wird genauso wie bei einzelnen Paketen beibehalten. Die gestaffelten Benutzerregistrierungsdaten werden für die Verbindungsgruppe beibehalten, bis sie deaktiviert wird; gestaffelte Computerregistrierungsdaten werden beim Entfernen der Verbindungsgruppe entfernt.

Virtuelle Registrierung

Die virtuelle Registrierung (VREG) dient dazu, eine einzelne zusammengeführte Ansicht der Paketregistrierung und der systemeigenen Registrierung für Anwendungen bereitzustellen. Darüber hinaus bietet sie eine "Kopie beim Schreiben"-Funktionalität (COW), was heißt, dass alle Änderungen an der Registrierung aus dem Kontext eines virtuellen Prozesses an einen separaten COW-Speicherort erfolgen. Dies bedeutet, dass die VREG bis zu drei separate Registrierungsspeicherorte in einer einzigen Ansicht kombinieren muss, basierend auf den eingetragenen Speicherorten in der Registrierung unter COW -> package -> native. Wenn eine Anforderung für Registrierungsdaten erfolgt, werden sie in dieser Reihenfolge gesucht, bis die angeforderten Daten gefunden wurden. D. h., wenn ein Wert an einem COW-Speicherort gespeichert wird, wird nicht mit den anderen Speicherorte fortgefahren, wenn jedoch keine Daten am COW-Speicherort vorhanden sind, wird mit dem Paket- und dann dem systemeigenen Speicherort fortgefahren, bis die entsprechenden Daten gefunden wurden.

Registrierungsspeicherorte

Es gibt zwei Paketregistrierungsspeicherorte und zwei Verbindungsgruppenspeicherorte, in 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 VREG erstellt und verwaltet werden. Einstellungen für Pakete und Verbindungsgruppen werden nicht freigegeben:

Einzelpaket-VReg:

Speicherort

Beschreibung

COW

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

  • User Registry\Client\Packages\PkgGUID\REGISTRY (Benutzer-Roaming für alles unter HKCU geschriebene, mit Ausnahme von Software\Klassen)

  • User Registry Classes\Client\Packages\PkgGUID\REGISTRY (HKCU\Software\Klassen-Schreibvorgänge und HKLM für Prozess ohne erhöhte Rechte)

Paket

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

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

Systemeigen

  • Registrierungsspeicherort für systemeigene Anwendung

 

Verbindungsgruppen-VReg:

Speicherort

Beschreibung

COW

  • Machine Registry\Client\PackageGroups\GrpGUID\REGISTRY (only elevate process can write)

  • User Registry\Client\PackageGroups\GrpGUID\REGISTRY (Anything written to HKCU except Software\Classes

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

Paket

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

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

Systemeigen

  1. Registrierungsspeicherort für systemeigene Anwendung

 

Es gibt zwei COW-Speicherorte für HKLM: Prozesse mit erhöhten Rechten und ohne erhöhte Rechte. Prozesse mit erhöhten Rechten schreiben HKLM-Änderungen immer in die sichere COW unter HKLM. Prozesse ohne erhöhte Rechte 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. Prozesse ohne erhöhte Rechte lesen aus beiden und verwenden zuerst die Änderungen aus der unsicheren COW.

Pass-Through-Schlüssel

Mit Pass-Through-Schlüsseln können Administratoren bestimmte Schlüssel konfigurieren, damit sie nur aus der systemeigenen Registrierung lesen und die Speicherorte von Paketen und COW umgehen. Pass-Through-Speicherorte gelten global für den Computer (nicht paketspezifisch) und können konfiguriert werden, indem Sie den Pfad zum Schlüssel hinzufügen, der als Pass-Through zum Wert REG_MULTI_SZ mit der Bezeichnung PassThroughPaths des Schlüssels HKLM\Software\Microsoft\AppV\Subsystem\VirtualRegistry behandelt werden soll. Ein beliebiger Schlüssel, der unter diesem Wert der mehrteiligen Zeichenfolge (und ihrer untergeordneten Elemente) angezeigt wird, wird als Pass-Through behandelt.

Die folgenden Speicherorte sind standardmäßig als Pass-Through-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 Pass-Through-Schlüssel dient dazu, sicherzustellen, dass eine virtuelle Anwendung keine Registrierungsdaten in die VReg schreibt, die für nicht virtuelle Anwendungen für die erfolgreiche Ausführung oder Integration erforderlich sind. Der Richtlinien-Schlüssel stellt sicher, dass die gruppenrichtlinienbasierten Einstellungen, die vom Administrator festgelegt wurden, verwendet werden und dass es sich nicht um Pro-Paket-Einstellungen handelt. Der AppModel-Schlüssel ist erforderlich für die Integration in Windows Modern UI-basierte Anwendungen. Es wird empfohlen, dass Administratoren keine der Pass-Through-Standardschlüssel ändern, aber in einigen Fällen ist es je nach Anwendungsverhalten möglicherweise erforderlich, zusätzliche Pass-Through-Schlüssel hinzuzufügen.

App-V-Paketspeicherverhalten

App-V 5 verwaltet den Paketspeicher, also den Speicherort, an dem die erweiterten Ressourcendateien aus der APPV-Datei gespeichert werden. Standardmäßig ist dieser Speicherort %ProgramData%\App-V, und im Hinblick auf die Speicherkapazität nur durch den freien Speicherplatz begrenzt. Der Paketspeicher ist nach GUIDs für Paket und Version organisiert, wie im vorherigen Abschnitt erwähnt.

Hinzufügen von Paketen

App-V-Pakete werden beim Hinzufügen auf dem Computer mit dem App-V-Client bereitgestellt. Der App-V-Client bietet Bereitstellung nach Bedarf. Während der Veröffentlichung oder in einem manuellen Add-AppVClientPackage wird die Datenstruktur im Paketspeicher erstellt (c:\programdata\App-V\{PkgGUID}\{VerGUID}). Die im Publishing-Block identifizierten Paketdateien, definiert in StreamMap.xml, werden zum System hinzugefügt, und die Ordner der obersten Ebene sowie die untergeordneten Dateien werden bereitgestellt, um sicherzustellen, dass die richtigen Anwendungsressourcen beim Start vorhanden sind.

Bereitstellen von Paketen

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

Streaming von Paketen

Der App-V-Client kann konfiguriert werden, um das Standard-Streamingverhalten zu ändern. Alle Streaming-Richtlinien werden unter dem folgenden Registrierungsschlüssel gespeichert: HKEY_LOCAL_MAcHINE\Software\Microsoft\AppV\Client\Streaming. Richtlinien werden mithilfe des PowerShell-Cmdlets Set-AppvClientConfiguration festgelegt. Die folgenden Richtlinien gelten für Streaming:

Richtlinie Beschreibung

AllowHighCostLaunch

Unter Windows 8 ermöglicht es das Streaming über 3G- und Mobilfunknetze

AutoLoad

Gibt die Einstellung für das Laden im Hintergrund an:

  • 0 – Deaktiviert

  • 1 – Nur zuvor verwendete Pakete

  • 2 – Alle Pakete

PackageInstallationRoot

Der Stammordner für den Paketspeicher auf dem lokalen Computer

PackageSourceRoot

Die Stammverzeichnis-Überschreibung, von dem aus Pakete gestreamt werden sollen

SharedContentStoreMode

Ermöglicht die Verwendung von freigegebenem Inhaltsspeicher für VDI-Szenarien

 

Diese Einstellungen beeinflussen das Streamingverhalten der App-V-Paketressourcen an den Client. In der Standardeinstellung lädt App-V nur die Ressourcen herunter, die nach dem Herunterladen der ersten Veröffentlichung und der primären Featureblocks erforderlich sind. Es gibt drei spezielle Verhaltensweisen für das Streaming von Paketen, die erklärt werden müssen:

  • Hintergrund-Streaming

  • Optimiertes Streaming

  • Streamingfehler

Hintergrund-Streaming

Das PowerShell-Cmdlet Get-AppvClientConfiguration kann zum Ermitteln des aktuellen Modus für Hintergrund-Streaming mit der AutoLoad-Einstellung verwendet werden und mit dem Cmdlet Set-AppvClientConfiguration oder aus der Registrierung (HKLM\SOFTWARE\Microsoft\AppV\ClientStreaming-Schlüssel) geändert werden. Hintergrund-Streaming ist eine Standardeinstellung, in denen die Autoload-Einstellung auf das Herunterladen die zuvor verwendeter Pakete festgelegt wird. Das Verhalten auf der Grundlage der Standardeinstellung (Wert=1) lädt App-V-Datenblöcke im Hintergrund herunter, nachdem die Anwendung gestartet wurde. Diese Einstellung kann komplett deaktiviert werden (Wert=0) oder für alle Pakete aktiviert werden (Wert=2), egal ob sie gestartet wurden.

Optimiertes Streaming

App-V-Pakete können mit einem primären Featureblock während der Sequenzierung konfiguriert werden. Mit dieser Einstellung können die Sequenzierungtechniker Startdateien für eine bestimmte Anwendung oder Anwendungen überwachen und die Blöcke mit Daten im App-V-Paket für das Streaming beim ersten Starten einer Anwendung im Paket markieren.

Streamingfehler

Nach dem ersten Streaming von Veröffentlichungsdaten und dem primären Featureblock treten bei Anforderungen für zusätzliche Dateien Streamingfehler auf. Diese Datenblöcke werden bei Bedarf in den Paketspeicher heruntergeladen. Dadurch kann der Benutzer nur einen kleinen Teil des Pakets herunterladen, der in der Regel ausreichend ist, um das Paket zu öffnen und die normalen Aufgaben auszuführen. Alle anderen Blöcke werden heruntergeladen, wenn ein Benutzer einen Vorgang initiiert, der Daten erfordert, die derzeit nicht im Paketspeicher vorhanden sind.

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

Sequenzierung für Streamingoptimierung finden Sie unter: https://go.microsoft.com/fwlink/?LinkId=392771.

Paket-Upgrades

App-V-Pakete müssen im gesamten Lebenszyklus der Anwendung aktualisiert werden. App-V Paket-Upgrades ähneln dem Veröffentlichungsvorgang für das Paket, da jede Version in einem eigenen "PackageRoot"-Speicherort erstellt wird: %ProgramData%\App-V\{PkgGUID}\{newVerGUID}. Der Upgradevorgang wird durch das Erstellen von festen Links zu identischen (und gestreamten) Dateien aus anderen Versionen des gleichen Pakets optimiert.

Entfernen des Pakets

Das Verhalten des App-V-Client, wenn Pakete entfernt werden, hängt von der Methode zum Entfernen ab. Das Aufheben der Veröffentlichung der Anwendung erfolgt mit einer vollständigen App-V-Infrastruktur, die Benutzerkatalogdateien (Computerkatalog für global veröffentlichte Anwendungen) werden entfernt, jedoch der Paketspeicherort und die COW-Speicherorte werden beibehalten. Wenn das PowerShell-Cmdlet Remove-AppVClientPackge verwendet wird, um ein App-V-Paket zu entfernen, wird der Paketspeicherort bereinigt. Denken Sie daran, dass das Aufheben der Veröffentlichung eines App-V-Pakets vom Verwaltungsserver keinen Entfernungsvorgang durchführt. Keiner der beiden Vorgänge entfernt die Paketspeicher-Paketdateien.

Roaming-Registrierung und Daten

App-V 5 kann eine nahezu systemeigene Erfahrung beim Roaming bieten, abhängig davon, wie die verwendete Anwendung geschrieben wurde. Standardmäßig stellt App-V Anwendungsdaten, die am Roaming-Speicherort gespeichert sind, basierend auf der Roaming-Konfiguration des Betriebssystems überall zur Verfügung. Für andere Speicherorte für die Speicherung der dateibasierten Daten wird kein Roaming von Computer zu Computer durchgeführt, da diese Standorte nicht überall per Roaming verfügbar sind.

Roaming-Anforderungen und Benutzerkatalog-Datenspeicherung

App-V speichert Daten, die den Status des Benutzerkatalogs darstellt, in Form von:

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

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

Diese Dateien und Registrierungseinstellungen stellen den Benutzerkatalog dar, daher müssen entweder beide oder keines von beiden für einen bestimmten Benutzer überall zur Verfügung stehen. App-V unterstützt nicht das Roaming von %AppData%, aber kein Roaming des Benutzerprofils (Registrierung), oder umgekehrt.

Hinweis

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

Registrierungsbasierte Daten

App-V-Registrierungs-Roaming gibt es in zwei Szenarien, wie in der folgenden Tabelle dargestellt.

Szenario Beschreibung

Anwendungen, die als Standardbenutzer ausgeführt werden

Wenn ein Standardbenutzer eine App-V-Anwendung startet, werden die HKLM und HKCU für App-V-Anwendungen in der HKCU-Struktur auf dem Computer gespeichert. Dafür gibt es zwei unterschiedliche Pfade:

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

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

Die Speicherorte sind für Roaming basierend auf den Einstellungen des Betriebssystems aktiviert.

Anwendungen, die mit erhöhten Rechten ausgeführt werden

Wenn eine Anwendung mit erhöhten Rechten gestartet wird:

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

  • HKCU-Daten werden in der Benutzerregistrierung gespeichert.

In diesem Szenario sind diese Einstellungen nicht mit normalen Betriebssystem-Roaming-Konfigurationen überall verfügbar, und die resultierenden Registrierungsschlüssel und -Werte werden in folgendem Verzeichnis 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 Roaming-Ordners AppData (%AppData%). Beim Start der virtuellen Umgebung wird der Roamingstatus von AppData aus dem AppData-Roamingverzeichnis des Benutzers in den lokalen Cache kopiert. Umgekehrt wird beim Herunterfahren der virtuellen Umgebung der dem AppData-Roamingverzeichnis eines bestimmten Benutzers zugeordnete lokale Cache an den tatsächlichen Speicherort des AppData-Roamingverzeichnisses dieses Benutzers übertragen.

Ein typisches Paket verfügt über verschiedene zugeordnete Speicherorte im Sicherungsspeicher des Benutzers für die Einstellungen von AppData\Local und AppData\Roaming. Diese Speicherorte sind die Kopie beim Schreiben-Speicherorte, die pro Benutzer im Benutzerprofil gespeichert werden und zum Speichern von Änderungen an den VFS-Paketverzeichnissen und zum Schutz des Standardpaket-VFS verwendet werden.

Die folgende Tabelle enthält lokale und Roaming-Speicherorte, wenn keine Ordnerumleitung implementiert wurde.

VFS-Verzeichnis im Paket Zugeordneter Speicherort für Sicherungsspeicher

ProgramFilesX86

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

SystemX86

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

Windows

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

appv_ROOT

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

AppData

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

 

Die folgende Tabelle enthält lokale und Roaming-Speicherorte, wenn Ordnerumleitung für %AppData% implementiert wurde und der Speicherort umgeleitet wurde (in der Regel an einen Netzwerkspeicherort).

VFS-Verzeichnis im Paket Zugeordneter Speicherort für Sicherungsspeicher

ProgramFilesX86

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

SystemX86

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

Windows

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

appv_ROOT

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

AppData

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

 

Der aktuelle App-V-Client VFS-Treiber kann nicht in Netzwerkpfade schreiben, sodass der App-V-Client die Ordnerumleitung erkennt und die Daten während der Veröffentlichung und beim Starten der virtuellen Umgebung auf das lokale Laufwerk kopiert. Nachdem der Benutzer die App-V-Anwendung schließt und der App-V-Client die virtuelle Umgebung schließt, wird die lokale Speicherung der VFS-Anwendungsdaten wieder in das Netzwerk kopiert, sodass Roaming auf zusätzlichen Computern möglich ist, wo der Vorgang wiederholt wird. Die einzelnen Schritte der Prozesse sind:

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

  2. Wenn der Roaming-Pfad von AppData lokal ist oder einem AppData\Roaming-Speicherort zugeordnet ist, geschieht nichts.

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

Dieser Vorgang löst das Problem von nicht lokalen %AppData%, die vom App-V-Client VFS-Treiber nicht unterstützt werden. Die am neuen Speicherort gespeicherten Daten sind jedoch nicht mit der Ordnerumleitung per Roaming verfügbar. Alle Änderungen, die während der Ausführung der Anwendung auftreten, erfolgen am lokalen AppData-Speicherort und müssen an den umgeleiteten Speicherort kopiert werden. Die einzelnen Schritte dieses Prozesses sind:

  1. App-V-Anwendung wird heruntergefahren, was die virtuelle Umgebung beendet.

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

  3. Ein Zeitstempel am Ende des ZIP-Verpackungsprozesses wird als Name der Datei verwendet.

  4. Der Zeitstempel wird in der Registrierung gespeichert: HKEY_CURRENT_USER\Software\Microsoft\AppV\Client\Packages\<GUID>\AppDataTime als der letzte bekannte AppData-Zeitstempel.

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

Der Zeitstempel wird verwendet, um ein Szenario "zuletzt Geschriebenes gewinnt" zu bestimmen, falls ein Konflikt vorliegt, und soll den Download der Daten optimieren, wenn die App-V-Anwendung veröffentlicht wird oder die virtuelle Umgebung gestartet wird. Ordnerumleitung stellt Daten von anderen Clients zur Verfügung, die von der unterstützenden Richtlinie abgedeckt sind, und initiiert den Speicherprozess für AppData\Roaming-Daten am lokalen AppData-Speicherort auf dem Client. Die detaillierten Prozesse sind:

  1. Der Benutzer startet die virtuelle Umgebung durch Starten einer Anwendung.

  2. Die virtuelle Umgebung für die Anwendung sucht die ZIP-Datei mit dem aktuellsten Zeitstempel, falls vorhanden.

  3. Die Registrierung wird gegebenenfalls auf den letzten bekannten hochgeladenen Zeitstempel überprüft.

  4. Die neueste ZIP-Datei wird heruntergeladen, es sei denn, der lokale letzte bekannte hochgeladene Zeitstempel ist größer als oder gleich dem Zeitstempel der ZIP-Datei.

  5. Liegt der lokale letzte bekannte hochgeladene Zeitstempel vor der neuesten ZIP-Datei am AppData-Roamingspeicherort, wird die ZIP-Datei in das lokale temporäre Verzeichnis im Benutzerprofil extrahiert.

  6. Nachdem die ZIP-Datei erfolgreich extrahiert wurde, wird der lokale Cache des AppData-Roamingverzeichnisses umbenannt, und die neuen Daten vor Ort verschoben.

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

Dies schließt das erfolgreiche Roaming von Anwendungseinstellungen ab, die in AppData\Roaming-Speicherorten vorhanden sind. Die einzige andere Bedingung, die berücksichtigt werden muss, ist ein Paketreparaturvorgang. Die Details des Prozesses sind:

  1. Beachten Sie bei der Reparatur, dass der Pfad zum AppData-Roamingverzeichnis des Benutzers nicht lokal ist.

  2. Die nicht lokalen AppData-Roamingpfadziele werden neu an den erwarteten Roaming- und lokalen AppData-Speicherorten erstellt.

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

Dieser Prozess erstellt die lokalen und Netzwerkstandorte für AppData neu und entfernt den Registrierungseintrag des Zeitstempels.

App-V-Client Anwendungslebenszyklus-Verwaltung

In einer vollständigen App-V-Infrastruktur werden die Anwendungen nach der Sequenzierung verwaltet und für Benutzer oder Computer über die App-V-Verwaltungs- und Veröffentlichungsserver veröffentlicht. In diesem Abschnitt werden die Vorgänge, die während der App-V Anwendungslebenszyklus-Routinevorgänge (hinzufügen, veröffentlichen, starten, aktualisieren und entfernen) auftreten, und die Datei- und Registrierungsspeicherorte, die bearbeitet und geändert werden, aus der App-V-Clientperspektive beschrieben. Die App-V-Client-Vorgänge werden als eine Reihe von PowerShell-Befehlen, die auf dem Computer mit dem App-V-Client initiiert werden, ausgeführt.

Dieses Dokument konzentriert sich auf Lösungen in der vollständigen App-V-Infrastruktur. Spezifische Informationen zur App-V-Integration mit Configuration Manager 2012 finden Sie unter: https://go.microsoft.com/fwlink/?LinkId=392773.

Die App-V-Anwendungslebenszyklusaufgaben werden bei Benutzeranmeldung (Standard), bei Computerstart oder als geplante Hintergrundoperationen ausgelöst. Die Einstellungen für die App-V-Client-Vorgänge, einschließlich Veröffentlichungsserver, Aktualisierungsintervalle, Paketskriptaktivierung usw. werden während des Client-Setups oder mit PowerShell-Befehlen nach dem Setup konfiguriert. Informationen dazu finden Sie im Abschnitt zum Bereitstellen des Clients auf TechNet unter: Bereitstellung des App-V-Clients oder verwenden Sie PowerShell:

get-command *appv*

Veröffentlichungsaktualisierung

Der Veröffentlichungsaktualisierungsprozess besteht aus mehreren kleineren Vorgängen, die auf dem App-V-Client ausgeführt werden. Da App-V eine Anwendungsvirtualisierungs-Technologie und keine Aufgabenplanungs-Technologie ist, wird der Windows Task Scheduler zur Aktivierung des Prozesses bei der Benutzeranmeldung, beim Computerstart und in bestimmten Abständen verwendet. Die oben aufgeführte Konfiguration des Clients während des Setups ist die bevorzugte Methode bei der Verteilung des Clients an 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. Dieser wird auch in den geplanten Aufgaben verwendet, die während der Konfiguration des Veröffentlichungsservers erstellt werden.

Der Schwerpunkt in den folgenden Abschnitten liegt auf der Beschreibung der Vorgänge, die in verschiedenen Phasen der App-V-Veröffentlichungsaktualisierung auftreten. Die Themen umfassen:

  • 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 identisch mit dem Add-AppVClientPackage-Cmdlet in PowerShell, außer während des Veröffentlichungsaktualisierungs-Hinzufügeprozesses wird der konfigurierte Veröffentlichungsserver kontaktiert und übergibt eine allgemeine Liste der Anwendungen zurück an den Client, um ausführlichere Informationen abzurufen, statt nur ein einzelnes Paket hinzuzufügen. Der Prozess wird fortgesetzt, indem der Client für das Paket oder die Verbindungsgruppen-Hinzufügungen oder -Aktualisierungen konfiguriert wird und dann auf die APPV-Datei zugreift. Als Nächstes wird der Inhalt der APPV-Datei erweitert und auf dem lokalen Betriebssystem an den entsprechenden Speicherorten abgelegt. Nachfolgend finden Sie einen ausführlichen Workflow des Prozesses, vorausgesetzt, dass das Paket für Fehler-Streaming konfiguriert ist.

Hinzufügen ein App-V-Pakets

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

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

    2. Der App-V-Veröffentlichungsserver verwendet die Identität des initiierenden Ziels, Benutzer oder Computer, und fragt die Datenbank nach einer Liste der berechtigten Anwendungen ab. Die Liste der Anwendungen wird als XML-Antwort bereitgestellt, die der Client verwendet, um zusätzliche Anforderungen an den Server für weitere Informationen auf einer Pro-Paket-Basis zu senden.

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

    Evaluieren Sie alle Verbindungsgruppen, die nicht veröffentlicht oder deaktiviert sind, da die Paketversions-Updates, die Teil der Verbindungsgruppe sind, nicht verarbeitet werden können.

  3. Konfigurieren Sie die Pakete durch Identifizieren von Hinzufüge- oder Update-Vorgängen.

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

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

    3. In StreamMap.xml definierte Veröffentlichungsblockdaten werden vollständig gestreamt. Speichert die Veröffentlichungsblockdaten im Paketspeicher \PkgGUID\VerGUID\Root.

      • Symbole: Ziele der Erweiterungspunkte.

      • Portable ausführbare Header (PE-Header): Ziele von Erweiterungspunkten, die Basisinformationen zum Image-Bedarf auf dem Datenträger, per Direktzugriff oder über Dateitypen enthalten.

      • Skripts: Verzeichnis zum Herunterladen von Skripts für die Verwendung im gesamten Veröffentlichungsprozess.

    4. Paketspeicher ausfüllen:

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

      2. Bereitstellen von Dateien der obersten Ebene und Verzeichnissen unter dem Stammverzeichnis.

      3. Alle anderen Dateien werden erstellt, wenn das Verzeichnis auf dem Datenträger als mit geringer Dichte aufgeführt wird, und auf Anforderung gestreamt.

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

    6. Erstellen Sie den Speicherort für den Paketspeicher in der Registrierung HKLM\Software\Microsoft\AppV\Client\Packages\PkgGUID\Versions\VerGUID\Catalog

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

    8. Registrieren Sie das Paket mit dem App-V-Kernelmodustreiber HKLM\Microsoft\Software\AppV\MAV

    9. Rufen Sie die Skripts aus der Datei AppxManifest.xml oder DeploymentConfig.xml für den Zeitpunkt der Pakethinzufügung ab.

  4. Konfigurieren Sie Verbindungsgruppen, indem Sie sie hinzufügen und aktivieren oder deaktivieren.

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

    Hinweis

    Damit wird das Paket nicht gelöscht, sondern die Integrationspunkte für das spezielle Ziel (Benutzer oder Computer) sowie Benutzerkatalogdateien (Computerkatalogdateien für globale Veröffentlichungen) entfernt.

  6. Rufen Sie das Laden im Hintergrund basierend auf der Client-Konfiguration auf.

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

    Hinweis

    Diese Bedingung tritt als Ergebnis des Entfernens ohne Aufheben der Veröffentlichung mit Hinzufügen des Pakets im Hintergrund auf.

Dies schließt eine App-V-Pakethinzufügung des Veröffentlichungsaktualisierungsprozesses ab. Im nächsten Schritt wird das Paket auf dem jeweiligen Ziel (Computer oder Benutzer) veröffentlicht.

Pakethinzufügungsdatei und Registrierungsdaten

Veröffentlichen eines App-V-Pakets

Durch den Veröffentlichungsaktualisierungsprozess mit dem speziellen Veröffentlichungsvorgang (Publish-AppVClientPackage) werden dem Benutzerkatalog Einträge hinzugefügt, Benutzerberechtigungen zugeordnet, der lokale Speicher identifiziert und abschließend eventuelle Integrationsschritte ausgeführt. Es folgen die ausführlichen Schritte.

Veröffentlichen von App-V-Paketen

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

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

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

  2. Registrieren Sie das Paket mit dem Kernelmodustreiber für den Benutzer unter HKLM\Software\Microsoft\AppV\MAV

  3. Durchführen von Integrationsaufgaben.

    1. Erstellen Sie Erweiterungspunkte.

    2. Speichern Sie Informationen zur Sicherung in der Benutzerregistrierung und im Roaming-Profil (Verknüpfung zu Sicherungen) des Benutzers.

      Hinweis

      Dies ermöglicht die Wiederherstellung von Erweiterungspunkten, wenn die Paketveröffentlichung aufgehoben wird.

    3. Führen Sie für die zeitlich gesteuerte Veröffentlichung vorgesehene Skripts aus.

Für das Veröffentlichen eines App-V-Pakets, das Teil einer Verbindungsgruppe ist, ist dem oben beschriebenen Verfahren sehr ähnlich. Bei Verbindungsgruppen enthält der Pfad, in dem die speziellen Kataloginformationen gespeichert sind, PackageGroups als untergeordnetes Element des Katalogverzeichnisses. Überprüfen Sie die Computer- und Benutzerkataloginformationen nach Details.

Pakethinzufügungsdatei und Registrierungsdatenm – Global

Starten von Anwendungen

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

Starten von App-V-Anwendungen

  1. Der Benutzer startet die Anwendung durch Klicken auf eine Verknüpfung oder einen Dateitypaufruf.

  2. Der App-V-Client überprüft das Vorhandensein der folgenden Dateien im Benutzerkatalog

    • UserDeploymentConfiguration.xml

    • UserManifest.xml

  3. Wenn die Dateien vorhanden sind, ist die Anwendung für diesen bestimmten Benutzer berechtigt, und die Anwendung startet den Prozess zum Starten. An diesem Punkt gibt es keinen Netzwerkdatenverkehr.

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

  5. Sobald der Pfad zum Paketspeicher gefunden wurde, wird die virtuelle Umgebung erstellt. Ist dies der erste Start, wird der primäre Featureblock heruntergeladen, sofern vorhanden.

  6. Nach dem Herunterladen nutzt 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 (Dateien mit geringer Dichte) streamt App-V die Dateien nach Bedarf.

    Pakethinzufügungsdatei und Registrierungsdatenm – Stream

Upgrade eines App-V-Pakets

Das App-V 5-Paket-Upgrade unterscheidet sich von den älteren Versionen von App-V. App-V unterstützt mehrere Versionen des gleichen Pakets auf einem Computer, für die unterschiedliche Benutzerberechtigungen gelten. Paketversionen können jederzeit hinzugefügt werden, wenn der Paketspeicher und die Kataloge mit den neuen Ressourcen aktualisiert werden. Der einzige Prozess für das Hinzufügen von neuen Versionsressourcen ist Speicheroptimierung. Während des Upgrades werden nur die neuen Dateien zum neuen Speicherort für die Version hinzugefügt und feste Links für unveränderte Dateien erstellt. Dies reduziert den Gesamtspeicherplatz, da die Datei nur in einem Datenträgerverzeichnis vorhanden ist und dann in allen Ordnern mit einem Speicherorteintrag auf dem Datenträger projiziert wird. Die genauen Details zum Aktualisieren eines App-V-Pakets sind wie folgt:

So aktualisieren Sie ein App-V-Paket

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

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

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

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

  3. Registrieren Sie das Paket mit dem Kernelmodustreiber für den Benutzer unter HKLM\Software\Microsoft\AppV\MAV

  4. Durchführen von Integrationsaufgaben.

    1. Integrieren Sie Erweiterungspunkte (EP) aus den Manifest- und dynamischen Konfigurationsdateien.
    1. Dateibasierte EP-Daten werden im AppData-Ordner mithilfe von Verknüpfungspunkten aus dem Paketspeicher gespeichert.

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

    3. Die Erweiterungspunkte werden für alle neuen oder aktualisierten Erweiterungspunkte auf den Speicherort der Version 2 in Computer- oder Benutzerkatalogen umgeschaltet.

  5. Führen Sie für die zeitlich gesteuerte Veröffentlichung vorgesehene Skripts aus.

  6. Installieren Sie parallele Assemblys nach Bedarf.

Aktualisieren eines verwendeten App-V-Pakets

Ab App-V 5 SP2 gilt: Wenn Sie versuchen, ein Paket zu aktualisieren, das von einem Endbenutzer verwendet wird, wird die Upgrade-Aufgabe im Status "Ausstehend" platziert. Das Upgrade wird später anhand der folgenden Regeln ausgeführt:

Aufgabentyp Entsprechende Regel

Benutzerbasierte Aufgabe, z. B. ein Paket für einen Benutzer veröffentlichen

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

Globale Aufgabe, z. B. eine Verbindungsgruppe global aktivieren

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

Wenn eine Aufgabe im Status "Ausstehend" platziert wird, generiert der App-V-Client auch einen Registrierungsschlüssel für die ausstehende Aufgabe, wie folgt:

Benutzerbasierte oder globale Aufgabe Wo der Registrierungsschlüssel generiert wird

Benutzerbasierte Aufgaben

KEY_CURRENT_USER\Software\Microsoft\AppV\Client\PendingTasks

Globale Aufgaben

HKEY_LOCAL_MACHINE\Software\Microsoft\AppV\Client\PendingTasks

Bevor Benutzer die neuere Version des Pakets verwenden können, müssen die folgenden Vorgänge ausgeführt werden:

Aufgabe Details

Paket auf dem Computer hinzufügen

Diese Aufgabe ist computerspezifisch und kann mithilfe der Schritte im obigen Abschnitt Paket hinzufügen zu einem beliebigen Zeitpunkt ausgeführt werden.

Veröffentlichen des Pakets

Schritte siehe Abschnitt oben zur Paketveröffentlichung. Dieser Prozess erfordert, dass Sie die Erweiterungspunkte auf dem System aktualisieren. Endbenutzer können die Anwendung nicht verwenden, während Sie diese Aufgabe ausführen.

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

Szenario Anforderungen

App-V-Paket wird nicht verwendet, während Sie versuchen, zu aktualisieren

Keine der folgenden Komponenten des Pakets darf verwendet werden: virtuelle Anwendung, COM-Server oder Shell-Erweiterungen.

Der Administrator veröffentlicht eine neuere Version des Pakets und die Aktualisierung funktioniert, wenn einerKomponente oder Anwendung innerhalb des Pakets das nächste Mal gestartet wird. Die neue Version des Pakets wird gestreamt und ausgeführt. Nichts in diesem Szenario hat sich in App-V 5 SP2 gegenüber früheren Versionen von App-V 5 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, was bedeutet, dass er in die Warteschlange gestellt und später ausgeführt wird, wenn das Paket nicht mehr verwendet wird.

Wenn die Paketanwendung verwendet wird, fährt der Benutzer die virtuelle Anwendung herunter, wonach die Aktualisierung erfolgen kann.

Falls im Paket Shell-Erweiterungen (Office 2013) vorhanden sind, die von Windows Explorer dauerhaft geladen werden, kann der Benutzer nicht angemeldet bleiben. Benutzer müssen sich zum Initiieren des App-V-Paket-Upgrades abmelden und dann wieder anmelden.

Globale im Vergleich zur Benutzerveröffentlichung

App-V-Pakete können auf zwei Arten veröffentlicht werden: Für Benutzer, was ein App-V-Paket für einen bestimmten Benutzer oder eine Gruppe von Benutzern berechtigt, und global, was zur Weitergabe des App-V-Pakets auf dem gesamten Computer für alle Benutzer des Computers berechtigt. Sobald ein Paket-Upgrade den Status "Ausstehend" erhält und das App-V-Paket nicht verwendet wird, sollten Sie die zwei Arten der Veröffentlichung abwägen:

  • 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; effektiv bedeutet dies einen Neustart des Computers.

  • Benutzerveröffentlicht: die Anwendung wird für einen Benutzer veröffentlicht. Wenn mehrere Benutzer auf dem Computer vorhanden sind, kann die Anwendung für einen Teil der Benutzer veröffentlicht werden. Das Upgrade erfolgt, wenn sich der Benutzer anmeldet oder wenn er erneut veröffentlicht wird (in regelmäßigen Abständen, mit ConfigMgr-Richtlinienaktualisierung und -Evaluierung oder eine 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 entfernt nicht das Paket. Der Prozess ist identisch mit dem oben genannten Veröffentlichungsprozess, doch anstatt etwas hinzuzufügen, macht der Prozess die von App-V-Paketen vorgenommenen Änderungen rückgängig.

Reparieren eines App-V-Pakets

Der Reparaturvorgang ist sehr einfach, kann sich aber auf viele Orte auf dem Computer auswirken. Die zuvor erwähnten "Kopie beim Schreiben"-Speicherorte (COW) werden entfernt, und die Integration von Erweiterungspunkte wird aufgehoben und dann wieder integriert. Informieren Sie sich über die COW-Datenplatzierung, indem Sie überprüfen, wo sie in der Registrierung registriert sind. Dieser Vorgang erfolgt automatisch, und es gibt keine administrative Kontrolle außer das Initiieren eines Reparaturvorgangs von der App-V-Clientkonsole oder über PowerShell (Repair-AppVClientPackage).

Integration von App-V-Paketen

Der App-V-Client und die Paketarchitektur bieten spezielle Integration mit dem lokalen Betriebssystem während der Hinzufügung und Veröffentlichung von Paketen. Drei Dateien definieren die Integrations- oder Erweiterungspunkte für ein App-V-Paket:

  • AppXManifest.xml: Gespeichert im Paket mit Fallback-Kopien im Paketspeicher und im Benutzerprofil. Enthält die Optionen, die während der Sequenzierung erstellt werden.

  • DeploymentConfig.xml: Enthält Konfigurationsinformationen von Computer- und benutzerbasierten Integrationserweiterungspunkten.

  • UserConfig.xml: Eine Teilmenge von Deploymentconfig.xml, die nur benutzerbasierte Konfigurationen bereitstellt und nur auf die benutzerbasierten Erweiterungspunkte ausgerichtet ist.

Integrationsregeln

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

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

  • Benutzerveröffentlichung: Verknüpfungen werden im Profil des aktuellen Benutzerkontos und andere Erweiterungspunkte in der HKCU-Struktur in der Registrierung gespeichert.

  • Sicherung und Wiederherstellung: Vorhandene systemeigene Anwendungsdaten und die Registrierung (z. B. Dateitypzuordnungs-Registrierungen) werden während der Veröffentlichung gesichert.

    1. App-V-Pakete erhalten den Besitz basierend auf dem letzten integrierten Paket, wobei der Besitz an die neueste veröffentlichte App-V-Anwendung übergeben wird.

    2. Der Besitz wird von einem App-V-Paket auf ein anderes übertragen, wenn die Veröffentlichung des besitzenden App-V-Pakets aufgehoben wird. Hierdurch wird keine Wiederherstellung der Daten oder der Registrierung ausgelöst.

    3. Das Wiederherstellen der gesicherten Daten erfolgt, wenn die Veröffentlichung des letzten Pakets aufgehoben oder auf Erweiterungspunktbasis entfernt wird.

Erweiterungspunkte

Die App-V-Veröffentlichungsdateien (Manifest und dynamische Konfiguration) bieten einige Erweiterungspunkte, mit denen die Anwendung in das lokale Betriebssystem integriert werden kann. Diese Erweiterungspunkte führen die typischen Installationsaufgaben aus, wie z. B. Verknüpfungen setzen, Dateitypzuordnungen erstellen und Komponenten registrieren. Da es sich um virtualisierte Anwendungen handelt, die nicht auf die gleiche Weise eine herkömmliche Anwendung installiert sind, bestehen einige Unterschiede. Nachfolgend finden Sie eine Liste von Erweiterungspunkten, die in diesem Abschnitt behandelt werden:

  • Verknüpfungen

  • Dateitypzuordnungen

  • Shell-Erweiterungen

  • COM

  • Softwareclients

  • Anwendungsfunktionen

  • URL-Protokollhandler

  • AppPath

  • Virtuelle Anwendung

Verknüpfungen

Die Verknüpfung ist eines der grundlegenden Elemente der Integration in das Betriebssystem und ist die Schnittstelle für den Start einer App-V-Anwendung direkt durch den Benutzer. Während des Veröffentlichens und des Aufhebens der Veröffentlichung von App-V-Anwendungen.

In den Manifest- und dynamischen XML-Konfigurationsdateien des Pakets befindet sich der Pfad zur ausführbaren Datei einer bestimmten Anwendung 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, befinden sich die App-V-Verknüpfungen basierend auf den Aktualisierungsvorgang standardmäßig im Profil des Benutzers. Globale Aktualisierung platziert Verknüpfungen im Profil für alle Benutzer, und Benutzeraktualisierung speichert sie in einem bestimmten Benutzerprofil. Die eigentliche ausführbare Datei wird im Paketspeicher gespeichert. Der Speicherort der ICO-Datei ist ein Speicherort mit Token im App-V-Paket.

Dateitypzuordnungen

Der App-V-Client verwaltet die Dateitypzuordnungen des lokalen Betriebssystems während der Veröffentlichung, was den Benutzern das Öffnen einer Datei mit Dateitypaufrufen oder einer speziell registrierten Erweiterung (.docx) zum Starten einer App-V-Anwendung ermöglicht. 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> der ProgId-Wert (der zur angrenzenden ProgId zeigt)

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

Shell-Erweiterungen

Shell-Erweiterungen werden automatisch während der Sequenzierung im Paket eingebettet. Wenn das Paket global veröffentlicht wird, bietet die Shell-Erweiterung den Benutzern die gleiche Funktionalität, als ob die Anwendung lokal installiert wurde. Für die Anwendung ist keine zusätzliche Einrichtung oder Konfiguration auf dem Client erforderlich, um die Shel-Erweiterungsfunktion zu aktivieren.

Anforderungen für die Verwendung von Shell-Erweiterungen:

  • Pakete, die eingebettete Shell-Erweiterungen enthalten, müssen global veröffentlicht werden.

  • Der "Bitness" für Anwendung, Sequencer und App-V-Client muss übereinstimmen, sonst funktionieren die Shell-Erweiterungen nicht. Beispiel:

    • Die Version der Anwendung ist 64-Bit.

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

    • Das Paket wird auf einem 64-Bit-App-V-Clientcomputer bereitgestellt.

In der folgenden Tabelle sind die unterstützten Shell-Erweiterungen aufgeführt:

Handler Beschreibung

Kontextmenühandler

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

Drag & Drop-Handler

Steuert die Aktion, die bei Drag & Drop-Vorgängen mit Rechtsklick ausgeführt wird, und ändert das angezeigte Kontextmenü.

Dropzielhandler

Steuert die Aktion, die nach dem Ziehen eines Datenobjekts auf ein Dropziel (z. B. eine Datei) ausgeführt wird.

Datenobjekthandler

Steuert die Aktion, die nach dem Kopieren einer Datei in die Zwischenablage bzw. nach dem Ziehen einer Datei auf ein Dropziel ausgeführt wird. Außerdem können zusätzliche Zwischenablagenformate für das Dropziel bereitgestellt werden.

Eigenschaftenblatthandler

Ersetzt oder fügt Seiten im Eigenschaftenblatt-Dialogfeld eines Objekts hinzu.

QuickInfo-Handler

Ermöglicht das Abrufen von Kennzeichen und QuickInfos für ein Element sowie die Anzeige als QuickInfo in einem Popupfenster, wenn mit der Maus auf das Element gezeigt wird.

Spaltenhandler

Ermöglicht die Erstellung und Anzeige benutzerdefinierter Spalten in der Detailansicht von Windows-Explorer. Außerdem kann die Sortierung und Gruppierung erweitert werden.

Vorschauhandler

Ermöglicht eine Vorschau auf eine Datei im Windows Explorer-Vorschaufenster.

COM

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

App-V unterstützt die Registrierung von COM-Objekten aus dem Paket auf dem lokalen Betriebssystem mit zwei Verfahren: Prozessextern und prozessintern. Die Registrierung von COM-Objekten erfolgt mit einem oder einer Kombination aus mehreren Betriebsmodi für ein bestimmtes App-V-Paket, das deaktivierte, isolierte und integrierte umfasst. Der integrierte Modus wird für den prozessexternen oder prozessinternen Typ konfiguriert. Die Konfiguration von COM-Modi und -Typen erfolgt mit dynamischen Konfigurationsdateien (deploymentconfig.xml oder userconfig.xml).

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

Softwareclients und Anwendungsfunktionen

App-V unterstützt bestimmte Softwareclients und Anwendungsfunktions-Erweiterungspunkte, mit denen die virtualisierten Anwendungen beim Softwareclient des Betriebssystems registriert werden. Dies ermöglicht Benutzern die Auswahl der Standardprogramme für Vorgänge wie E-Mail, Instant Messaging und Media Player. Dieser Vorgang wird in der Systemsteuerung über Programmzugriff und Computerstandards ausgeführt und während der Sequenzierung in den Manifest- oder dynamische Konfigurationsdateien konfiguriert. Anwendungsfunktionen werden nur unterstützt, wenn die App-V-Anwendungen global veröffentlicht werden.

Beispiel für Software-Clientregistrierung 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 Softwareclient-Einstellung zur Integration von E-Mail-Clients

  • <EMail MakeDefault="true"> ist das Flag, um einen bestimmten E-Mail-Client als Standard-E-Mail-Client festzulegen.

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

URL-Protokollhandler

Anwendungen sind nicht immer speziell aufgerufene virtualisierte Anwendungen, die Dateitypaufrufe verwenden. Wenn beispielsweise in einer Anwendung, die das Einbetten einer "mailto:"-Verknüpfung innerhalb eines Dokument oder einer Webseite unterstützt, der Benutzer auf die "mailto:"-Verknüpfung klickt, erwartet er seinen registrierten E-Mail-Client. App-V unterstützt URL-Protokollhandler, die individuell pro Paket beim lokalen Betriebssystem registriert werden können. Die URL-Protokollhandler werden während der Sequenzierung automatisch zum Paket hinzugefügt.

Für Situationen, wenn mehr als eine Anwendung vorhanden ist, die den jeweiligen URL-Protokollhandler registrieren könnte, 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 gestartete primäre Anwendung ist.

AppPath

Der AppPath-Erweiterungspunkt unterstützt das Aufrufen von App-V-Anwendungen direkt aus dem Betriebssystem. Dies geschieht in der Regel über den Ausführungs- oder Startbildschirm, je nach Betriebssystem. Dadurch können Administratoren den Zugriff auf App-V-Anwendungen über Betriebssystem-Befehle oder -Skripts ermöglichen, ohne den Pfad zur ausführbaren Datei aufzurufen. So wird vermieden, die Systempfad-Umgebungsvariablen auf allen Systemen zu ändern, da dies während der Veröffentlichung durchgeführt wird.

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

Virtuelle Anwendung

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

Erweiterungspunktregeln

Die oben beschriebenen Erweiterungspunkte werden in das Betriebssystem integriert, basierend darauf, wie die Pakete veröffentlicht wurden. Globale Veröffentlichung platziert Erweiterungspunkte an öffentlichen Computerspeicherorten, während Benutzerveröffentlichung die Erweiterungspunkte an Benutzerspeicherorten platziert. Z. B. ergibt eine Verknüpfung, die auf dem Desktop erstellt und global veröffentlicht wird, die Datendatei für die Verknüpfung (%Public%\Desktop) sowie die Registrierungsdaten (HKLM\Software\Classes). Dieselbe Verknüpfung weist Dateidaten (%UserProfile%\Desktop) und Registrierungsdaten auf (HKCU\Software\Classes).

Erweiterungspunkte werden nicht alle genauso veröffentlicht. Einige Erweiterungspunkte erfordern globale Veröffentlichung und andere erfordern die Sequenzierung auf bestimmten Betriebssystemen und Architekturen, wenn sie bereitgestellt werden. Nachfolgend finden Sie eine Tabelle, die diese zwei wichtigen Regeln beschreibt.

Virtuelle Erweiterung Zielbetriebssystem-Sequenzierung erforderlich Globale Veröffentlichung erforderlich

Verknüpfung

Dateitypzuordnungen

URL-Protokolle

X

AppPaths

X

COM-Modus

Softwareclient

X

Anwendungsfunktionen

X

X

Kontextmenühandler

X

X

Drag & Drop-Handler

X

Datenobjekthandler

X

Eigenschaftenblatthandler

X

QuickInfo-Handler

X

Spaltenhandler

X

Shell-Erweiterungen

X

Browser-Hilfsobjekt

X

X

ActiveX-Objekt

X

X

Dynamische Konfigurationsverarbeitung

Das Bereitstellen von App-V-Paketen für einen Computer oder Benutzer ist sehr einfach. Wenn Organisationen jedoch AppV-Anwendungen über Geschäftsbereiche und geografische und politische Grenzen hinweg bereitstellen, wird die Möglichkeit zur einmaligen Sequenzierung einer Anwendung mit einem Satz von Einstellungen unmöglich. App-V wurde für dieses Szenario entwickelt, da es bestimmte Einstellungen und Konfigurationen während der Sequenzierung in der Manifestdatei erfasst, aber auch Änderungen mit dynamischen Konfigurationsdateien unterstützt.

Dynamische Konfiguration von App-V ermöglicht das Angeben einer Richtlinie für ein Paket auf Computerebene oder auf Benutzerebene. Die dynamische Konfigurationsdateien ermöglichen Sequenzierungstechnikern das Ändern der Konfiguration eines Pakets nach Abschluss der Sequenzierung, um die Anforderungen der einzelnen Gruppen von Benutzern oder Computern zu erfüllen. In einigen Fällen kann es erforderlich sein, Änderungen an der Anwendung vorzunehmen, um eine ordnungsgemäße Funktionalität innerhalb der App-V-Umgebung zu gewährleisten. Beispielsweise kann es erforderlich sind, Änderungen an _*config.xml-Dateien vorzunehmen, um bestimmte Aktionen zu einem bestimmten Zeitpunkt während der Ausführung der Anwendung zuzulassen, wie 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 in der APPV-Paketdatei, die repräsentativ für die Sequenzierungsvorgänge ist und die bevorzugte Richtlinie darstellt, wenn dynamische Konfigurationsdateien nicht einem bestimmten Paket zugeordnet sind. Nach Abschluss der Sequenzierung können dynamische Konfigurationsdateien geändert werden, um das Veröffentlichen einer Anwendung für unterschiedliche Desktops oder Benutzer mit verschiedenen Erweiterungspunkten zu ermöglichen. Die zwei dynamischen Konfigurationsdateien sind dynamische Bereitstellungskonfiguration (DDC) und dynamische Benutzerkonfiguration (DUC). Dieser Abschnitt konzentriert sich auf die Kombination aus Manifest und dynamischen Konfigurationsdateien.

Beispiel für dynamische Konfigurationsdateien

Das folgende Beispiel zeigt die Kombination aus Manifest-, Bereitstellungskonfigurations- und Benutzerkonfigurationsdateien nach dem Veröffentlichen und während des normalen Betriebs. Diese Beispiele sind abgekürzte Beispiele für die einzelnen Dateien. Der Zweck ist die Kombination der Dateien zu zeigen, nicht eine vollständige Beschreibung der spezifischen Kategorien, die in jeder der Dateien verfügbar sind. Weitere Informationen finden Sie im App-V 5 Sequenzierungshandbuch 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:lcon>[{AppVPackageRoot}]\7zFM.exe.O.ico</appv:Icon>
     </appv:Shortcut>
     <appv:Shortcut>
          <appv:File>[{Common Programs}]\7-Zip\7-Zip File Manager.Ink</appv:File>
          <appv:Target>[{AppVPackageRoot}]\7zFM.exe</appv:Target>
          <appv:lcon>[{AppVPackageRoot)]\7zFM.exe.O.ico</appv: Icon>
     </appv:Shortcut>
</appv:Extension>
     </Subsystems>
<MachineConfiguration>
     <Subsystems>
          <Registry>
               <Include>
                    <Key Path="\REGISTRY\Machine\Software\7zip">
                    <Value Type=”REG_SZ" Name="Config" Data="1234"/>
               </Include>
          </Registry>
     </Subsystems>

Parallele Assemblys

App-V unterstützt die automatische Paketerstellung von parallelen Assemblys (Side-by-Side; SxS) 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 auf dem sequenzierenden Computer nicht vorhanden sind. Und für Assemblys, die Visual C++ (Version 8 und neuere Versionen) und/oder MSXML-Laufzeit enthalten, erkennt der Sequencer automatisch diese Abhängigkeiten und erfasst sie, auch wenn sie während der Überwachung nicht installiert waren. Das Feature für parallele Assemblys entfernt die Einschränkungen früherer Versionen von App-V, in denen der App-V-Sequenzierer Assemblys, die auf der sequenzierenden Arbeitsstation bereits vorhanden waren, nicht erfasste, und Privatisierung der Assemblys, die auf die 1-Bit-Version pro Paket beschränkte. Dieses Verhalten führte dazu, dass in bereitgestellten App-V-Anwendungen auf Clients die erforderlichen SxS-Assemblys fehlten, was Anwendungsstartfehler verursachte. Dadurch musste der Verpackungsprozess dokumentieren und sicherstellen, dass alle erforderlichen Paket-Assemblys lokal auf dem Clientbetriebssystem des Benutzers installiert waren, um die Unterstützung für virtuelle Anwendungen zu gewährleisten. Basierend auf der Anzahl von Assemblys und der fehlenden Anwendungsdokumentation für die erforderlichen Abhängigkeiten war diese Aufgabe sowohl bei der Implementierung als auch beim Management eine Herausforderung.

Parallele Assembly-Unterstützung in App-V bietet die folgenden Features.

  • Automatische Erfassungen von SxS-Assembly während der Sequenzierung, unabhängig davon, ob die Assembly bereits auf der sequenzierenden Arbeitsstation installiert wurde.

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

  • Die VC-Laufzeitabhängigkeit wird vom Sequencer mithilfe seines Berichterstellungsmechanismus gemeldet.

  • Der Sequencer bietet die Option, Assemblys nicht zu verpacken, die bereits auf dem Sequencer installiert sind, zur Unterstützung von Szenarios, in denen die Assemblys bereits 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 das Vorhandensein der Assembly auf dem Computer. Wenn die Assembly nicht vorhanden ist, stellt der Client die Assembly auf dem Computer bereit. Pakete, die Teil der Verbindungsgruppen sind, verlassen sich auf die parallelen Assembly-Installationen, die Teil der Basispakete sind, da die Verbindungsgruppe keine Informationen über die Assembly-Installation enthält.

Hinweis

Aufheben der Veröffentlichung oder Entfernen eines Pakets mit einer Assembly entfernt die Assemblys für das Paket nicht.

Clientprotokollierung

Der App-V-Client protokolliert Informationen im Windows-Ereignisprotokoll im ETW-Standardformat. Die spezifischen App-V-Ereignisse befinden sich im Ereignis-Viewer unter Anwendungs- und Dienstprotokolle\Microsoft\AppV\Client.

Hinweis

In App-V 5.0 SP3 wurden einige Protokolle zusammengefasst und an folgenden Speicherort verschoben:

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

Eine Liste der verschobenen Protokolle finden Sie unter App-V event logs have been consolidated.

Es gibt drei bestimmte Kategorien von aufgezeichneten Ereignissen, wie weiter unten beschrieben.

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

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

Virtuelle Anwendung: Protokolliert virtuelle Anwendungsstarts und die Verwendung von Virtualisierungs-Subsystemen.

Haben Sie einen Vorschlag für App-V?

Fügen Sie hier Vorschläge hinzu, oder stimmen Sie über Vorschläge ab. Verwenden Sie bei Problemen mit App-V das App-V-TechNet-Forum.

-----
Sie erfahren mehr zu MDOP in der TechNet Library, können im TechNet-Wiki nach Problemlösungen suchen oder uns auf Facebook und Twitter folgen.
-----