Anwendungsveröffentlichung und Clientinteraktion

Gilt für:

  • Windows 10
  • Windows 11

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

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 erfasste 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 zum Anpassen 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, die sich aus dem Sequenzierungsprozess ergeben, einschließlich nicht angegebener Treiber, Dateien und Registrierungsspeicherorte.
.CAB Optional: Paketbeschleunigungsdatei, die zum automatischen Neuerstellen eines zuvor sequenzierten virtuellen Anwendungspakets verwendet wird.
.appvt Optional: Sequencer-Vorlagendatei, die verwendet wird, um häufig wiederverwendete Sequencer-Einstellungen beizubehalten.

Weitere Informationen zur Sequenzierung finden Sie unter Sequenzieren einer neuen Anwendung mit App-V.

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 wurde.
[Content_Types].xml XML-Datei Liste der wichtigsten Inhaltstypen in der appv-Datei (z. B. 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 während der Sequenzierung erfassten Dateien, einschließlich Attributen (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, damit 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 Pro-Computer-Konfigurationsdokumente.
Benutzerkatalog %AppData%\Microsoft\AppV\Client\Catalog Enthält Benutzerkonfigurationsdokumente.
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 Nichtroamingspeicherort für Paketänderungen.
Computerregistrierung HKLM\Software\Microsoft\AppV Enthält Informationen zum Paketstatus, 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 weitere 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. Sie können ihn jedoch während oder nach dem Setup konfigurieren, indem Sie das Cmdlet Set-AppVClientConfiguration Windows PowerShell verwenden, das die lokale Registrierung ändert (PackageInstallationRoot-Wert unter dem Schlüssel HKLM\Software\Microsoft\AppV\Client\Streaming). Der Paketspeicher muss sich unter einem lokalen Pfad auf dem Clientbetriebssystem befinden. Die einzelnen Pakete werden im Paketspeicher in Unterverzeichnissen gespeichert, die nach der Paket-GUID und der Versions-GUID benannt sind.

Im Folgenden finden Sie ein 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 Aktivieren des App-V-Desktopclients.

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. In VDI-Umgebungen, in denen der lokale Speicher begrenzt werden kann, ist es wichtig, so wenig Speicherplatz wie möglich zu verwenden. Sie können die Speicherplatznutzung minimieren, indem Sie Anwendungen von einem Hochleistungsnetzwerkspeicherort (z. B. einem SAN) streamen. Weitere Informationen finden Sie unter Freigegebener Inhaltsspeicher in Microsoft App-V 5.0 – Hinter den Kulissen.

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

Die in dieser Tabelle beschriebenen Speicherorte finden Sie im Ordner %programdata%\Microsoft\AppV\Client\Catalog\.

Pfad
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. wenn sich das Paketverzeichnis an einem freigegebenen Datenträgerspeicherort befindet).

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<br>
Dieser Speicherort entspricht nicht dem Speicherort des Paketspeichers. Der Paketspeicher ist die goldene oder unberührte Kopie der Paketdateien.
Dateien im Computerkatalog – Manifest.xml
– DeploymentConfiguration.xml
– UserManifest.xml (Globally Published Package)
– UserDeploymentConfiguration.xml (Globally Published Package)
Zusätzlicher Speicherort des Computerkatalogs, der verwendet wird, wenn das Paket Teil einer Verbindungsgruppe ist Der folgende Speicherort ist zusätzlich zu dem spezifischen Paketspeicherort, der zuvor als Standardspeicherort angegeben wurde:

%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

Die in dieser Tabelle beschriebenen Speicherorte finden Sie im Ordner appdata\roaming\Microsoft\AppV\Client\Catalog\.

Pfad
Beschreibung Wird während des Veröffentlichungsprozesses erstellt. Enthält Informationen, die zum Veröffentlichen des Pakets und zum Sicherstellen verwendet werden, dass ein Paket beim Start 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 nach der Bereitstellung mit dem Benutzer roamingn.
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. Mit dieser Sicherung können Integrationspunkte die vorherigen Versionen wiederherstellen, 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 jedoch 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 an den typischen %AppData%-Speicherort oder an \Users\<username>\AppData\Roamingspeicherort 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 anderer 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}.dat erstellt. 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 unter HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AppV\Client\Packages\PackageGuid\Versions\VersionGUID\REGISTRY neu 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 bereitgestellt HKCU\Software\Microsoft\AppV\Client\Packages\PackageGUID\Registry\User. 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. Die mehrstufigen 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-Funktionen (Copy-On-Write), d. h. alle Änderungen, die an der Registrierung aus dem Kontext eines virtuellen Prozesses vorgenommen werden, werden an einem separaten COW-Speicherort vorgenommen. Diese Funktionalität bedeutet, dass die VREG bis zu drei separate Registrierungsspeicherorte in einer einzigen Ansicht kombinieren muss, basierend auf den aufgefüllten Speicherorten imnativenCow-Paket>> der Registrierung. 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

