Anwendungsveröffentlichung und Clientinteraktionsreferenz
Dieser Artikel enthält technische Informationen zu gängigen App-V-Clientvorgängen und deren Integration in das lokale Betriebssystem.
Weitere Referenzinformationen finden Sie auf der Downloadseite der Dokumentationsressourcen für Microsoft Application Virtualization (App-V).
Vom Sequencer erstellte App-V-Paketdateien
Der Sequencer erstellt App-V-Pakete und erzeugt eine virtualisierte Anwendung. Der Sequenzierungsprozess erstellt die folgenden Dateien:
Datei | Beschreibung |
---|---|
.appv |
: Die primäre Paketdatei, die die erfassten Ressourcen und Zustandsinformationen aus dem Sequenzierungsprozess enthält. – Architektur der Paketdatei, der Veröffentlichung von Informationen und der Registrierung in tokenisierter Form, die bei der Übermittlung auf einen Computer und einen bestimmten Benutzer erneut angewendet werden kann. |
.MSI |
Ausführbarer Bereitstellungswrapper, mit dem Sie Dateien manuell oder mithilfe einer Nicht-Microsoft-Bereitstellungsplattform bereitstellen .appv 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 |
Wahlfrei: Package Accelerator-Datei, die verwendet wird, um ein zuvor sequenziertes virtuelles Anwendungspaket automatisch neu zu erstellen. |
.appvt |
Wahlfrei: Sequencer-Vorlagendatei, die verwendet wird, um häufig wiederverwendete Sequencer-Einstellungen beizubehalten. |
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.
Erstellen Sie zum Anzeigen des appv
Dateiinhalts 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 |
---|---|---|
Root |
Dateiordner | Verzeichnis, das das Dateisystem für die virtualisierte Anwendung enthält, die während der Sequenzierung erfasst wird. |
[Content_Types].xml |
XML-Datei | Liste der wichtigsten Inhaltstypen in der appv Datei (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 Dateien, die während der Sequenzierung erfasst werden, einschließlich Attribute (z. B. Verzeichnisse, Dateien, nicht transparente Verzeichnisse, leere Verzeichnisse sowie lange und kurze Namen). |
PackageHistory.xml |
XML-Datei | Informationen zum Sequenzcomputer (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 sind. |
Datenspeicherorte des App-V-Clients
Der App-V-Client führt Aufgaben aus, um sicherzustellen, dass virtuelle Anwendungen ordnungsgemäß ausgeführt werden und wie lokal installierte Anwendungen funktionieren. Das Öffnen und Ausführen virtueller Anwendungen erfordert eine Zuordnung aus dem virtuellen Dateisystem und der Registrierung, um sicherzustellen, dass die Anwendung über die erforderlichen Komponenten einer herkömmlichen Anwendung verfügt, die von Benutzern erwartet wird. In diesem Abschnitt werden die Ressourcen beschrieben, die zum Ausführen virtueller Anwendungen erforderlich sind, und der Speicherort, an dem App-V die Ressourcen speichert.
Name | Pfad | Beschreibung |
---|---|---|
Paketspeicher | %ProgramData%\App-V | Standardspeicherort für schreibgeschützte Paketdateien |
Computerkatalog | %ProgramData%\Microsoft\AppV\Client\Catalog | Enthält Konfigurationsdokumente pro Computer |
Benutzerkatalog | %AppData%\Microsoft\AppV\Client\Catalog | Enthält Konfigurationsdokumente pro Benutzer |
Verknüpfungssicherungen | %AppData%\Microsoft\AppV\Client\Integration\ShortCutBackups | Speichert vorherige Integrationspunkte, die die Wiederherstellung beim Aufheben der Veröffentlichung des Pakets ermöglichen |
Copy on Write (COW) Roaming | %AppData%\Microsoft\AppV\Client\VFS | Beschreibbarer Roamingspeicherort für Paketänderungen |
Copy on Write (COW) Local | %LocalAppData%\Microsoft\AppV\Client\VFS | Beschreibbarer Nicht-Roamingspeicherort für Paketänderungen |
Computerregistrierung | HKLM\Software\Microsoft\AppV | Enthält Paketstatusinformationen, einschließlich VReg für Computer oder global veröffentlichte Pakete (Computerstruktur) |
Benutzerregistrierung | HKCU\Software\Microsoft\AppV | Enthält Informationen zum Status des Benutzerpakets, einschließlich VReg. |
Benutzerregistrierungsklassen | HKCU\Software\Classes\AppV | Enthält zusätzliche Informationen zum Status des Benutzerpakets. |
Weitere Informationen zur Tabelle finden Sie in den folgenden Abschnitten.
Paketspeicher
Der App-V-Client verwaltet die im Paketspeicher eingebundenen Anwendungsressourcen. Dieser Standardspeicherort ist %ProgramData%\App-V
, aber Sie können ihn während oder nach dem Setup konfigurieren, indem Sie den Set-AppVClientConfiguration
PowerShell-Befehl verwenden, der die lokale Registrierung (PackageInstallationRoot
Wert unter dem HKLM\Software\Microsoft\AppV\Client\Streaming
Schlüssel) ändert. Der Paketspeicher muss sich unter einem lokalen Pfad auf dem Clientbetriebssystem befinden. Die einzelnen Pakete werden im Paketspeicher in Unterverzeichnissen gespeichert, die für die Paket-GUID und Version-GUID benannt sind.
Beispiel für einen Pfad zu einer bestimmten Anwendung:
C:\ProgramData\App-V\PackGUID\VersionGUID
Informationen zum Ändern des Standardspeicherorts des Paketspeichers während des Setups finden Sie unter Bereitstellen des App-V-Clients.
Freigegebener Inhaltsspeicher
Wenn der App-V-Client im Modus "Freigegebener Inhaltsspeicher" konfiguriert ist, werden keine Daten auf den Datenträger geschrieben, wenn ein Streamfehler auftritt. Dies bedeutet, dass die Pakete nur minimalen lokalen Speicherplatz (Veröffentlichungsdaten) benötigen. Die Verwendung von weniger Speicherplatz ist in VDI-Umgebungen, in denen der lokale Speicher begrenzt werden kann, sehr wünschenswert, und das Streaming der Anwendungen von einem Hochleistungsnetzwerkstandort (z. B. einem SAN) ist vorzuziehen.
Hinweis
Der Computer und der Paketspeicher müssen sich auf einem lokalen Laufwerk befinden, auch wenn Sie freigegebene Inhaltsspeicherkonfigurationen für den App-V-Client verwenden.
Paketkataloge
Der App-V-Client verwaltet die folgenden zwei dateibasierten Speicherorte:
Kataloge (Benutzer und Computer).
Registrierungsspeicherorte : Hängt davon ab, wie das Paket für die Veröffentlichung vorgesehen ist. Es gibt einen Katalog (Datenspeicher) für den Computer und einen Katalog für jeden einzelnen Benutzer. Der Computerkatalog speichert globale Informationen, die für alle Benutzer oder einen beliebigen Benutzer gelten, und der Benutzerkatalog speichert Informationen, die für einen bestimmten Benutzer gelten. Der Katalog ist eine Sammlung von dynamischen Konfigurationen und Manifestdateien. es gibt diskrete Daten für Datei und Registrierung pro Paketversion.
Computerkatalog
Beschreibung des Computerkatalogs
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. Beispielsweise befindet sich das Paketverzeichnis an einem freigegebenen Datenträgerspeicherort.
Wenn einem Benutzer auf dem Computer ein globales oder nicht globales Paket zur Verfügung steht, wird das Manifest im Computerkatalog gespeichert. Wenn ein Paket global veröffentlicht wird, wird eine dynamische Konfigurationsdatei im Computerkatalog gespeichert. Die Bestimmung, ob ein Paket global ist, hängt davon ab, ob im Computerkatalog eine UserDeploymentConfiguration-Richtliniendatei vorhanden ist.
Standardspeicherort des Computerkatalogs
%programdata%\Microsoft\AppV\Client\Catalog
Dieser Speicherort ist nicht identisch mit dem Speicherort des Paketspeichers. Der Paketspeicher ist die goldene oder unberührte Kopie der Paketdateien.
Dateien im Computerkatalog
- Manifest.xml
- DeploymentConfiguration.xml
- UserManifest.xml (global veröffentlichtes Paket)
- UserDeploymentConfiguration.xml (global veröffentlichtes Paket)
Ein anderer Speicherort des Computerkatalogs, der verwendet wird, wenn das Paket Teil einer Verbindungsgruppe ist
Der folgende Speicherort ist zusätzlich zum spezifischen primären Paketspeicherort:
%programdata%\Microsoft\AppV\Client\Catalog\PackageGroups\ConGroupGUID\ConGroupVerGUID
Andere Dateien im Computerkatalog, wenn das Paket Teil einer Verbindungsgruppe ist
- PackageGroupDescriptor.xml
- UserPackageGroupDescriptor.xml (global veröffentlichte Verbindungsgruppe)
Benutzerkatalog
Beschreibung des Benutzerkatalogs
Wird während des Veröffentlichungsprozesses erstellt. Enthält Informationen, die zum Veröffentlichen des Pakets verwendet werden und auch beim Start verwendet werden, um sicherzustellen, dass ein Paket für einen bestimmten Benutzer bereitgestellt wird. Wird an einem Roamingstandort erstellt und enthält benutzerspezifische Veröffentlichungsinformationen.
Wenn ein Paket für einen Benutzer veröffentlicht wird, wird die Richtliniendatei im Benutzerkatalog gespeichert. Gleichzeitig wird auch eine Kopie des Manifests im Benutzerkatalog gespeichert. Wenn eine Paketberechtigung für einen Benutzer entfernt wird, werden die relevanten Paketdateien aus dem Benutzerkatalog entfernt. Im Benutzerkatalog kann ein Administrator das Vorhandensein einer dynamischen Konfigurationsdatei anzeigen, die angibt, dass das Paket für diesen Benutzer berechtigt ist.
Für Roamingbenutzer muss sich der Benutzerkatalog an einem Roaming- oder freigegebenen Speicherort befinden, um das ältere App-V-Verhalten der Standardmäßigen Zielbenutzer beizubehalten. Berechtigung und Richtlinie sind an einen Benutzer und nicht an einen Computer gebunden. Daher sollten sie nach der Bereitstellung mit dem Benutzer roamingn.
Standardspeicherort des Benutzerkatalogs
appdata\roaming\Microsoft\AppV\Client\Catalog\Packages\PkgGUID\VerGUID
Dateien im Benutzerkatalog
- UserManifest.xml
- DynamicConfiguration.xml oder UserDeploymentConfiguration.xml
Ein anderer Benutzerkatalogspeicherort, der verwendet wird, wenn das Paket Teil einer Verbindungsgruppe ist
Der folgende Speicherort ist zusätzlich zum spezifischen primären Paketspeicherort:
appdata\roaming\Microsoft\AppV\Client\Catalog\PackageGroups\PkgGroupGUID\PkgGroupVerGUID
Eine weitere Datei im Computerkatalog, wenn das Paket Teil einer Verbindungsgruppe ist
UserPackageGroupDescriptor.xml
Verknüpfungssicherungen
Während des Veröffentlichungsprozesses sichert der App-V-Client alle Verknüpfungen und Integrationspunkte auf %AppData%\Microsoft\AppV\Client\Integration\ShortCutBackups.
Diese Sicherung ermöglicht die Wiederherstellung dieser Integrationspunkte auf die vorherigen Versionen, wenn die Veröffentlichung des Pakets aufgehoben wird.
Kopieren bei Schreibdateien
Der Paketspeicher enthält eine unberührte Kopie der Paketdateien, die vom Veröffentlichungsserver gestreamt wurden. Während des normalen Betriebs einer App-V-Anwendung erfordert der Benutzer oder Dienst möglicherweise Änderungen an den Dateien. Diese Änderungen werden nicht im Paketspeicher vorgenommen, um die Fähigkeit zu erhalten, die Anwendung zu reparieren, wodurch diese Änderungen entfernt werden. Diese Speicherorte werden als "Copy On Write" (COW) bezeichnet, was sowohl Roaming- als auch nichtroaming-Standorte unterstützt. Der Speicherort der Änderungen hängt davon ab, wohin die Anwendung Änderungen nativ schreibt.
COW-Roaming
Der oben beschriebene COW-Roamingspeicherort speichert Änderungen an Dateien und Verzeichnissen, die auf den typischen %AppData%-Speicherort oder \Users\{username}\AppData\Roaming-Speicherort ausgerichtet sind. Diese Verzeichnisse und Dateien werden dann basierend auf den Betriebssystemeinstellungen übertragen.
COW lokal
Der lokale Speicherort von COW ähnelt dem Roamingspeicherort, aber die Verzeichnisse und Dateien werden nicht auf andere Computer übertragen, auch wenn die Roamingunterstützung konfiguriert ist. 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 typische Windows-Speicherorte. Beispiel: allgemeine AppData und allgemeine AppDataS. Das S gibt den eingeschränkten Speicherort an, wenn der virtuelle Dienst die Änderung als einen anderen Benutzer mit erhöhten Rechten als die angemeldeten Benutzer anfordert. Der Nicht-S-Standort speichert benutzerbasierte Änderungen.
Paketregistrierung
Bevor eine Anwendung auf die Paketregistrierungsdaten zugreifen kann, muss der App-V-Client die Paketregistrierungsdaten den Anwendungen zur Verfügung stellen. 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 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 HKCU\Software\Microsoft\AppV\Client\Packages\PackageGuid\Registry\User
bereitgestellt. 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-Funktionalität (Copy-On-Write), das heißt, dass alle Änderungen an der Registrierung, die aus dem Kontext eines virtuellen Prozesses vorgenommen werden, an einem separaten COW-Speicherort vorgenommen werden. Dies bedeutet, dass der VREG bis zu drei separate Registrierungsspeicherorte in einer einzigen Ansicht kombinieren muss, basierend auf den aufgefüllten Speicherorten in der Registrierung COW -> Paket -> nativ. Wenn eine Anforderung für Registrierungsdaten gestellt wird, wird sie in der richtigen Reihenfolge gefunden, bis die angeforderten Daten gefunden werden. Wenn ein Wert an einem COW-Standort gespeichert ist, wird er nicht zu anderen Speicherorten fortgesetzt. Wenn keine Daten am COW-Speicherort vorhanden sind, wird 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
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
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; Erhöhte und nicht relevante Prozesse. Prozesse mit erhöhten Rechten schreiben HKLM-Änderungen immer in die sichere COW unter HKLM. Nicht relevante Prozesse schreiben HKLM-Änderungen immer in die unsichere 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. Keine relevanten Lesevorgänge aus beiden, wobei zuerst die änderungen bevorzugt werden, die in der unsicheren COW vorgenommen wurden.
Passthrough-Schlüssel
Passthrough-Schlüssel ermöglichen es einem Administrator, bestimmte Schlüssel so zu konfigurieren, dass sie nur aus der nativen Registrierung gelesen werden können, wobei die Speicherorte Paket und COW umgangen werden. Passthrough-Speicherorte sind global für den Computer (nicht paketspezifisch) und können durch Hinzufügen des Pfads zum Schlüssel konfiguriert werden, der als Passthrough für den REG_MULTI_SZ Wert namens PassThroughPaths des SchlüsselsHKLM\Software\Microsoft\AppV\Subsystem\VirtualRegistry
behandelt werden sollte. Alle Schlüssel und seine untergeordneten Elemente, die unter diesem Wert mit mehreren Zeichenfolgen 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 nichtvirtuelle Anwendungen für einen erfolgreichen Betrieb oder eine erfolgreiche Integration erforderlich sind. Der Richtlinienschlüssel stellt sicher, dass vom Administrator festgelegte gruppenrichtlinienbasierte Einstellungen und nicht pro Paket verwendet werden. Der AppModel-Schlüssel ist für die Integration in moderne Windows-Benutzeroberflächenanwendungen erforderlich. Es wird empfohlen, dass Verwaltungen keine der Standardmäßigen Passthrough-Schlüssel ändern, aber in einigen Fällen kann es aufgrund des Anwendungsverhaltens erforderlich sein, weitere Pass-Through-Schlüssel hinzuzufügen.
App-V-Paketspeicherverhalten
App-V 5 verwaltet den Paketspeicher, d. h. den Speicherort, an dem die erweiterten Ressourcendateien aus der appv
Datei gespeichert werden. Standardmäßig wird dieser Speicherort unter %ProgramData%\App-V gespeichert und ist hinsichtlich der Speicherfunktionen nur durch freien Speicherplatz begrenzt. Der Paketspeicher ist nach den GUIDs für das Paket und die Version organisiert, wie im vorherigen Abschnitt erwähnt.
Hinzufügen von Paketen
App-V-Pakete werden beim Hinzufügen des Computers mit dem App-V-Client bereitgestellt. Der App-V-Client bietet bedarfsgesteuertes Staging. Während der Veröffentlichung oder eines manuellen Add-AppVClientPackage wird die Datenstruktur im Paketspeicher (c:\programdata\App-V\{PkgGUID}\{VerGUID}) erstellt. Die im im StreamMap.xml definierten Veröffentlichungsblock identifizierten Paketdateien werden dem System und den Ordnern der obersten Ebene und untergeordneten Dateien hinzugefügt, um sicherzustellen, dass beim Start geeignete Anwendungsressourcen vorhanden sind.
Einbinden von Paketen
Pakete können explizit mithilfe von PowerShell Mount-AppVClientPackage
oder mithilfe der App-V-Clientbenutzeroberfläche geladen werden, um ein Paket herunterzuladen. Dieser Vorgang lädt das gesamte Paket vollständig in den Paketspeicher.
Streamingpakete
Der App-V-Client kann so konfiguriert werden, dass das Standardverhalten des Streamings geändert wird. Alle Streamingrichtlinien werden unter dem folgenden Registrierungsschlüssel gespeichert: HKEY_LOCAL_MAcHINE\Software\Microsoft\AppV\Client\Streaming
. Richtlinien werden mithilfe des PowerShell-Cmdlets Set-AppvClientConfiguration
festgelegt. Die folgenden Richtlinien gelten für Streaming:
Richtlinie | Beschreibung |
---|---|
AllowHighCostLaunch | Unter Windows 8 und höher ermöglicht es das Streaming über 3G- und Mobilfunknetze. |
AutoLoad | Gibt die Einstellung "Hintergrundladevorgang" an: 0 – Deaktiviert 1 – Nur zuvor verwendete Pakete 2 – Alle Pakete |
PackageInstallationRoot | Der Stammordner für den Paketspeicher auf dem lokalen Computer. |
PackageSourceRoot | Die Stammüberschreibung, von der Pakete gestreamt werden sollen. |
SharedContentStoreMode | Ermöglicht die Verwendung des freigegebenen Inhaltsspeichers für VDI-Szenarien. |
Diese Einstellungen wirken sich auf das Verhalten des Streamings von App-V-Paketressourcen an den Client aus. Standardmäßig lädt App-V nur die Ressourcen herunter, die nach dem Herunterladen der anfänglichen Veröffentlichung und der primären Featureblöcke erforderlich sind. Es gibt drei spezifische Verhaltensweisen für Streamingpakete, die erläutert werden müssen:
Hintergrundstreaming
Optimiertes Streaming
Streamfehler
Hintergrundstreaming
Das PowerShell-Cmdlet Get-AppvClientConfiguration
kann verwendet werden, um den aktuellen Modus für Das Hintergrundstreaming mit der Einstellung AutoLoad zu bestimmen und mit dem Cmdlet Set-AppvClientConfiguration oder aus der Registrierung (SCHLÜSSEL HKLM\SOFTWARE\Microsoft\AppV\ClientStreaming) zu ändern. Das Hintergrundstreaming ist eine Standardeinstellung, bei der die Einstellung Autoload so festgelegt ist, dass zuvor verwendete Pakete heruntergeladen werden. Das auf der Standardeinstellung (Wert=1) basierende Verhalten lädt App-V-Datenblöcke im Hintergrund herunter, nachdem die Anwendung gestartet wurde. Diese Einstellung kann insgesamt deaktiviert (Wert=0) oder für alle Pakete (Wert=2) aktiviert werden, unabhängig davon, ob sie gestartet werden.
Optimiertes Streaming
App-V-Pakete können während der Sequenzierung mit einem primären Featureblock konfiguriert werden. Diese Einstellung ermöglicht es dem Sequenziertechniker, Startdateien für eine bestimmte Anwendung oder Anwendungen zu überwachen und die Datenblöcke im App-V-Paket für das Streaming beim ersten Start einer anwendung im Paket zu markieren.
Streamfehler
Nach dem anfänglichen Stream 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. Dadurch kann ein Benutzer nur einen kleinen Teil des Pakets herunterladen, in der Regel genug, um das Paket zu starten und normale Aufgaben auszuführen. Alle anderen Blöcke werden heruntergeladen, wenn ein Benutzer einen Vorgang initiiert, der Daten erfordert, die sich derzeit nicht im Paketspeicher befinden.
Paketupgrades
App-V-Pakete müssen während des gesamten Lebenszyklus der Anwendung aktualisiert werden. App-V-Paketupgrades ähneln dem Paketveröffentlichungsvorgang, da jede Version an einem eigenen PackageRoot-Speicherort erstellt wird: %ProgramData%\App-V\{PkgGUID}\{newVerGUID}
. Der Upgradevorgang wird optimiert, indem feste Links zu identischen und gestreamten Dateien aus anderen Versionen desselben Pakets erstellt werden.
Paketentfernung
Das Verhalten des App-V-Clients beim Entfernen von Paketen hängt von der methode ab, die zum Entfernen verwendet wird. Bei Verwendung einer vollständigen App-V-Infrastruktur zum Aufheben der Veröffentlichung der Anwendung werden die Benutzerkatalogdateien (Computerkatalog für global veröffentlichte Anwendungen) entfernt, der Paketspeicherort und die COW-Speicherorte werden jedoch beibehalten. Wenn das PowerShell-Cmdlet Remove-AppVClientPackge
zum Entfernen eines App-V-Pakets verwendet wird, wird der Speicherort des Paketspeichers bereinigt. Beachten Sie, dass beim Aufheben der Veröffentlichung eines App-V-Pakets auf dem Verwaltungsserver kein Entfernungsvorgang ausgeführt wird. Bei keinem Vorgang werden die Paketspeicher-Paketdateien entfernt.
Roamingregistrierung und -daten
App-V 5 kann eine nahezu native Umgebung beim Roaming bereitstellen, je nachdem, wie die Anwendung geschrieben wird. App-V roamingt standardmäßig AppData, die am Roamingspeicherort gespeichert sind, basierend auf der Roamingkonfiguration des Betriebssystems. Andere Speicherorte für die Speicherung von dateibasierten Daten werden nicht von Computer zu Computer übertragen, da sie sich an Speicherorten befinden, die nicht übertragen werden.
Roaminganforderungen und Datenspeicherung für Benutzerkataloge
App-V speichert Daten, die den Status des Benutzerkatalogs darstellen, in form von:
Dateien unter %appdata%\Microsoft\AppV\Client\Catalog
Registrierungseinstellungen unter
HKEY_CURRENT_USER\Software\Microsoft\AppV\Client\Packages
Zusammen stellen diese Dateien und Registrierungseinstellungen den Katalog des Benutzers dar, sodass entweder beide geroamt werden müssen, oder keines von beiden muss für einen bestimmten Benutzer geroamt werden. App-V unterstützt kein %AppData%-Roaming, aber kein Roaming des Benutzerprofils (Registrierung) oder umgekehrt.
Hinweis
Das Cmdlet Repair-AppvClientPackage repariert nicht den Veröffentlichungsstatus von Paketen, bei denen der App-V-Zustand des Benutzers unter HKEY_CURRENT_USER
fehlt oder nicht mit den Daten in %appdata% übereinstimmen.
Registrierungsbasierte Daten
Das Roaming der App-V-Registrierung gliedert sich in zwei Szenarien, wie in der folgenden Tabelle gezeigt.
Szenario | Beschreibung |
---|---|
Anwendungen, die als Standardbenutzer ausgeführt werden | Wenn ein Standardbenutzer eine App-V-Anwendung startet, werden sowohl HKLM als auch HKCU für App-V-Anwendungen in der HKCU-Struktur auf dem Computer gespeichert. Dies stellt zwei unterschiedliche Pfade dar: - HKLM: HKCU\SOFTWARE\Classes\AppV\Client\Packages{PkgGUID}\REGISTRY\MACHINE\SOFTWARE - HKCU: HKCU\SOFTWARE\Microsoft\AppV\Client\Packages{PkgGUID}\REGISTRY\USER{UserSID}\SOFTWARE Die Standorte werden basierend auf den Einstellungen des Betriebssystems für roaming aktiviert. |
Anwendungen, die mit Erhöhung ausgeführt werden | Wenn eine Anwendung mit Erhöhung gestartet wird: – HKLM-Daten werden in der HKLM-Struktur auf dem lokalen Computer gespeichert. – HKCU-Daten werden am Speicherort der Benutzerregistrierung gespeichert. In diesem Szenario werden diese Einstellungen nicht mit normalen Roamingkonfigurationen des Betriebssystems übertragen, und die resultierenden Registrierungsschlüssel und -werte werden am folgenden Speicherort gespeichert: - HKLM\SOFTWARE\Microsoft\AppV\Client\Packages{PkgGUID}{UserSID}\REGISTRY\MACHINE\SOFTWARE - HKCU\SOFTWARE\Microsoft\AppV\Client\Packages{PkgGUID}\Registry\User{UserSID}\SOFTWARE |
App-V und Ordnerumleitung
App-V 5.1 unterstützt die Ordnerumleitung des roaminggespeicherten AppData-Ordners (%AppData%). Wenn die virtuelle Umgebung gestartet wird, wird der Roamingstatus AppData aus dem Roamingverzeichnis AppData des Benutzers in den lokalen Cache kopiert. Umgekehrt wird beim Herunterfahren der virtuellen Umgebung der lokale Cache, der der Roaming-AppData eines bestimmten Benutzers zugeordnet ist, an den tatsächlichen Speicherort des Roaming-AppData-Verzeichnisses dieses Benutzers übertragen.
Ein typisches Paket verfügt über mehrere Speicherorte, die im Sicherungsspeicher des Benutzers für Einstellungen in AppData\Local und AppData\Roaming zugeordnet sind. Diese Speicherorte sind die Speicherorte zum Kopieren bei Schreibvorgängen, die pro Benutzer im Profil des Benutzers gespeichert werden und zum Speichern von Änderungen an den VFS-Paketverzeichnissen und zum Schutz des VfS-Standardpakets verwendet werden.
Die folgende Tabelle zeigt lokale und Roamingstandorte, wenn die Ordnerumleitung nicht implementiert wurde.
VFS-Verzeichnis im Paket | Zugeordneter Speicherort des Sicherungsspeichers |
---|---|
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 |
In der folgenden Tabelle sind lokale und Roamingspeicherorte aufgeführt, wenn die Ordnerumleitung für %AppData% implementiert und der Speicherort umgeleitet wird (in der Regel an einen Netzwerkspeicherort).
VFS-Verzeichnis im Paket | Zugeordneter Speicherort des Sicherungsspeichers |
---|---|
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 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 dem lokalen 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 wieder in das Netzwerk kopiert, wodurch das Roaming zu anderen Computern ermöglicht wird, wo der Prozess wiederholt wird. Die detaillierten Schritte der Prozesse sind:
Während der Veröffentlichung oder beim Starten der virtuellen Umgebung erkennt der App-V-Client den Speicherort des AppData-Verzeichnisses.
Wenn der Roaming-AppData-Pfad lokal ist oder ein AppData\Roaming-Speicherort zugeordnet ist, geschieht nichts.
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 nichtlokalen %AppData%-Instanz, die vom VFS-Treiber des App-V-Clients nicht unterstützt wird. Die an diesem neuen Speicherort gespeicherten Daten werden jedoch nicht mit Ordnerumleitung übertragen. Alle Änderungen während der Ausführung der Anwendung erfolgen am lokalen AppData-Speicherort und müssen an den umgeleiteten Speicherort kopiert werden. Die detaillierten Schritte dieses Prozesses sind:
Die App-V-Anwendung wird heruntergefahren, wodurch die virtuelle Umgebung heruntergefahren wird.
Der lokale Cache des Roamingspeicherorts von AppData wird komprimiert und in einer ZIP-Datei gespeichert.
Ein Zeitstempel am Ende des ZIP-Paketerstellungsprozesses wird verwendet, um die Datei zu benennen.
Der Zeitstempel wird in der Registrierung aufgezeichnet: HKEY_CURRENT_USER\Software\Microsoft\AppV\Client\Packages\<GUID>\AppDataTime als letzten bekannten AppData-Zeitstempel.
Der Ordnerumleitungsprozess wird aufgerufen, um die ZIP-Datei auszuwerten und zu initiieren, die in das Roamingverzeichnis AppData hochgeladen wurde.
Der Zeitstempel wird verwendet, um ein "Last Writer wins"-Szenario 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. Die Ordnerumleitung macht die Daten von allen anderen Clients verfügbar, die von der unterstützenden Richtlinie abgedeckt werden, und startet den Prozess zum Speichern der AppData\Roaming-Daten am lokalen AppData-Speicherort auf dem Client. Die detaillierten Prozesse sind:
Der Benutzer startet die virtuelle Umgebung, indem er eine Anwendung startet.
Die virtuelle Umgebung der Anwendung sucht nach der letzten ZIP-Datei mit Zeitstempel, falls vorhanden.
Die Registrierung wird auf den letzten bekannten hochgeladenen Zeitstempel überprüft, falls vorhanden.
Die neueste ZIP-Datei wird heruntergeladen, es sei denn, der Zeitstempel des lokalen letzten bekannten Uploads ist größer oder gleich dem Zeitstempel aus der ZIP-Datei.
Wenn der lokale Zeitstempel des letzten bekannten Uploads vor dem der letzten ZIP-Datei am Roamingspeicherort "AppData" liegt, wird die ZIP-Datei in das lokale temporäre Verzeichnis im Profil des Benutzers extrahiert.
Nachdem die ZIP-Datei erfolgreich extrahiert wurde, wird der lokale Cache des roaminggespeicherten AppData-Verzeichnisses umbenannt, und die neuen Daten werden verschoben.
Das umbenannte Verzeichnis wird gelöscht, und die Anwendung wird mit den zuletzt gespeicherten Roaming-AppData-Daten geöffnet.
Dadurch wird das erfolgreiche Roaming von Anwendungseinstellungen abgeschlossen, die in AppData\Roaming-Speicherorten vorhanden sind. Die einzige andere Bedingung, die behoben werden muss, ist ein Paketreparaturvorgang. Die Details des Prozesses sind:
Erkennen Sie während der Reparatur, ob der Pfad zum Roaming-AppData-Verzeichnis des Benutzers nicht lokal ist.
Zuordnen der nicht lokalen Roaming-AppData-Pfadziele werden die erwarteten Roaming- und lokalen AppData-Speicherorte neu erstellt.
Löschen Sie den in der Registrierung gespeicherten Zeitstempel, falls vorhanden.
Bei diesem Prozess werden sowohl die lokalen als auch die Netzwerkspeicherorte für AppData neu erstellt und der Registrierungsdatensatz des Zeitstempels entfernt.
Lebenszyklusverwaltung für App-V-Clientanwendungen
In einer vollständigen App-V-Infrastruktur werden Anwendungen nach der 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 erläutert, die während der allgemeinen Lebenszyklusvorgänge für App-V-Anwendungen (Hinzufügen, Veröffentlichen, Starten, Upgraden und Entfernen) auftreten, sowie die Datei- und Registrierungsspeicherorte, die aus Sicht des App-V-Clients geändert und geändert werden. Die App-V-Clientvorgänge werden als eine Reihe von PowerShell-Befehlen ausgeführt, die auf dem Computer initiiert werden, auf dem der App-V-Client ausgeführt wird.
Dieses Dokument konzentriert sich auf vollständige App-V-Infrastrukturlösungen. Spezifische Informationen zur App-V-Integration mit Configuration Manager 2012 finden Sie unter Unterstützte Konfigurationen von App-V 5.1.
Die App-V-Anwendungslebenszyklustasks werden bei der Benutzeranmeldung (Standard), 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 während der Einrichtung des Clients oder nach dem Setup mit PowerShell-Befehlen konfiguriert. Weitere Informationen finden Sie im Abschnitt Bereitstellen des Clients auf TechNet unter: Bereitstellen des App-V-Clients oder Verwenden der PowerShell:
get-command *appv*
Aktualisierung der Veröffentlichung
Der Veröffentlichungsaktualisierungsprozess 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 bei der Benutzeranmeldung, beim Computerstart und in geplanten Intervallen zu aktivieren. Die Konfiguration des Clients während des aufgelisteten Setups ist die bevorzugte Methode, wenn der Client an eine große Gruppe von Computern mit den richtigen Einstellungen verteilt wird. Diese Clienteinstellungen können mit den folgenden PowerShell-Cmdlets konfiguriert werden:
Add-AppVPublishingServer: Konfiguriert den Client mit einem App-V-Veröffentlichungsserver, der App-V-Pakete bereitstellt.
Set-AppVPublishingServer: Ändert die aktuellen Einstellungen für den App-V-Veröffentlichungsserver.
Set-AppVClientConfiguration: Ändert die aktuellen Einstellungen für den App-V-Client.
Sync-AppVPublishingServer: Initiiert manuell einen App-V-Veröffentlichungsaktualisierungsprozess. Dies wird auch in den geplanten Aufgaben verwendet, die während der Konfiguration des Veröffentlichungsservers erstellt wurden.
In den folgenden Abschnitten werden die Vorgänge in verschiedenen Phasen einer App-V-Veröffentlichungsaktualisierung ausführlich erläutert.
Hinzufügen eines App-V-Pakets
Das Hinzufügen eines App-V-Pakets zum Client ist der erste Schritt des Veröffentlichungsaktualisierungsprozesses. Das Endergebnis ist dasselbe wie das Add-AppVClientPackage
Cmdlet in PowerShell, außer während des Vorgangs zum Hinzufügen der Veröffentlichungsaktualisierung wird der konfigurierte Veröffentlichungsserver kontaktiert und übergibt eine allgemeine Liste von Anwendungen zurück an den Client, um ausführlichere Informationen und nicht einen einzelnen Vorgang zum Hinzufügen von Paketen abzurufen. Der Prozess wird fortgesetzt, indem der Client für Paket- oder Verbindungsgruppenerneuerungen oder -updates konfiguriert wird und dann auf die appv
Datei zugreift. Als Nächstes werden die Inhalte der appv
Datei erweitert und auf dem lokalen Betriebssystem an den entsprechenden Speicherorten platziert. Im Folgenden finden Sie einen detaillierten Workflow des Prozesses, vorausgesetzt, das Paket ist für Fault Streaming konfiguriert.
Hinzufügen eines App-V-Pakets
Manuelle Initiierung über PowerShell oder Tasksequenzinitiierung des Veröffentlichungsaktualisierungsprozesses.
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.
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.
Der Veröffentlichungs-Agent auf dem App-V-Client führt alle folgenden Aktionen serialisiert aus.
Bewerten Sie alle Verbindungsgruppen, die nicht veröffentlicht oder deaktiviert sind, da Paketversionsupdates, die Teil der Verbindungsgruppe sind, nicht verarbeitet werden können.
Konfigurieren Sie die Pakete, indem Sie einen Add- oder Update-Vorgang identifizieren.
Der App-V-Client verwendet die AppX-API von Windows und greift vom Veröffentlichungsserver auf die
appv
Datei zu.Die Paketdatei wird geöffnet, und die AppXManifest.xml und StreamMap.xml werden in den Paketspeicher heruntergeladen.
Vollständiges Streamen von Blockdaten, die im StreamMap.xml definiert sind. Speichert die Veröffentlichungsblockdaten im Paketspeicher\PkgGUID\VerGUID\Root.
Symbole: Ziele von Erweiterungspunkten.
Portable Executable Headers (PE-Header): Ziele von Erweiterungspunkten, die die Basisinformationen über die Imageanforderung auf einem Datenträger enthalten, auf den direkt zugegriffen wird, oder über Dateitypen.
Skripts: Laden Sie das Skriptverzeichnis zur Verwendung während des gesamten Veröffentlichungsprozesses herunter.
Füllen Sie den Paketspeicher auf:
Erstellen Sie Sparsedateien auf dem Datenträger, die das extrahierte Paket für alle aufgelisteten Verzeichnisse darstellen.
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.
Erstellen Sie die Computerkatalogeinträge. Erstellen Sie die Manifest.xml und DeploymentConfiguration.xml aus den Paketdateien (wenn kein DeploymentConfiguration.xml Datei im Paket erstellt wird, wird ein Platzhalter erstellt).
Erstellen des Speicherorts des Paketspeichers in der Registrierung HKLM\Software\Microsoft\AppV\Client\Packages\PkgGUID\Versions\VerGUID\Catalog
Erstellen Sie die Registry.dat-Datei aus dem Paketspeicher in %ProgramData%\Microsoft\AppV\Client\VReg\{VersionGUID}.dat
Registrieren des Pakets mit dem App-V-Kernelmodustreiber HKLM\Microsoft\Software\AppV\MAV
Aufrufen von Skripts aus der AppxManifest.xml- oder DeploymentConfig.xml-Datei für die Zeitsteuerung zum Hinzufügen von Paketen.
Konfigurieren Sie Verbindungsgruppen durch Hinzufügen und Aktivieren oder Deaktivieren.
Entfernen Sie Objekte, die nicht auf dem Ziel (Benutzer oder Computer) veröffentlicht wurden.
Hinweis
Diese Aktion löscht kein Paket. Es entfernt Integrationspunkte für das bestimmte Ziel (Benutzer oder Computer) und Benutzerkatalogdateien (Computerkatalogdateien für global veröffentlicht).
Rufen Sie die Hintergrundlastbereitstellung basierend auf der Clientkonfiguration auf.
Pakete, die bereits über Veröffentlichungsinformationen für den Computer oder Benutzer verfügen, werden sofort wiederhergestellt.
Hinweis
Diese Bedingung tritt als Produkt der Entfernung auf, ohne die Veröffentlichung mit Hintergrundzugabe des Pakets aufzuheben.
Dadurch wird das Hinzufügen eines App-V-Pakets des Veröffentlichungsaktualisierungsprozesses abgeschlossen. Der nächste Schritt besteht darin, das Paket auf dem spezifischen Ziel (Computer oder Benutzer) zu veröffentlichen.
Veröffentlichen eines App-V-Pakets
Während des Veröffentlichungsaktualisierungsvorgangs fügt der spezifische Veröffentlichungsvorgang (Publish-AppVClientPackage) Einträge zum Benutzerkatalog hinzu, ordnet dem Benutzer berechtigungen zu, identifiziert den lokalen Speicher und schließt alle Integrationsschritte ab. Im Folgenden finden Sie die ausführlichen Schritte.
Veröffentlichen und App-V-Paket
Paketeinträge werden dem Benutzerkatalog hinzugefügt.
Benutzerorientierte Pakete: die UserDeploymentConfiguration.xml und UserManifest.xml werden auf dem Computer im Benutzerkatalog platziert.
Computerorientierte (globale) Pakete: Die UserDeploymentConfiguration.xml wird im Computerkatalog platziert.
Registrieren des Pakets mit dem Kernelmodustreiber für den Benutzer unter HKLM\Software\Microsoft\AppV\MAV
Führen Sie Integrationsaufgaben aus.
Erstellen sie Erweiterungspunkte.
Speichern Sie Sicherungsinformationen in der Registrierung und dem Roamingprofil des Benutzers (Verknüpfungssicherungen).
Hinweis
Diese Aktion aktiviert die Wiederherstellung von Erweiterungspunkten, wenn die Veröffentlichung des Pakets aufgehoben wird.
Führen Sie Skripts für die Veröffentlichungszeit aus.
Das Veröffentlichen eines App-V-Pakets, das Teil einer Verbindungsgruppe ist, ähnelt dem vorherigen Prozess. Bei Verbindungsgruppen enthält der Pfad, in dem die spezifischen Kataloginformationen gespeichert werden, PackageGroups als untergeordnetes Element des Katalogverzeichnisses.
Anwendungsstart
Nach der Veröffentlichungsaktualisierung startet der Benutzer eine App-V-Anwendung und startet sie dann neu. Der Prozess ist so optimiert, dass er schnell mit einem Minimum an Netzwerkdatenverkehr gestartet wird. Der App-V-Client überprüft den Pfad zum Benutzerkatalog auf Dateien, die während der Veröffentlichung erstellt wurden. Nachdem die Rechte zum Starten des Pakets eingerichtet wurden, erstellt der App-V-Client eine virtuelle Umgebung, beginnt mit dem Streamen aller erforderlichen Daten und wendet während der Erstellung der virtuellen Umgebung die entsprechenden Manifest- und Bereitstellungskonfigurationsdateien an. Nachdem die virtuelle Umgebung für das jeweilige Paket und die Anwendung erstellt und konfiguriert wurde, wird die Anwendung gestartet.
Starten von App-V-Anwendungen
Der Benutzer startet die Anwendung, indem er auf eine Verknüpfung oder einen Dateitypaufruf klickt.
Der App-V-Client überprüft das Vorhandensein im Benutzerkatalog für die folgenden Dateien.
UserDeploymentConfiguration.xml
UserManifest.xml
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.
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.
Beim Ermitteln des Pfads zum Paketspeicher wird die virtuelle Umgebung erstellt. Wenn dies der erste Start ist, wird der primäre Featureblock heruntergeladen, sofern vorhanden.
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.
Die Anwendung wird gestartet. Bei fehlenden Dateien im Paketspeicher (Sparsedateien) werden die Dateien von App-V bei Bedarf stream-faultsiert.
Aktualisieren eines App-V-Pakets
Der App-V 5-Paketupgradeprozess unterscheidet sich von den älteren Versionen von App-V. App-V unterstützt mehrere Versionen desselben Pakets auf einem Computer, der für unterschiedliche Benutzer berechtigt ist. Paketversionen können jederzeit hinzugefügt werden, wenn paketspeicher und kataloge mit den neuen Ressourcen aktualisiert werden. Der einzige Prozess, der spezifisch für das Hinzufügen neuer Versionsressourcen ist, ist die Speicheroptimierung. Während eines Upgrades werden nur die neuen Dateien zum Speicherort der neuen Version hinzugefügt, und für unveränderte Dateien werden feste Links erstellt. Dadurch wird der Gesamtspeicher reduziert, indem die Datei nur an einem Datenträgerspeicherort angezeigt und dann in alle Ordner mit einem Dateispeicherorteintrag auf dem Datenträger projiziert wird. Die spezifischen Details zum Upgrade eines App-V-Pakets sind wie folgt:
Aktualisieren eines App-V-Pakets
Der App-V-Client führt eine Veröffentlichungsaktualisierung aus und ermittelt eine neuere Version eines App-V-Pakets.
Paketeinträge werden dem entsprechenden Katalog für die neue Version hinzugefügt.
Benutzerorientierte Pakete: Die UserDeploymentConfiguration.xml und UserManifest.xml werden auf dem Computer im Benutzerkatalog unter appdata\roaming\Microsoft\AppV\Client\Catalog\Packages\PkgGUID\VerGUID platziert.
Computerorientierte (globale) Pakete: Die UserDeploymentConfiguration.xml wird im Computerkatalog unter %programdata%\Microsoft\AppV\Client\Catalog\Packages\PkgGUID\VerGUID platziert.
Registrieren des Pakets mit dem Kernelmodustreiber für den Benutzer unter HKLM\Software\Microsoft\AppV\MAV
Führen Sie Integrationsaufgaben aus.
- Integrieren Sie Erweiterungspunkte (EP) aus den Manifest- und dynamischen Konfigurationsdateien.
Dateibasierte EP-Daten werden unter Verwendung von Verbindungspunkten aus dem Paketspeicher im Ordner AppData gespeichert.
EPs der Version 1 sind bereits vorhanden, wenn eine neue Version verfügbar wird.
Die Erweiterungspunkte werden in Computer- oder Benutzerkatalogen für alle neueren oder aktualisierten Erweiterungspunkte an den Speicherort der Version 2 umgestellt.
Führen Sie Skripts für die Veröffentlichungszeit aus.
Installieren Sie nach Bedarf parallele Assemblys.
Aktualisieren eines verwendeten App-V-Pakets
Ab App-V 5 SP2: Wenn Sie versuchen, ein Paket zu aktualisieren, das von einem Endbenutzer verwendet wird, wird der Upgradetask in den Status Ausstehend versetzt. Das Upgrade wird später gemäß den folgenden Regeln ausgeführt:
Art der Hintergrundaufgabe | Anwendbare Regel |
---|---|
Benutzerbasierte Aufgabe, z. B. das Veröffentlichen eines Pakets für einen Benutzer | Die ausstehende Aufgabe wird ausgeführt, nachdem sich der Benutzer abgemeldet und sich dann erneut anmeldet. |
Global basierte Aufgabe, z. B. globales Aktivieren einer Verbindungsgruppe | Die ausstehende Aufgabe wird ausgeführt, wenn der Computer heruntergefahren und dann neu gestartet wird. |
Wenn eine Aufgabe in einen ausstehenden Zustand versetzt wird, generiert der App-V-Client wie folgt auch einen Registrierungsschlüssel für die ausstehende Aufgabe:
Benutzerbasierte oder global basierte Aufgabe | Wo der Registrierungsschlüssel generiert wird |
---|---|
Benutzerbasierte Aufgaben | KEY_CURRENT_USER\Software\Microsoft\AppV\Client\PendingTasks |
Global basierte Aufgaben | HKEY_LOCAL_MACHINE\Software\Microsoft\AppV\Client\PendingTasks |
Die folgenden Vorgänge müssen abgeschlossen werden, bevor Benutzer die neuere Version des Pakets verwenden können:
Aufgabe | Details |
---|---|
Hinzufügen des Pakets zum Computer | Diese Aufgabe ist computerspezifisch, und Sie können sie jederzeit ausführen, indem Sie die Schritte im Abschnitt Paket hinzufügen ausführen. |
Veröffentlichen des Pakets | Schritte finden Sie im Abschnitt Paketveröffentlichung. Für diesen Prozess müssen Sie Erweiterungspunkte auf dem System aktualisieren. Endbenutzer können die Anwendung nicht verwenden, wenn Sie diese Aufgabe ausführen. |
Verwenden Sie die folgenden Beispielszenarien als Leitfaden für das Aktualisieren von Paketen.
Szenario | Anforderungen |
---|---|
Das App-V-Paket wird nicht verwendet, wenn Sie versuchen, ein Upgrade durchzuführen. | Keine der folgenden Komponenten des Pakets kann verwendet werden: virtuelle Anwendung, COM-Server oder Shellerweiterungen. Der Administrator veröffentlicht eine neuere Version des Pakets, und das Upgrade funktioniert beim nächsten Starten einer Komponente oder Anwendung innerhalb des Pakets. Die neue Version des Pakets wird gestreamt und ausgeführt. In diesem Szenario hat sich in App-V 5 SP2 gegenüber früheren Versionen von App-V 5 nichts geändert. |
Das App-V-Paket wird verwendet, wenn der Administrator eine neuere Version des Pakets veröffentlicht. | Der Upgradevorgang wird vom App-V-Client auf Ausstehend festgelegt. Dies bedeutet, dass er in die Warteschlange eingereiht und später ausgeführt wird, wenn das Paket nicht verwendet wird. Wenn die Paketanwendung verwendet wird, fährt der Benutzer die virtuelle Anwendung herunter, danach kann das Upgrade erfolgen. Wenn das Paket Shellerweiterungen (Office 2013) aufweist, die dauerhaft von Windows-Explorer geladen werden, kann der Benutzer nicht angemeldet werden. Benutzer müssen sich abmelden und dann erneut anmelden, um das App-V-Paketupgrade zu starten. |
Globale Veröffentlichung im Vergleich zu Benutzerveröffentlichung
App-V-Pakete können auf eine von zwei Arten veröffentlicht werden. Die Benutzerveröffentlichung berechtigt ein App-V-Paket für einen bestimmten Benutzer oder eine gruppe von Benutzern. Die globale Veröffentlichung berechtigt das App-V-Paket für den gesamten Computer für alle Benutzer des Computers. Wenn ein Paketupgrade aussteht und das App-V-Paket nicht verwendet wird, sollten Sie die beiden Arten der Veröffentlichung in Betracht ziehen:
Global veröffentlicht: Die Anwendung wird auf einem Computer veröffentlicht; Alle Benutzer auf diesem Computer können es verwenden. Das Upgrade erfolgt beim Starten des App-V-Clientdiensts, was effektiv einen Neustart des Computers bedeutet.
Benutzer veröffentlicht: Die Anwendung wird für einen Benutzer veröffentlicht. Wenn mehrere Benutzer auf dem Computer vorhanden sind, kann die Anwendung für eine Teilmenge der Benutzer veröffentlicht werden. Das Upgrade erfolgt, wenn sich der Benutzer anmeldet oder erneut veröffentlicht wird. Dies geschieht in regelmäßigen Abständen mit der Aktualisierung und Auswertung von Configuration Manager-Richtlinien, einer regelmäßigen Veröffentlichung/Aktualisierung von App-V 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 startet keine Paketentfernung. Der Prozess ist identisch mit dem Veröffentlichungsprozess, aber anstatt den Entfernungsprozess hinzuzufügen, werden die Änderungen rückgängig gemacht, die für App-V-Pakete vorgenommen werden.
Reparieren eines App-V-Pakets
Der Reparaturvorgang kann sich auf viele Standorte auf dem Computer auswirken. Die zuvor erwähnten Cow-Speicherorte (Copy On Write) werden entfernt, und Erweiterungspunkte werden deintegriert und dann wieder integriert. Überprüfen Sie die Speicherorte der COW-Datenplatzierung, indem Sie überprüfen, wo sie in der Registrierung registriert sind. Dieser Vorgang wird automatisch ausgeführt, und es gibt keine andere administrative Kontrolle als das Initiieren eines Reparaturvorgangs über die App-V-Clientkonsole oder über PowerShell (Repair-AppVClientPackage).
Integration von App-V-Paketen
Die App-V-Client- und Paketarchitektur ermöglicht eine spezifische Integration mit dem lokalen Betriebssystem beim Hinzufügen und Veröffentlichen von Paketen. Drei Dateien definieren die Integrations- oder Erweiterungspunkte für ein App-V-Paket:
AppXManifest.xml: Wird im Paket mit Fallbackkopien gespeichert, die im Paketspeicher und im Benutzerprofil gespeichert sind. Enthält die Optionen, die während des Sequenzierungsprozesses erstellt wurden.
DeploymentConfig.xml: Stellt Konfigurationsinformationen von computerbasierten und benutzerbasierten Integrationserweiterungspunkten bereit.
UserConfig.xml: Eine Teilmenge der Deploymentconfig.xml, die nur benutzerbasierte Konfigurationen bereitstellt und nur auf benutzerbasierte Erweiterungspunkte abzielt.
Integrationsregeln
Wenn App-V-Anwendungen auf einem Computer mit dem App-V-Client veröffentlicht werden, 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.
Sichern und Wiederherstellen: Vorhandene systemeigene Anwendungsdaten und Registrierungen (z. B. FTA-Registrierungen) werden während der Veröffentlichung gesichert.
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.
Der Besitz wird von einem App-V-Paket zu einem anderen übertragen, wenn die Veröffentlichung des besitzenden App-V-Pakets aufgehoben wird. Bei diesem Vorgang wird keine Wiederherstellung der Daten oder registrierung gestartet.
Stellen Sie die gesicherten Daten wieder her, wenn das letzte Paket pro Erweiterungspunkt nicht veröffentlicht oder entfernt wurde.
Erweiterungspunkte
Die App-V-Veröffentlichungsdateien (Manifest und dynamische Konfiguration) bieten mehrere Erweiterungspunkte, mit denen die Anwendung in das lokale Betriebssystem integriert werden kann. Diese Erweiterungspunkte führen typische Anwendungsinstallationsaufgaben aus, z. B. das Platzieren von Verknüpfungen, das Erstellen von Dateitypzuordnungen und das Registrieren von Komponenten. Da es sich hierbei um virtualisierte Anwendungen handelt, die nicht auf die gleiche Weise wie herkömmliche Anwendungen installiert werden, gibt es einige Unterschiede. Die folgende Liste enthält die in diesem Abschnitt behandelten Erweiterungspunkte:
Tastenkombinationen
Dateitypzuordnungen
Shellerweiterungen
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.
Aus den XML-Dateien des Paketmanifests und der dynamischen Konfiguration finden Sie den Pfad zu einer bestimmten ausführbaren Anwendungsdatei in einem Abschnitt, der dem folgenden Beispiel ähnelt:
<Extension Category="AppV.Shortcut">
<Shortcut>
<File>[{Common Desktop}]\Adobe Reader 9.lnk</File>
<Target>[{AppVPackageRoot}]\Reader\AcroRd32.exe</Target>
<Icon>[{Windows}]\Installer\{AC76BA86-7AD7-1033-7B44-A94000000001}\SC_Reader.ico</Icon>
<Arguments />
<WorkingDirectory />
<ShowCommand>1</ShowCommand>
<ApplicationId>[{AppVPackageRoot}]\Reader\AcroRd32.exe</ApplicationId>
</Shortcut>
</Extension>
Wie bereits erwähnt, werden die App-V-Verknüpfungen basierend auf dem Aktualisierungsvorgang standardmäßig im Profil des Benutzers platziert. Globale Aktualisierung platziert Verknüpfungen im Profil "Alle Benutzer", und die Benutzeraktualisierung speichert sie im Profil des jeweiligen Benutzers. Die eigentliche ausführbare Datei wird im Paketspeicher gespeichert. Der Speicherort der ICO-Datei ist ein tokenisierter Speicherort im App-V-Paket.
Dateitypzuordnungen
Der App-V-Client verwaltet die dateitypbezogenen Zuordnungen des lokalen Betriebssystems während der Veröffentlichung, sodass Benutzer Dateitypaufrufe verwenden oder eine Datei mit einer registrierten Erweiterung wie .docx
öffnen können, um eine App-V-Anwendung zu starten. Dateitypzuordnungen sind in den Manifest- und dynamischen Konfigurationsdateien vorhanden, wie im folgenden Beispiel dargestellt:
<Extension Category="AppV.FileTypeAssociation">
<FileTypeAssociation>
<FileExtension MimeAssociation="true">
<Name>.xdp</Name>
<ProgId>AcroExch.XDPDoc</ProgId>
<ContentType>application/vnd.adobe.xdp+xml</ContentType>
</FileExtension>
<ProgId>
<Name>AcroExch.XDPDoc</Name>
<Description>Adobe Acrobat XML Data Package File</Description>
<EditFlags>65536</EditFlags>
<DefaultIcon>[{Windows}]\Installer\{AC76BA86-7AD7-1033-7B44-A94000000001}\XDPFile_8.ico</DefaultIcon>
<ShellCommands>
<DefaultCommand>Read</DefaultCommand>
<ShellCommand>
<ApplicationId>[{AppVPackageRoot}]\Reader\AcroRd32.exe</ApplicationId>
<Name>Open</Name>
<CommandLine>"[{AppVPackageRoot}]\Reader\AcroRd32.exe" "%1"</CommandLine>
</ShellCommand>
<ShellCommand>
<ApplicationId>[{AppVPackageRoot}]\Reader\AcroRd32.exe</ApplicationId>
<Name>Printto</Name>
<CommandLine>"[{AppVPackageRoot}]\Reader\AcroRd32.exe" /t "%1" "%2" "%3" "%4"</CommandLine>
</ShellCommand>
<ShellCommand>
<ApplicationId>[{AppVPackageRoot}]\Reader\AcroRd32.exe</ApplicationId>
<Name>Read</Name>
<FriendlyName>Open with Adobe Reader 9</FriendlyName>
<CommandLine>"[{AppVPackageRoot}]\Reader\AcroRd32.exe" "%1"</CommandLine>
</ShellCommand>
</ShellCommands>
</ProgId>
</FileTypeAssociation>
</Extension>
Hinweis
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 andere Einrichtung oder Konfiguration auf dem Client, um die Shellerweiterungsfunktionalität zu aktivieren.
Anforderungen für die Verwendung von Shellerweiterungen
Pakete, die eingebettete Shellerweiterungen enthalten, müssen global veröffentlicht werden.
Die "Bitanzahl" der Anwendung, des Sequencers und des App-V-Clients muss übereinstimmen, andernfalls funktionieren die Shellerweiterungen nicht. Zum Beispiel:
Die Version der Anwendung ist 64-Bit.
Der Sequencer wird auf einem 64-Bit-Computer ausgeführt.
Das Paket wird an einen 64-Bit-App-V-Clientcomputer übermittelt.
In der folgenden Tabelle werden die unterstützten Shellerweiterungen angezeigt.
Handler | Beschreibung |
---|---|
Kontextmenühandler | Fügt dem Kontextmenü Menüelemente hinzu. Es wird aufgerufen, bevor das Kontextmenü angezeigt wird. |
Drag-and-Drop-Handler | Steuert die Aktion beim Rechtsklick per Drag-and-Drop und ändert das angezeigte Kontextmenü. |
Löschen des Zielhandlers | Steuert die Aktion, nachdem ein Datenobjekt über ein Ablageziel wie eine Datei gezogen und abgelegt wurde. |
Datenobjekthandler | Steuert die Aktion, nachdem eine Datei in die Zwischenablage kopiert oder über ein Ablageziel gezogen und abgelegt wurde. Es kann andere 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 der Detailansicht von Windows-Explorer. Es kann verwendet werden, um die Sortierung und Gruppierung zu erweitern. |
Vorschauhandler | Ermöglicht die Anzeige einer Vorschau einer Datei im Vorschaubereich von Windows-Explorer. |
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 mehr Details.
App-V unterstützt die Registrierung von COM-Objekten aus dem Paket beim lokalen Betriebssystem mit zwei Prozesstypen: Out-of-Process und In-Process. Die Registrierung von COM-Objekten erfolgt mit einem oder einer Kombination aus mehreren Betriebsmodi für ein bestimmtes App-V-Paket, das off, Isolated und Integrated umfasst. Der integrierte Modus ist entweder für den Out-of-Process- oder in-Process-Typ konfiguriert. Die Konfiguration von COM-Modi und -Typen erfolgt mit dynamischen Konfigurationsdateien (deploymentconfig.xml oder userconfig.xml).
Softwareclients und Anwendungsfunktionen
App-V unterstützt bestimmte Softwareclients und Anwendungsfunktionen-Erweiterungspunkte, mit denen virtualisierte Anwendungen beim Softwareclient des Betriebssystems registriert werden können. Dadurch können Benutzer Standardprogramme für Vorgänge wie E-Mail, Chat und Media Player auswählen. Dieser Vorgang wird in der Systemsteuerung mit den Einstellungen "Programmzugriff festlegen" und "Computerstandardeinstellungen" ausgeführt und während der Sequenzierung im Manifest oder in den dynamischen Konfigurationsdateien konfiguriert. Anwendungsfunktionen werden nur unterstützt, wenn die App-V-Anwendungen global veröffentlicht werden.
Beispiel für die Softwareclientregistrierung eines App-V-basierten E-Mail-Clients.
<SoftwareClients Enabled="true">
<ClientConfiguration EmailEnabled="true" />
<Extensions>
<Extension Category="AppV.SoftwareClient">
<SoftwareClients>
<EMail MakeDefault="true">
<Name>Mozilla Thunderbird</Name>
<Description>Mozilla Thunderbird</Description>
<DefaultIcon>[{ProgramFilesX86}]\Mozilla Thunderbird\thunderbird.exe,0</DefaultIcon>
<InstallationInformation>
<RegistrationCommands>
<Reinstall>"[{ProgramFilesX86}]\Mozilla Thunderbird\uninstall\helper.exe" /SetAsDefaultAppGlobal</Reinstall>
<HideIcons>"[{ProgramFilesX86}]\Mozilla Thunderbird\uninstall\helper.exe" /HideShortcuts</HideIcons>
<ShowIcons>"[{ProgramFilesX86}]\Mozilla Thunderbird\uninstall\helper.exe" /ShowShortcuts</ShowIcons>
</RegistrationCommands>
<IconsVisible>1</IconsVisible>
<OEMSettings />
</InstallationInformation>
<ShellCommands>
<ApplicationId>[{ProgramFilesX86}]\Mozilla Thunderbird\thunderbird.exe</ApplicationId>
<Open>"[{ProgramFilesX86}]\Mozilla Thunderbird\thunderbird.exe" -mail</Open>
</ShellCommands>
<MAPILibrary>[{ProgramFilesX86}]\Mozilla Thunderbird\mozMapi32_InUse.dll</MAPILibrary>
<MailToProtocol>
<Description>Thunderbird URL</Description>
<EditFlags>2</EditFlags>
<DefaultIcon>[{ProgramFilesX86}]\Mozilla Thunderbird\thunderbird.exe,0</DefaultIcon>
<ShellCommands>
<ApplicationId>[{ProgramFilesX86}]\Mozilla Thunderbird\thunderbird.exe</ApplicationId>
<Open>"[{ProgramFilesX86}]\Mozilla Thunderbird\thunderbird.exe" -osint -compose "%1"</Open>
</ShellCommands>
</MailToProtocol>
</EMail>
</SoftwareClients>
</Extension>
</Extensions>
</SoftwareClients>
Hinweis
Für dieses Beispiel gilt Folgendes:
<ClientConfiguration EmailEnabled="true" />
ist die allgemeine Softwareclient-Einstellung zum Integrieren 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 rufen nicht immer virtualisierte Anwendungen mithilfe des Dateitypaufrufs auf. Eine Anwendung unterstützt beispielsweise das Einbetten eines mailto:
Links in ein Dokument oder eine Webseite. Der Benutzer wählt den mailto:
Link aus und erwartet, dass er seinen registrierten E-Mail-Client erhält. App-V unterstützt URL-Protokollhandler, die Sie für jedes Paket bei Windows registrieren 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 als primäre Anwendung gestartet werden sollte.
AppPath
Der AppPath-Erweiterungspunkt unterstützt das Aufrufen von App-V-Anwendungen direkt aus Windows. Dieses Verhalten tritt in der Regel auf dem Ausführungs- oder Startbildschirm auf. Sie können den Zugriff auf App-V-Anwendungen über Betriebssystembefehle oder Skripts bereitstellen, ohne den spezifischen Pfad zur ausführbaren Datei aufzurufen. Dadurch 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.
Virtuelle Anwendung
Dieses Subsystem stellt eine Liste der Anwendungen bereit, die während der Sequenzierung erfasst werden, die in der Regel von anderen App-V-Komponenten genutzt wird. Die Integration von Erweiterungspunkten, die zu einer bestimmten Anwendung gehören, kann mithilfe dynamischer Konfigurationsdateien deaktiviert werden. Wenn ein Paket z. B. zwei Anwendungen enthält, ist es möglich, alle Erweiterungspunkte zu deaktivieren, die zu einer Anwendung gehören, um nur die Integration von Erweiterungspunkten einer anderen Anwendung zuzulassen.
Regeln für Erweiterungspunkte
Die Erweiterungspunkte werden basierend auf der Veröffentlichung der Pakete in das Betriebssystem integriert. Globale Veröffentlichung platziert Erweiterungspunkte an öffentlichen Computerstandorten, an denen die Benutzerveröffentlichung Erweiterungspunkte an Benutzerspeicherorten platziert. Beispielsweise führt eine Verknüpfung, die auf dem Desktop erstellt und global veröffentlicht wird, zu den Dateidaten für die Verknüpfung (%Public%\Desktop) und den Registrierungsdaten (HKLM\Software\Classes). Dieselbe Verknüpfung enthält Dateidaten (%UserProfile%\Desktop) und Registrierungsdaten (HKCU\Software\Classes).
Erweiterungspunkte werden nicht alle auf die gleiche Weise veröffentlicht. Einige Erweiterungspunkte erfordern eine globale Veröffentlichung. Andere erfordern eine Sequenzierung auf dem spezifischen Betriebssystem und der Architektur, in dem sie bereitgestellt werden. In der folgenden Tabelle werden diese beiden wichtigsten Regeln beschrieben.
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
Da Organisationen App-V-Anwendungen über Geschäftsbereiche und geografische und politische Grenzen hinweg bereitstellen, ist es unmöglich, eine Anwendung einmal mit einem Satz von Einstellungen zu sequenzieren. App-V wurde für dieses Szenario entwickelt, da bestimmte Einstellungen und Konfigurationen während der Sequenzierung in der Manifestdatei erfasst werden, aber auch änderungen mit dynamischen Konfigurationsdateien unterstützt werden.
Die dynamische App-V-Konfiguration ermöglicht das Angeben einer Richtlinie für ein Paket auf Computerebene oder auf Benutzerebene. Mit den dynamischen Konfigurationsdateien können Sequenzierer die Konfiguration eines Pakets nach der Sequenzierung ändern, um die Anforderungen einzelner Benutzergruppen oder Computer zu erfüllen. In einigen Fällen müssen Sie möglicherweise Änderungen an der Anwendung vornehmen, um die richtige Funktionalität in der App-V-Umgebung bereitzustellen. Beispielsweise müssen Sie änderungen an den _*config.xml
Dateien vornehmen, 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 innerhalb der appv
Paketdatei, die für Sequenzierungsvorgänge repräsentativ ist und die Richtlinie der Wahl ist, es sei denn, dynamische Konfigurationsdateien werden einem bestimmten Paket zugewiesen. Nach der Sequenzierung können die dynamischen Konfigurationsdateien geändert werden, um die Veröffentlichung einer Anwendung auf verschiedenen Desktops oder Benutzern mit unterschiedlichen Erweiterungspunkten zu ermöglichen. Die beiden dynamischen Konfigurationsdateien sind die DDC-Dateien (Dynamic Deployment Configuration) und DUC-Dateien (Dynamic User Configuration). Dieser Abschnitt konzentriert sich auf die Kombination aus Manifest- und dynamischen Konfigurationsdateien.
Beispiel für dynamische Konfigurationsdateien
Das folgende Manifestbeispiel zeigt die Kombination aus Manifest-, Bereitstellungskonfigurations- und Benutzerkonfigurationsdateien nach der Veröffentlichung und während des normalen Betriebs. Diese Beispiele sind abgekürzte Beispiele für die einzelnen Dateien. Der Zweck besteht darin, nur die Kombination der Dateien anzuzeigen und nicht eine vollständige Beschreibung der spezifischen Kategorien zu sein, die in den einzelnen Dateien verfügbar sind.
Manifest
<appv:Extension Category="AppV.Shortcut">
<appv:Shortcut>
<appv:File>[{Common Programs}]\7-Zip\7-Zip File Manager.lnk</appv:File>
<appv:Target>[{AppVPackageRoot}]\7zFM.exe</appv:Target>
<appv:Icon>[{AppVPackageRoot}]\7zFM exe.O.ico</appv:Icon>
</appv:Shortcut>
</appv:Extension>
Bereitstellungskonfiguration
<MachineConfiguration>
<Subsystems>
<Registry>
<Include>
<Key Path= "\REGISTRY\Machine\Software\7zip">
<Value Type="REG_SZ" Name="Config" Data="1234"/>
</Key>
</Include>
</Registry>
</Subsystems>
Benutzerkonfiguration
<UserConfiguration>
<Subsystems>
<appv:ExtensionCategory="AppV.Shortcut">
<appv:Shortcut>
<appv:File>[{Desktop}]\7-Zip\7-Zip File Manager.lnk</appv:File>
<appv:Target>[{AppVPackageRoot}]\7zFM.exe</appv:Target>
<appv:Icon>[{AppVPackageRoot}]\7zFM exe.O.ico</appv:Icon>
</appv:Shortcut>
</appv:Extension>
</Subsystems>
<UserConfiguration>
<Subsystems>
<appv:Extension Category="AppV.Shortcut">
<appv:Shortcut>
<appv:Fìle>[{Desktop}]\7-Zip\7-Zip File Manager.lnk</appv:File>
<appv:Target>[{AppVPackageRoot}]\7zFM.exe</appv:Target>
<appv:Icon>[{AppVPackageRoot}]\7zFM.exe.O.ico</appv:Icon>
</appv:Shortcut>
<appv:Shortcut>
<appv:File>[{Common Programs}]\7-Zip\7-Zip File Manager.Ink</appv:File>
<appv:Target>[{AppVPackageRoot}]\7zFM.exe</appv:Target>
<appv:Icon>[{AppVPackageRoot)]\7zFM.exe.O.ico</appv: Icon>
</appv:Shortcut>
</appv:Extension>
</Subsystems>
<MachineConfiguration>
<Subsystems>
<Registry>
<Include>
<Key Path="\REGISTRY\Machine\Software\7zip">
<Value Type="REG_SZ" Name="Config" Data="1234"/>
</Include>
</Registry>
</Subsystems>
Parallele Assemblys
App-V unterstützt das automatische Packen von parallelen (SxS)-Assemblys während der Sequenzierung und Bereitstellung auf dem Client während der Veröffentlichung virtueller Anwendungen. App-V 5 SP2 unterstützt das Erfassen von SxS-Assemblys während der Sequenzierung für Assemblys, die nicht auf dem Sequenziercomputer vorhanden sind. Für Assemblys, die Visual C++-Version 8 und höher und/oder MSXML-Laufzeit verwenden, erkennt und erfasst der Sequencer diese Abhängigkeiten automatisch. Dieses Verhalten tritt auch dann auf, wenn sie während der Überwachung nicht installiert wurden. Das Feature SxS-Assemblys beseitigt die Einschränkungen früherer Versionen von App-V. Zuvor hat der App-V-Sequencer keine Assemblys erfasst, die bereits auf der Sequenzierungsarbeitsstation vorhanden sind, und die Assemblys privatisiert, die auf eine Ein-Bit-Version pro Paket beschränkt sind. Dieses Verhalten führte dazu, dass app-V-Anwendungen auf Clients bereitgestellt wurden, die die erforderlichen SxS-Assemblys fehlten, was zu Fehlern beim Starten der Anwendung führte. Dadurch wurde der Paketerstellungsprozess gezwungen, zu dokumentieren und dann sicherzustellen, dass alle für Pakete erforderlichen Assemblys lokal auf dem Clientbetriebssystem des Benutzers installiert wurden, um die Unterstützung für die virtuellen Anwendungen sicherzustellen. Basierend auf der Anzahl der Assemblys und der fehlenden Anwendungsdokumentation für die erforderlichen Abhängigkeiten war diese Aufgabe sowohl eine Verwaltungs- als auch eine Implementierungsaufgabe.
Die SxS-Assemblyunterstützung in App-V verfügt über die folgenden Features.
Automatische Erfassung der SxS-Assembly während der Sequenzierung, unabhängig davon, ob die Assembly bereits auf der Sequenzierungsarbeitsstation installiert wurde.
Der App-V-Client installiert die erforderlichen SxS-Assemblys automatisch zum Zeitpunkt der Veröffentlichung auf dem Clientcomputer, wenn sie nicht vorhanden sind.
Der Sequencer meldet die VC-Laufzeitabhängigkeit im Sequenzerberichtsmechanismus.
Der Sequencer ermöglicht es, die Assemblys, die bereits auf dem Sequencer installiert sind, nicht zu packen. Sie unterstützt Szenarien, in denen die Assemblys zuvor auf den Zielcomputern installiert wurden.
Automatische Veröffentlichung von SxS-Assemblys
Während der Veröffentlichung eines App-V-Pakets mit SxS-Assemblys überprüft der App-V-Client, ob die Assembly auf dem Computer vorhanden ist. Wenn die Assembly nicht vorhanden ist, stellt der Client die Assembly auf dem Computer bereit. Pakete, die Teil von Verbindungsgruppen sind, basieren auf den SxS-Assemblyinstallationen, die Teil der Basispakete sind, da die Verbindungsgruppe keine Informationen zur Assemblyinstallation enthält.
Hinweis
Wenn Sie die Veröffentlichung eines Pakets mit einer Assembly aufheben oder entfernen, werden die Assemblys für dieses Paket nicht entfernt.
Clientprotokollierung
Der App-V-Client protokolliert Informationen im Windows-Ereignisprotokoll und verwendet das ETW-Standardformat. Die spezifischen App-V-Ereignisse finden Sie in der Ereignisanzeige unter Anwendungs- und Dienstprotokolle\Microsoft\AppV\Client.
Hinweis
In App-V 5.0 SP3 wurden einige Protokolle konsolidiert und an den folgenden Speicherort verschoben:
Event logs/Applications and Services Logs/Microsoft/AppV/ServiceLog
Eine Liste der verschobenen Protokolle finden Sie unter Informationen zu App-V 5.0 SP3.
Es gibt drei spezifische Kategorien von Ereignissen, die aufgezeichnet werden:
Administrator: Protokolliert Ereignisse für Konfigurationen, die auf den App-V-Client angewendet werden, und enthält die primären Warnungen und Fehler.
Betriebsbereit: Protokolliert die allgemeine App-V-Ausführung und Die Verwendung einzelner Komponenten und erstellt ein Überwachungsprotokoll der abgeschlossenen App-V-Vorgänge auf dem App-V-Client.
Virtuelle Anwendung: Protokolliert den Start virtueller Anwendungen und die Verwendung von Virtualisierungssubsystemen.