Die Registrierungen in der folgenden Tabelle befinden sich im Ordner Registry\Client\Packages\PkgGUID\.

Pfad 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

Verbindungsgruppe VReg

Die Registrierungen in der folgenden Tabelle befinden sich in den Ordnern Computerregistrierung\Client\PackageGroups\GrpGUID\ und Benutzerregistrierungsklassen\Client\PackageGroups\GrpGUID\.

Pfad Beschreibung
KUH - Computerregistrierung\Client\PackageGroups\GrpGUID\REGISTRY (nur der Prozess mit erhöhten Rechten kann schreiben)
- Benutzerregistrierung\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

Ein Administrator kann Pass-Through-Schlüssel verwenden, um bestimmte Schlüssel so zu konfigurieren, dass sie nur aus der nativen Registrierung gelesen werden, 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 an den REG_MULTI_SZ Wert namens PassThroughPaths des Schlüssels HKLM\Software\Microsoft\AppV\Subsystem\VirtualRegistry behandelt 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. Administratoren sollten im Idealfall keinen der Standardmäßigen Passthrough-Schlüssel ändern, aber in einigen Fällen muss der Administrator möglicherweise weitere Passthrough-Schlüssel hinzufügen, um das Anwendungsverhalten anzupassen.

App-V-Paketspeicherverhalten

App-V verwaltet den Paketspeicher, d. h. den Speicherort der erweiterten Ressourcendateien aus der appv-Datei. 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. Wenn Sie das Cmdlet Add-AppVClientPackage veröffentlichen oder manuell eingeben, wird die Datenstruktur im Paketspeicher (C:\programdata\App-V\{PkgGUID}\{VerGUID}) erstellt. Die im Veröffentlichungsblock identifizierten Paketdateien, die in der StreamMap.xml-Datei definiert sind, werden dem System hinzugefügt, und die Ordner der obersten Ebene und die untergeordneten Dateien werden bereitgestellt, um sicherzustellen, dass beim Start die richtigen Anwendungsressourcen vorhanden sind.

Einbinden von Paketen

Pakete können explizit geladen werden, indem Sie das PowerShell-Cmdlet Mount-AppVClientPackage eingeben oder die App-V-Clientbenutzeroberfläche verwenden, 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 festgelegt, indem Sie das PowerShell-Cmdlet Set-AppvClientConfiguration eingeben. Die folgenden Richtlinien gelten für streaming:

Richtlinie Beschreibung
AllowHighCostLaunch Ermöglicht 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 in Streamingpaketen, die zu verstehen sind:

  • Hintergrundstreaming
  • Optimiertes Streaming
  • Stream Fehler

Hintergrundstreaming

Das Windows PowerShell Cmdlet Get-AppvClientConfiguration kann verwendet werden, um den aktuellen Modus für das Hintergrundstreaming mit der Einstellung AutoLoad zu bestimmen und entweder 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 entweder vollständig deaktiviert (Wert=0) oder für alle Pakete (Wert=2) aktiviert werden, 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.

Stream Fehler

Nach dem anfänglichen Stream aller Veröffentlichungsdaten und des primären Featureblocks führen Anforderungen für weitere Dateien Zustromfehler aus. Diese Datenblöcke werden nach Bedarf in den Paketspeicher heruntergeladen. Diese Flexibilität ermöglicht es einem Benutzer, nur einen kleinen Teil des Pakets herunterzuladen, 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.

Paketupgrades

App-V-Pakete müssen während des gesamten Lebenszyklus der Anwendung aktualisiert werden. App-V-Paketupgrades ähneln dem Vorgang zum Veröffentlichen von Paketen, 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 zum Entfernen des Pakets ab. Mithilfe einer vollständigen App-V-Infrastruktur zum Aufheben der Veröffentlichung der Anwendung werden die Benutzerkatalogdateien (Computerkatalog für global veröffentlichte Anwendungen) entfernt, aber der Paketspeicherort und die COW-Speicherorte bleiben erhalten. Wenn das Cmdlet Remove-AppVClientPackge Windows PowerShell 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 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, in 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. In diesem Szenario werden zwei unterschiedliche Pfade vorgestellt:

– HKLM-Speicherort ist HKCU\SOFTWARE\Classes\AppV\Client\Packages\{PkgGUID}\REGISTRY\MACHINE\SOFTWARE
- HKCU-Speicherort ist 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 an den folgenden Speicherorten gespeichert:

- HKLM-Speicherort ist HKLM\SOFTWARE\Microsoft\AppV\Client\Packages\{PkgGUID}\{UserSID}\REGISTRY\MACHINE\SOFTWARE
– HKCU-Speicherort ist HKCU\SOFTWARE\Microsoft\AppV\Client\Packages\{PkgGUID}\Registry\User\{UserSID}\SOFTWARE

App-V und Ordnerumleitung

App-V unterstützt die Ordnerumleitung des roamingden 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\Local\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\ProgramFilesX86
SystemX86 C:\Users\username\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\SystemX86
Windows C:\Users\username\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\Windows
appv_ROOT C:\Users\username\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\appv_ROOT
Appdata C:\Users\username\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\AppData

Die folgende Tabelle zeigt lokale und Roamingstandorte, wenn die Ordnerumleitung für %AppData% implementiert und der Standort umgeleitet wurde (in der Regel an einen Netzwerkspeicherort).

VFS-Verzeichnis im Paket Zugeordneter Speicherort des Sicherungsspeichers
ProgramFilesX86 C:\Users\Local\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\ProgramFilesX86
SystemX86 C:\Users\Local\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\SystemX86
Windows C:\Users\Local\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\Windows
appv_ROOT C:\Users\Local\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\appv_ROOT
Appdata \Fileserver\users\Local\roaming\Microsoft\AppV\Client\VFS\<GUID>\AppData

Der aktuelle VFS-Treiber des App-V-Clients kann nicht in Netzwerkspeicherorte schreiben, sodass der App-V-Client das Vorhandensein einer Ordnerumleitung erkennt und die Daten während der Veröffentlichung und beim Start der virtuellen Umgebung auf das lokale Laufwerk kopiert. 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 zurück in das Netzwerk kopiert, wodurch das Roaming zu weiteren Computern ermöglicht wird, auf denen der Prozess wiederholt wird. Dies geschieht während des Prozesses:

  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 kein AppData\Roaming-Speicherort 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. Der Prozess führt die folgenden Schritte aus:

  1. Beendet die App-V-Anwendung, wodurch auch die virtuelle Umgebung heruntergefahren wird.
  2. Komprimiert den lokalen Cache des roaminggespeicherten AppData-Speicherorts und speichert ihn in einer .zip-Datei.
  3. Verwendet den Zeitstempel am Ende des .zip Verpackungsprozesses, um die Datei zu benennen.
  4. Zeichnet den Zeitstempel in der HKEY_CURRENT_USER\Software\Microsoft\AppV\Client\Packages\-GUID<>\AppDataTime-Registrierung als letzten bekannten AppData-Zeitstempel auf.
  5. Ruft den Ordnerumleitungsprozess auf, 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. Dies geschieht während des Prozesses:

  1. Der Benutzer startet eine Anwendung, die auch die virtuelle Umgebung startet.
  2. Die virtuelle Umgebung der Anwendung sucht nach dem letzten Zeitstempel .zip Datei, falls vorhanden.
  3. Die virtuelle Umgebung überprüft die Registrierung auf den letzten bekannten hochgeladenen Zeitstempel, falls vorhanden.
  4. Die virtuelle Umgebung lädt die neueste .zip Datei herunter, es sei denn, der lokale zeitstempel des letzten bekannten Uploads ist größer oder gleich dem Zeitstempel aus der .zip-Datei.
  5. Wenn der lokale letzte bekannte Uploadzeitstempel früher als der letzte .zip-Datei am Roamingspeicherort AppData ist, extrahiert die virtuelle Umgebung die .zip-Datei in das lokale temporäre Verzeichnis im Profil des Benutzers.
  6. Nachdem die .zip Datei erfolgreich extrahiert wurde, wird der lokale Cache des roaminggespeicherten AppData-Verzeichnisses umbenannt und die neuen Daten verschoben.
  7. Das umbenannte Verzeichnis wird gelöscht, und die Anwendung wird mit den zuletzt gespeicherten Roaming-AppData-Daten geöffnet.

Dieser Prozess schließt das erfolgreiche Roaming von Anwendungseinstellungen ab, die in AppData\Roaming-Speicherorten vorhanden sind. Die einzige andere Bedingung, die behoben werden muss, ist ein Paketreparaturvorgang. Der Prozess führt die folgenden Schritte aus:

  1. Erkennt während der Reparatur, ob der Pfad zum Roaming-AppData-Verzeichnis des Benutzers nicht lokal ist.
  2. Ordnet die Ziele des nicht lokalen AppData-Roamingpfads zu, wobei die erwarteten Roaming- und lokalen AppData-Speicherorte neu erstellt werden.
  3. Löscht 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 Sequenzierung 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 PowerShell-Befehle auf dem Computer eingegeben, 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 Microsoft Configuration Manager finden Sie unter Bereitstellen virtueller App-V-Anwendungen mit Configuration Manager.

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 und andere, werden (nachdem der Client aktiviert wurde) mit Windows PowerShell-Befehlen konfiguriert. Weitere Informationen finden Sie unter App-V-Clientkonfigurationseinstellungen: Windows PowerShell.

Aktualisierung der Veröffentlichung

Der Veröffentlichungsaktualisierungsprozess umfasst mehrere kleinere Vorgänge, 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 zu aktivieren, wenn sich der Benutzer anmeldet, der Computer in geplanten Intervallen einschaltet. Die im vorherigen Abschnitt aufgeführte Clientkonfiguration während des 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 Windows 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 Prozess wird auch in den geplanten Aufgaben verwendet, die während der Konfiguration des Veröffentlichungsservers erstellt wurden.

In den folgenden Abschnitten wird erläutert, was während des Veröffentlichungsaktualisierungsprozesses vor sich geht.

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 Windows PowerShell, mit dem Unterschied, dass der Veröffentlichungsaktualisierungs-Add-Prozess den konfigurierten Veröffentlichungsserver kontaktiert und eine allgemeine Liste von Anwendungen zurück an den Client übergibt, um ausführlichere Informationen abzurufen, anstatt nur einen einzelnen Vorgang zum Hinzufügen eines Pakets auszuführen.

Der Prozess konfiguriert dann den Client für Das Hinzufügen oder Aktualisieren von Paketen oder Verbindungsgruppen und greift dann auf die appv-Datei zu. Als Nächstes werden die Inhalte der appv-Datei erweitert und auf dem lokalen Betriebssystem an den entsprechenden Speicherorten platziert. Die folgenden Schritte sind ein detaillierter Workflow des Prozesses, vorausgesetzt, das Paket ist für Fault Streaming konfiguriert.

Hinzufügen eines App-V-Pakets

  1. Initiieren Sie die Installation manuell über Windows 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 weitere Anforderungen an den Server zu senden, um weitere Informationen pro Paket zu erhalten.

  2. Der Veröffentlichungs-Agent auf dem App-V-Client wertet alle Verbindungsgruppen aus, 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 die Vorgänge Hinzufügen oder Aktualisieren 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-Dateien werden in den Paketspeicher heruntergeladen.

    3. Vollständiges Streamen von Blockdaten, die in der StreamMap.xml-Datei definiert sind. Veröffentlichungsblockdaten werden im Paketspeicher\PkgGUID\VerGUID\Root gespeichert.

      • Symbole: Ziele von Erweiterungspunkten.
      • Portable Executable Headers (PE-Header): Ziele von Erweiterungspunkten, die die Basisinformationen über die Imageanforderung auf dem Datenträger enthalten, auf die direkt oder über Dateitypen zugegriffen wird.
      • Skripts: Laden Sie das Skriptverzeichnis zur Verwendung während des gesamten Veröffentlichungsprozesses herunter.
    4. Füllen Sie den Paketspeicher auf, indem Sie die folgenden Unterschritte ausführen:

      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.

        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-Dateien aus den Paketdateien (wenn kein DeploymentConfiguration.xml Datei im Paket ein Platzhalter erstellt wird).

    6. Erstellen Sie den Speicherort 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 Sie das Paket mit dem App-V-Kernelmodustreiber unter HKLM\Microsoft\Software\AppV\MAV.

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

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

    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.

Dieser Prozess schließt ein App-V-Paket für den Veröffentlichungsaktualisierungsprozess ab. Der nächste Schritt besteht darin, das Paket auf einem bestimmten Ziel (Computer oder Benutzer) zu veröffentlichen.

Paket fügt Datei- und Registrierungsdaten hinzu.

Paket zum Hinzufügen von Datei- und Registrierungsdaten

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.

Veröffentlichen eines App-V-Pakets

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

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

    2. Computerorientierte (globale) Pakete: Die 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. 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. Bei Verbindungsgruppen enthält der Pfad, in dem die spezifischen Kataloginformationen gespeichert werden, PackageGroups als untergeordnetes Element des Katalogverzeichnisses. Weitere Informationen finden Sie unter Computer- und Benutzerkataloginformationen in den vorherigen Abschnitten.

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

Paket zum Hinzufügen von Datei- und Registrierungsdaten – global

Anwendungsstart

Nach dem Veröffentlichungsaktualisierungsprozess startet der Benutzer eine App-V-Anwendung und startet sie dann neu. Der App-V-Client überprüft den Pfad zum Benutzerkatalog auf Dateien, die während der Veröffentlichung erstellt wurden. Nach dem Einrichten von Rechten zum Starten des Pakets 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. Sobald die virtuelle Umgebung für das jeweilige Paket und die Anwendung erstellt und konfiguriert wurde, wird die Anwendung gestartet. Dies mag viel erscheinen, aber der Prozess in Aktion ist schnell und wurde optimiert, um den Netzwerkdatenverkehr zu minimieren.

Starten von App-V-Anwendungen

  1. Der Benutzer startet die Anwendung, indem er eine Verknüpfung oder einen Dateitypaufruf auswählt.

  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 diese Prozessausführung der erste Start ist, wird der primäre Featureblock heruntergeladen, sofern 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. Bei fehlenden Dateien im Paketspeicher (Sparsedateien) streamt App-V die Dateien nach Bedarf.

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

    Paket zum Hinzufügen von Datei- und Registrierungsdaten – Stream

Aktualisieren eines App-V-Pakets

Die aktuelle Version des App-V-Paketupgradeprozesses unterscheidet sich von den älteren Versionen in der Speicheroptimierung. 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, da der Paketspeicher und die Kataloge mit den neuen Ressourcen aktualisiert werden. Während eines Upgrades in der neuen Version werden nur neue Dateien zum Speicherort der neuen Version hinzugefügt, und für unveränderte Dateien werden feste Links erstellt. Solche Ergebnisse reduzieren den Gesamtspeicher, indem die Datei nur an einem Datenträgerspeicherort angezeigt und dann in alle Ordner mit einem Dateispeicherorteintrag auf dem Datenträger projiziert wird.

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-Dateien 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 Sie das Paket mit dem Kernelmodustreiber für den Benutzer unter HKLM\Software\Microsoft\AppV\MAV.

  4. Führen Sie Integrationsaufgaben aus.

    1. Integrieren Sie Erweiterungspunkte (EP) aus den Manifest- und dynamischen Konfigurationsdateien.

    2. Dateibasierte EP-Daten werden unter Verwendung von Verbindungspunkten aus dem Paketspeicher im Ordner AppData gespeichert.

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

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

Wenn Sie versuchen, ein Aktuell verwendetes Paket zu aktualisieren, 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 Aufgaben, z. B. das Veröffentlichen eines Pakets für einen Benutzer Die ausstehende Aufgabe wird ausgeführt, nachdem sich der Benutzer abgemeldet und sich dann wieder anmeldet.
Global basierte Aufgaben, 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 HKEY_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 kann jederzeit ausgeführt werden, indem Sie die Schritte unter Hinzufügen eines App-V-Pakets 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. Sie können diese Aufgabe nicht ausführen, während die Anwendung verwendet wird.

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.
Das App-V-Paket wird verwendet, wenn der Administrator eine neuere Version des Pakets veröffentlicht. Der App-V-Client legt den Vorgang auf "ausstehend" fest. Dies bedeutet, dass er in die Warteschlange eingereiht wird 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 aufweist, die dauerhaft von Windows Explorer geladen werden, kann sich der Benutzer nicht anmelden. Benutzer müssen sich abmelden und dann 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: als Benutzer, der ein App-V-Paket für einen bestimmten Benutzer oder eine gruppe von Benutzern berechtigt, oder als global, wodurch das App-V-Paket für den gesamten Computer für alle Benutzer des Computers berechtigt wird. Sobald ein Paketupgrade erstellt wurde und das App-V-Paket nicht verwendet wird, sollten Sie die beiden Arten der Veröffentlichung in Betracht ziehen:

  • Bei der globalen Veröffentlichung wird die Anwendung 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.
  • Benutzerveröffentlichung ist, wenn die Anwendung für einen Benutzer veröffentlicht wird. 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 ConfigMgr Richtlinienaktualisierung und -auswertung, oder eine regelmäßige App-V-Veröffentlichung/Aktualisierung oder explizit über Windows 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 einfach durchzuführen, kann sich jedoch auf viele Positionen auf der Maschine auswirken. Die zuvor erwähnten Cow-Speicherorte (Copy On Write) werden entfernt, und Erweiterungspunkte werden deintegriert und dann wieder integriert. Überprüfen Sie vor der Reparatur, wo die COW-Datenplatzierungsspeicherorte in der Registrierung registriert sind. Zum Ausführen eines Reparaturvorgangs müssen Sie ihn lediglich über die App-V-Clientkonsole oder über das PowerShell-Cmdlet Repair-AppVClientPackage initiieren. Danach wird der Vorgang automatisch abgeschlossen.

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 computer- und benutzerbasierten Integrationserweiterungspunkten bereit.
  • UserConfig.xml ist eine Teilmenge der Deploymentconfig.xml-Datei, 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, finden einige spezifische Aktionen statt, wie in der folgenden Liste beschrieben:

  • 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. Durch diese Übertragung 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) stellen mehrere Erweiterungspunkte bereit, um die Anwendung in das lokale Betriebssystem zu integrieren. 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
  • -Shell-Erweiterungen
  • COM
  • Softwareclients
  • Anwendungsfunktionen
  • URL-Protokollhandler
  • AppPath
  • Virtuelle Anwendung

Tastenkombinationen

Die Verknüpfung 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, wie im folgenden Beispiel gezeigt:

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

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

Benutzer können Aufrufe von Dateitypen verwenden oder eine Datei mit einer registrierten Erweiterung (.docx) öffnen, um eine App-V-Anwendung zu starten, da der App-V-Client die dateitypzuordnungen des lokalen Betriebssystems während der Veröffentlichung verwaltet. Dateitypzuordnungen sind in den Manifest- und dynamischen Konfigurationsdateien vorhanden, wie im folgenden Beispiel gezeigt:

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

Hinweis

Für dieses Beispiel gilt Folgendes:

  • <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. Die folgende Beispielkonfiguration erfüllt die übereinstimmende Anforderung:
    • 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. Sie 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 gezogen und abgelegt wurde, z. B. eine Datei.
Datenobjekthandler Steuert die Aktion, nachdem eine Datei in die Zwischenablage kopiert oder über ein Ablageziel gezogen und abgelegt wurde. Es kann weitere 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 weitere 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 Aus, Isoliert und Integriert umfasst. Der integrierte Modus ist entweder für den Typ "Out-of-Process" oder "In-process" konfiguriert. Die Konfiguration von COM-Modi und -Typen erfolgt mit dynamischen Konfigurationsdateien (deploymentconfig.xml oder userconfig.xml).

Ausführliche Informationen zur App-V-Integration finden Sie unter Microsoft Application Virtualization 5.0-Integration.

Softwareclients und Anwendungsfunktionen

App-V unterstützt bestimmte Softwareclients und Anwendungsfunktionen-Erweiterungspunkte, um virtualisierte Anwendungen beim Softwareclient des Betriebssystems zu registrieren. Diese spezifische Unterstützung bedeutet, dass Benutzer Standardprogramme für Vorgänge wie E-Mail, Chat und die Verwendung des Media Players auswählen können. Dieser Vorgang wird in der Systemsteuerung mit Programmzugriff festlegen und Computerstandardeinstellungen ausgeführt und wird während der Sequenzierung in den Manifest- oder dynamischen Konfigurationsdateien konfiguriert. Anwendungsfunktionen werden nur unterstützt, wenn die App-V-Anwendungen global veröffentlicht werden.

Das folgende Beispiel veranschaulicht eine 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

Für dieses Beispiel gilt Folgendes:

  • <ClientConfiguration EmailEnabled="true" />ist die Allgemeine Softwareclient-Einstellung 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

Virtuelle Anwendungen verwenden nicht immer speziell den Aufruf des Dateityps. Beispielsweise wählt der Benutzer in einer Anwendung, die das Einbetten eines mailto:-Links in ein Dokument oder eine Webseite unterstützt, den Link aus, der auf den registrierten E-Mail-Client zugreifen möchte. 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. Administratoren können den Zugriff auf App-V-Anwendungen über Betriebssystembefehle oder Skripts bereitstellen, ohne je nach Betriebssystem den spezifischen Pfad zur ausführbaren Datei über den Ausführungs- oder Startbildschirm aufzurufen. Daher wird vermieden, dass die Umgebungsvariable des Systempfads auf allen Systemen geändert wird, wie dies während der Veröffentlichung der Fall ist.

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 App-Pfade – Eine virtuelle Anwendungserweiterung in App-V 5.0.

Virtuelle Anwendung

Dieses Subsystem stellt eine Liste der Anwendungen bereit, die während der Sequenzierung erfasst werden und 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, können Sie alle Zu einer Anwendung gehörenden Erweiterungspunkte deaktivieren, um nur die Integration von Erweiterungspunkten für die andere Anwendung zuzulassen.

Regeln für Erweiterungspunkte

Die zuvor 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 auf dem Desktop erstellte und global veröffentlichte Verknüpfung 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 einzelnen Computer oder Benutzer ist einfach. Da Organisationen App-V-Anwendungen jedoch über Geschäftsbereiche und geografische und politische Grenzen hinweg bereitstellen, wird es unmöglich, alle Anwendungen mit den gleichen Einstellungen zu sequenzieren. App-V wurde entwickelt, um dieses Problem zu beheben, indem bestimmte Einstellungen und Konfigurationen während der Sequenzierung in der Manifestdatei erfasst und gleichzeitig änderungen mit dynamischen Konfigurationsdateien unterstützt werden.

Mit der dynamischen App-V-Konfiguration können Sie eine Paketrichtlinie auf Computer- oder Benutzerebene angeben. Sequenzierer können dynamische Konfigurationsdateien verwenden, um die Konfiguration eines Pakets nach der Sequenzierung zu ändern, um die Anforderungen einzelner Benutzer- oder Computergruppen zu erfüllen. In einigen Fällen kann es erforderlich sein, die Anwendung zu ändern, um die richtige Funktionalität in der App-V-Umgebung bereitzustellen. Beispielsweise müssen Sie die Dateien _**config.xml ändern, damit bestimmte Aktionen während der Ausführung der Anwendung zu einem bestimmten Zeitpunkt 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 in der App-V-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 so geändert werden, dass eine Anwendung auf verschiedenen Desktops oder Benutzern mit unterschiedlichen Erweiterungspunkten veröffentlicht werden kann. 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.

Beispiele 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, nicht eine vollständige Beschreibung der spezifischen Kategorien, die in jeder Datei verfügbar sind. Weitere Informationen finden Sie im App-V-Sequenzierungshandbuch.

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 Assemblys während der Sequenzierung und Bereitstellung auf dem Client während der Veröffentlichung virtueller Anwendungen. App-V unterstützt auch das Erfassen von parallelen Assemblys während der Sequenzierung für Assemblys, die nicht auf dem Sequenziercomputer vorhanden sind. Bei Assemblys, die aus Visual C++ (Version 8 und höher) 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 für parallele Assemblys hebt die Einschränkungen früherer Versionen von App-V auf, bei denen der App-V Sequencer keine Assemblys erfasst hat, die bereits auf der Sequenzarbeitsstation vorhanden waren, und die Assemblys wurden privatisiert, wodurch sie auf eine Bitversion pro Paket beschränkt wurden. Dieses Verhalten führte dazu, dass App-V-Anwendungen auf Clients bereitgestellt wurden, die die erforderlichen parallelen Assemblys fehlten, was zu Fehlern beim Starten der Anwendung führte. Dieser Fehler hat den Paketerstellungsprozess gezwungen, zu dokumentieren und sicherzustellen, dass alle für Pakete erforderlichen Assemblys lokal auf dem Clientbetriebssystem des Benutzers installiert wurden. Diese Aufgabe war aufgrund der Anzahl der Assemblys und der fehlenden Anwendungsdokumentation für die erforderlichen Abhängigkeiten 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 parallelen Assembly während der Sequenzierung, unabhängig davon, ob die Assembly bereits auf der Sequenzierungsarbeitsstation installiert wurde.
  • Der App-V-Client installiert die erforderlichen parallelen Assemblys automatisch zum Zeitpunkt der Veröffentlichung auf dem Clientcomputer, wenn sie noch nicht installiert sind.
  • Der Sequencer meldet die VC-Laufzeitabhängigkeit im Sequencer-Berichterstellungsmechanismus.
  • Der Sequencer ermöglicht es, keine bereits auf dem Sequencer installierten Assemblys zu packen, was Szenarien unterstützt, in denen die Assemblys zuvor auf den Zielcomputern installiert wurden.

Automatische Veröffentlichung von parallelen Assemblys

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

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.

Es gibt drei spezifische Kategorien von Ereignissen, die aufgezeichnet werden:

  • Admin protokolliert Ereignisse für Konfigurationen, die auf den App-V-Client angewendet werden, und enthält auch die primären Warnungen und Fehler.
  • Der Betrieb protokolliert die allgemeine App-V-Ausführung und Nutzung einzelner Komponenten und erstellt ein Überwachungsprotokoll der abgeschlossenen App-V-Vorgänge des App-V-Clients.
  • Virtual Application protokolliert den Start virtueller Anwendungen und die Verwendung von Virtualisierungssubsystemen.