Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:
- Windows 10
- Windows 11
Sie können die dynamische Konfiguration verwenden, um ein App-V-Paket für einen Benutzer anzupassen. In diesem Artikel erfahren Sie, wie Sie eine vorhandene dynamische Konfigurationsdatei erstellen oder bearbeiten.
Wenn Sie die Datei für die dynamische Konfiguration bearbeiten, wird angepasst, wie ein App-V-Paket für einen Benutzer oder eine Gruppe ausgeführt wird. Daher wird die Paketanpassung vereinfacht, indem die Notwendigkeit entfällt, Pakete mit den gewünschten Einstellungen neu anzuordnen, und bietet eine Möglichkeit, Paketinhalt und benutzerdefinierte Einstellungen unabhängig zu halten.
Erweitert: dynamische Konfiguration
Virtuelle Anwendungspakete enthalten ein Manifest, das alle Kerninformationen für das Paket bereitstellt. Diese Informationen enthalten die Standardwerte für die Paketeinstellungen und bestimmen die Einstellungen in der einfachsten Form (ohne weitere Anpassungen). Wenn Sie diese Standardwerte für einen bestimmten Benutzer oder eine bestimmte Gruppe anpassen möchten, können Sie die folgenden Dateien erstellen und bearbeiten:
- Benutzerkonfigurationsdatei
- Datei für die Bereitstellungskonfiguration
Diese .xml Dateien geben Paketeinstellungen an, mit denen Sie Pakete anpassen können, ohne die Pakete direkt zu beeinflussen. Wenn ein Paket erstellt wird, generiert der Sequencer automatisch die Standardbereitstellung und Benutzerkonfiguration .xml Dateien anhand der Paketmanifestdaten. Diese automatisch generierten Konfigurationsdateien spiegeln die Standardeinstellungen des Pakets wider, die während der Sequenzierung konfiguriert wurden. Wenn Sie diese Konfigurationsdateien auf ein Paket in der vom Sequencer generierten Form anwenden, haben die Pakete die gleichen Standardeinstellungen, die aus ihrem Manifest stammen. Mit diesem Ergebnis erhalten Sie eine paketspezifische Vorlage, mit der Sie loslegen können, wenn einer der Standardwerte geändert werden muss.
Hinweis
Die folgenden Informationen können nur verwendet werden, um von Sequencer generierte Konfigurationsdateien zu ändern, um Pakete an bestimmte Benutzer- oder Gruppenanforderungen anzupassen.
Inhalt der Datei "Dynamische Konfiguration"
Alle Ergänzungen, Löschungen und Aktualisierungen in den Konfigurationsdateien müssen in Bezug auf die Standardwerte vorgenommen werden, die in den Manifestinformationen des Pakets angegeben sind. Die folgende Liste stellt die Beziehung zwischen diesen Dateien in der Art und Weise dar, wie sie gelesen werden, von der höchsten bis zur niedrigsten Priorität:
- Datei .xml Benutzerkonfiguration
- Datei .xml Bereitstellungskonfiguration
- Paketmanifest
Das erste Element gibt an, was zuletzt gelesen wird. Daher hat sein Inhalt Vorrang. Alle Pakete enthalten und stellen inhärent Standardeinstellungen aus dem Paketmanifest bereit, es hat jedoch auch die geringste Priorität. Wenn Sie eine Bereitstellungskonfigurationsdatei .xml mit benutzerdefinierten Einstellungen anwenden, überschreibt sie die Standardwerte des Paketmanifests. Wenn Sie eine Benutzerkonfigurationsdatei .xml mit benutzerdefinierten Einstellungen anwenden, bevor die Standardwerte des Paketmanifests außer Kraft gesetzt werden, überschreibt dies sowohl die Bereitstellungskonfiguration als auch die Standardwerte des Paketmanifests.
Es gibt zwei Arten von Konfigurationsdateien:
- Benutzerkonfigurationsdatei (UserConfig): Ermöglicht das Angeben oder Ändern benutzerdefinierter Einstellungen für ein Paket. Diese Einstellungen werden für einen bestimmten Benutzer angewendet, wenn das Paket auf einem Computer bereitgestellt wird, auf dem der App-V-Client ausgeführt wird.
- Bereitstellungskonfigurationsdatei (DeploymentConfig): Ermöglicht das Angeben oder Ändern der Standardeinstellungen für ein Paket. Diese Einstellungen werden für alle Benutzer angewendet, wenn ein Paket auf einem Computer bereitgestellt wird, auf dem der App-V-Client ausgeführt wird.
Sie können mithilfe der UserConfig-Datei die Einstellungen für ein Paket für eine bestimmte Gruppe von Benutzern auf einem Computer anpassen oder Änderungen vornehmen, die auf lokale Benutzerstandorte wie HKCU angewendet werden. Sie können mithilfe der Datei "DeploymentConfig" die Standardeinstellungen eines Pakets für alle Benutzer auf einem Computer ändern oder Änderungen vornehmen, die auf globale Speicherorte wie HKEY_LOCAL_MACHINE und den Ordner "Alle Benutzer" angewendet werden.
Die Datei "UserConfig" enthält Konfigurationseinstellungen, die Sie auf einen einzelnen Benutzer anwenden können, ohne dass sich dies auf andere Benutzer auf einem Client auswirkt:
- Erweiterungen, die pro Benutzer in das native System integriert werden: Verknüpfungen, File-Type Zuordnungen, URL-Protokolle, AppPaths, Softwareclients und COM.
- Virtuelle Subsysteme: Anwendungsobjekte, Umgebungsvariablen, Registrierungsänderungen, Dienste und Schriftarten.
- Skripts (nur Benutzerkontext).
Die DeploymentConfig-Datei stellt Konfigurationseinstellungen in zwei Abschnitten bereit, einen relativ zum Computerkontext und einen relativ zum Benutzerkontext, wobei die gleichen Funktionen wie in der obigen UserConfig-Liste bereitgestellt werden:
- Alle UserConfig-Einstellungen aus dem vorherigen Abschnitt dieses Themas
- Erweiterungen, die nur global für alle Benutzer angewendet werden können
- Virtuelle Subsysteme, die für globale Computerspeicherorte konfiguriert werden können, z. B. die Registrierung
- Quell-URL des Produkts
- Skripts (nur Computerkontext)
- Steuerelemente zum Beenden von untergeordneten Prozessen
Dateistruktur
Die Struktur der dynamischen App-V-Konfigurationsdatei wird im folgenden Abschnitt erläutert.
Konfigurationsdatei für dynamische Benutzer
Kopfzeile
Ein Beispiel für die Kopfzeile einer dynamischen Benutzerkonfigurationsdatei ist:
<?xml version="1.0" encoding="utf-8"?>
<UserConfiguration PackageId="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="http://schemas.microsoft.com/appv/2010/userconfiguration">
Die PackageId ist derselbe Wert, der in der Manifestdatei vorhanden ist.
Dateitext der dynamischen Benutzerkonfiguration
Der Text der Datei für die dynamische Benutzerkonfiguration kann alle in der Manifestdatei definierten App-Erweiterungspunkte sowie die Informationen zum Konfigurieren virtueller Anwendungen enthalten. Es gibt vier Unterabschnitte, die im Hauptteil zulässig sind:
Anwendungen: Allen App-Erweiterungen, die in der Manifestdatei innerhalb eines Pakets enthalten sind, wird eine Anwendungs-ID zugewiesen, die auch in der Manifestdatei definiert ist. Auf diese Weise können Sie alle Erweiterungen für eine bestimmte Anwendung innerhalb eines Pakets aktivieren oder deaktivieren. Die Anwendungs-ID muss in der Manifestdatei vorhanden sein, sonst wird sie ignoriert.
<UserConfiguration PackageId="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="http://schemas.microsoft.com/appv/2010/userconfiguration">
<Applications>
<!-- No new application can be defined in policy. AppV Client will ignore any application ID that is not also in the Manifest file -->
<Application Id="{a56fa627-c35f-4a01-9e79-7d36aed8225a}" Enabled="false">
</Application>
</Applications>
…
</UserConfiguration>
Subsysteme: AppExtensions und andere Subsysteme sind als Unterknoten unter <Subsystems>angeordnet, wie im folgenden Beispiel gezeigt.
<UserConfiguration **PackageId**="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="http://schemas.microsoft.com/appv/2010/userconfiguration">
<Subsystems>
..
</Subsystems>
..
</UserConfiguration>
Jedes Subsystem kann mithilfe des Attributs "Enabled" aktiviert/deaktiviert werden. In den folgenden Abschnitten werden die verschiedenen Subsysteme und Verwendungsbeispiele beschrieben.
Dateierweiterungen der dynamischen Benutzerkonfiguration
Erweiterungssubsysteme steuern Erweiterungen. Diese Subsysteme sind Verknüpfungen, File-Type Zuordnungen, URL-Protokolle, AppPaths, Softwareclients und COM.
Erweiterungssubsysteme können unabhängig vom Inhalt aktiviert und deaktiviert werden. Wenn Verknüpfungen aktiviert sind, verwendet der Client daher standardmäßig die im Manifest enthaltenen Verknüpfungen. Jedes Erweiterungssubsystem kann einen <Extensions> Knoten enthalten. Ist dieses untergeordnete Element vorhanden, ignoriert der Client den Inhalt der Manifestdatei für dieses Subsystem und verwendet nur den Inhalt der Konfigurationsdatei.
Beispiele für das Subsystem "Tastenkombinationen"
Beispiel 1
Inhalte werden ignoriert, wenn der Benutzer die folgenden Syntaxen in der dynamischen Datei oder der Bereitstellungskonfigurationsdatei definiert hat:
<Shortcuts Enabled="true">
<Extensions
...
</Extensions>
</Shortcuts>
Beispiel 2
Inhalte im Manifest werden bei der Veröffentlichung integriert, wenn der Benutzer nur die folgende Syntax definiert hat:
`<Shortcuts Enabled="true"/>`
Beispiel 3
Alle Tastenkombinationen im Manifest werden ignoriert und es werden keine Tastenkombinationen integriert, wenn der Benutzer die folgenden Syntaxen definiert:
<Shortcuts Enabled="true">
<Extensions/>
</Shortcuts>
Unterstützte Erweiterungssubsysteme
Tastenkombinationen: Dieses Subsystem steuert Tastenkombinationen, die in das lokale System integriert werden. Im folgenden Beispiel gibt es zwei Tastenkombinationen:
<Subsystems>
<Shortcuts Enabled="true">
<Extensions>
<Extension Category="AppV.Shortcut">
<Shortcut>
<File>\[{Common Programs}\]\\Microsoft Contoso\\Microsoft ContosoApp Filler 2010.lnk</File>
<Target>\[{PackageRoot}\]\\Contoso\\ContosoApp.EXE</Target>
<Icon>\[{Windows}\]\\Installer\\{90140000-0011-0000-0000-0000000FF1CE}\\inficon.exe</Icon>
<Arguments />
<WorkingDirectory />
<AppUserModelId>ContosoApp.Filler.3</AppUserModelId>
<Description>Fill out dynamic forms to gather and reuse information throughout the organization using Microsoft ContosoApp.</Description>
<Hotkey>0</Hotkey>
<ShowCommand>1</ShowCommand>
<ApplicationId>\[{PackageRoot}\]\\Contoso\\ContosoApp.EXE</ApplicationId>
</Shortcut>
</Extension>
<Extension Category="AppV.Shortcut">
<Shortcut>
<File>\[{AppData}\]\\Microsoft\\Contoso\\Recent\\Templates.LNK</File>
<Target>\[{AppData}\]\\Microsoft\\Templates</Target>
<Icon />
<Arguments />
<WorkingDirectory />
<AppUserModelId />
<Description />
<Hotkey>0</Hotkey>
<ShowCommand>1</ShowCommand>
<!-- Note the ApplicationId is optional -->
</Shortcut>
</Extension>
</Extensions>
</Shortcuts>
Dateitypzuordnungen: Ordnet Dateitypen Programmen zu, die standardmäßig geöffnet werden sollen und das Kontextmenü eingerichtet werden soll. (MIME-Typen können auch mit diesem Subsystem eingerichtet werden.) Ein Beispiel für eine Dateitypzuordnung ist:
<FileTypeAssociations Enabled="true">
<Extensions>
<Extension Category="AppV.FileTypeAssociation">
<FileTypeAssociation>
<FileExtension MimeAssociation="true">
<Name>.docm</Name>
<ProgId>contosowordpad.DocumentMacroEnabled.12</ProgId>
<PerceivedType>document</PerceivedType>
<ContentType>application/vnd.ms-contosowordpad.document.macroEnabled.12</ContentType>
<OpenWithList>
<ApplicationName>wincontosowordpad.exe</ApplicationName>
</OpenWithList>
<OpenWithProgIds>
<ProgId>contosowordpad.8</ProgId>
</OpenWithProgIds>
<ShellNew>
<Command />
<DataBinary />
<DataText />
<FileName />
<NullFile>true</NullFile>
<ItemName />
<IconPath />
<MenuText />
<Handler />
</ShellNew>
</FileExtension>
<ProgId>
<Name>contosowordpad.DocumentMacroEnabled.12</Name>
<DefaultIcon>\[{Windows}\]\\Installer\\{90140000-0011-0000-0000-0000000FF1CE}\\contosowordpadicon.exe,15</DefaultIcon>
<Description>Blah Blah Blah</Description>
<FriendlyTypeName>\[{FOLDERID\_ProgramFilesX86}\]\\Microsoft Contoso 14\\res.dll,9182</FriendlyTypeName>
<InfoTip>\[{FOLDERID\_ProgramFilesX86}\]\\Microsoft Contoso 14\\res.dll,1424</InfoTip>
<EditFlags>0</EditFlags>
<ShellCommands>
<DefaultCommand>Open</DefaultCommand>
<ShellCommand>
<ApplicationId>{e56fa627-c35f-4a01-9e79-7d36aed8225a}</ApplicationId>
<Name>Edit</Name>
<FriendlyName>&Edit</FriendlyName>
<CommandLine>"\[{PackageRoot}\]\\Contoso\\WINcontosowordpad.EXE" /vu "%1"</CommandLine>
</ShellCommand>
</ShellCommand>
<ApplicationId>{e56fa627-c35f-4a01-9e79-7d36aed8225a}</ApplicationId>
<Name>Open</Name>
<FriendlyName>&Open</FriendlyName>
<CommandLine>"\[{PackageRoot}\]\\Contoso\\WINcontosowordpad.EXE" /n "%1"</CommandLine>
<DropTargetClassId />
<DdeExec>
<Application>mscontosowordpad</Application>
<Topic>ShellSystem</Topic>
<IfExec>\[SHELLNOOP\]</IfExec>
<DdeCommand>\[SetForeground\]\[ShellNewDatabase "%1"\]</DdeCommand>
</DdeExec>
</ShellCommand>
</ShellCommands>
</ProgId>
</FileTypeAssociation>
</Extension>
</Extensions>
</FileTypeAssociations>
URL-Protokolle: Dieses Subsystem steuert die URL-Protokolle, die in die lokale Registrierung des Clientcomputers integriert sind. Das folgende Beispiel veranschaulicht das "mailto:"-Protokoll.
<URLProtocols Enabled="true">
<Extensions>
<Extension Category="AppV.URLProtocol">
<URLProtocol>
<Name>mailto</Name>
<ApplicationURLProtocol>
<DefaultIcon>\[{ProgramFilesX86}\]\\Microsoft Contoso\\Contoso\\contosomail.EXE,-9403</DefaultIcon>
<EditFlags>2</EditFlags>
<Description />
<AppUserModelId />
<FriendlyTypeName />
<InfoTip />
<SourceFilter />
<ShellFolder />
<WebNavigableCLSID />
<ExplorerFlags>2</ExplorerFlags>
<CLSID />
<ShellCommands>
<DefaultCommand>open</DefaultCommand>
<ShellCommand>
<ApplicationId>\[{ProgramFilesX86}\]\\Microsoft Contoso\\Contoso\\contosomail.EXE</ApplicationId>
<Name>open</Name>
<CommandLine>\[{ProgramFilesX86}\\Microsoft Contoso\\Contoso\\contosomail.EXE" -c OEP.Note /m "%1"</CommandLine>
<DropTargetClassId />
<FriendlyName />
<Extended>0</Extended>
<LegacyDisable>0</LegacyDisable>
<SuppressionPolicy>2</SuppressionPolicy>
<DdeExec>
<NoActivateHandler />
<Application>contosomail</Application>
<Topic>ShellSystem</Topic>
<IfExec>\[SHELLNOOP\]</IfExec>
<DdeCommand>\[SetForeground\]\[ShellNewDatabase "%1"\]</DdeCommand>
</DdeExec>
</ShellCommand>
</ShellCommands>
</ApplicationURLProtocol>
</URLProtocol>
</Extension>
</Extension>
</URLProtocols>
Softwareclients: Ermöglicht der App, sich als E-Mail-Client, Newsreader oder Media Player zu registrieren, und macht die App in der Benutzeroberfläche "Programmzugriff festlegen" und "Computerstandard" sichtbar. In den meisten Fällen müssen Sie sie nur aktivieren und deaktivieren. Es gibt auch ein Steuerelement, mit dem Sie den E-Mail-Client nur dann aktivieren oder deaktivieren können, wenn Sie möchten, dass alle anderen Clients so bleiben, wie sie sind.
<SoftwareClients Enabled="true">
<ClientConfiguration EmailEnabled="false" />
</SoftwareClients>
AppPaths: Wenn eine Anwendung, z. B. contoso.exe, mit dem AppPath-Namen "myapp" registriert ist, können Sie die App mit diesem Subsystem öffnen, indem Sie "myapp" in das Ausführungsmenü eingeben.
<AppPaths Enabled="true">
<Extensions>
<Extension Category="AppV.AppPath">
<AppPath>
<ApplicationId>\[{ProgramFilesX86}\]\\Microsoft Contoso\\Contoso\\contosomail.EXE</ApplicationId>
<Name>contosomail.exe</Name>
<ApplicationPath>\[{ProgramFilesX86}\]\\Microsoft Contoso\\Contoso\\contosomail.EXE</ApplicationPath>
<PATHEnvironmentVariablePrefix />
<CanAcceptUrl>false</CanAcceptUrl>
<SaveUrl />
</AppPath>
</Extension>
</Extensions>
</AppPaths>
COM: Ermöglicht einer Anwendung die Registrierung lokaler COM-Server. Der Modus kann Integration, Isoliert oder Aus sein. When Isol.
<COM Mode="Isolated"/>
Weitere Einstellungen für die dynamische Benutzerkonfigurationsdatei
Neben Erweiterungen können die folgenden anderen Subsysteme aktiviert/deaktiviert und bearbeitet werden.
Virtuelle Kernelobjekte
<Objects Enabled="false" />
```xml
**Virtual Registry**: use this if you want to set a registry in the Virtual Registry within HKCU.
```xml
<Registry Enabled="true">
<Include>
<Key Path="\\REGISTRY\\USER\\\[{AppVCurrentUserSID}\]\\Software\\ABC">
<Value Type="REG\_SZ" Name="Bar" Data="NewValue" />
</Key>
<Key Path="\\REGISTRY\\USER\\\[{AppVCurrentUserSID}\]\\Software\\EmptyKey" />
</Include>
<Delete>
</Registry>
Virtuelles Dateisystem
<FileSystem Enabled="true" />
Virtuelle Schriftarten
<Fonts Enabled="false" />
Virtuelle Umgebungsvariablen
<EnvironmentVariables Enabled="true">
<Include>
<Variable Name="UserPath" Value="%path%;%UserProfile%" />
<Variable Name="UserLib" Value="%UserProfile%\\ABC" />
</Include>
<Delete>
<Variable Name="lib" />
</Delete>
</EnvironmentVariables>
Virtuelle Dienste
<Services Enabled="false" />
UserScripts
Skripts können verwendet werden, um die virtuelle Umgebung einzurichten oder zu ändern und Skripts bei der Bereitstellung oder Entfernung auszuführen, bevor eine Anwendung ausgeführt wird, oder sie können die Umgebung nach dem Beenden der Anwendung sauber machen. Sehen Sie sich eine Beispieldatei zur Benutzerkonfiguration an, die vom Sequencer ausgegeben wurde, um ein Beispielskript zu sehen. Weitere Informationen zu den verschiedenen Triggern, die Sie zum Einrichten von Skripts verwenden können, finden Sie im Abschnitt Skripts .
Konfigurationsdatei für dynamische Bereitstellung
Dateiheader der dynamischen Bereitstellungskonfiguration
Die Kopfzeile einer Bereitstellungskonfigurationsdatei sollte in etwa wie folgt aussehen:
<?xml version="1.0" encoding="utf-8"?><DeploymentConfiguration PackageId="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="http://schemas.microsoft.com/appv/2010/deploymentconfiguration">
Die PackageId ist derselbe Wert wie der Wert, der in der Manifestdatei vorhanden ist.
Dynamic Deployment Configuration-Dateitext
Der Hauptteil der Bereitstellungskonfigurationsdatei enthält zwei Abschnitte:
- Der Abschnitt Benutzerkonfiguration erlaubt den gleichen Inhalt wie die Benutzerkonfigurationsdatei, die im vorherigen Abschnitt beschrieben wurde. Wenn das Paket für einen Benutzer veröffentlicht wird, überschreiben alle AppExtensions-Konfigurationseinstellungen in diesem Abschnitt die entsprechenden Einstellungen im Manifest innerhalb des Pakets, es sei denn, es wird auch eine Benutzerkonfigurationsdatei bereitgestellt. Wenn auch eine UserConfig-Datei bereitgestellt wird, wird diese anstelle der Benutzereinstellungen in der Bereitstellungskonfigurationsdatei verwendet. Wenn das Paket global veröffentlicht wird, wird nur der Inhalt der Bereitstellungskonfigurationsdatei in Kombination mit dem Manifest verwendet.
- Der Abschnitt Computerkonfiguration enthält Informationen, die nur für einen gesamten Computer konfiguriert werden können, nicht für einen bestimmten Benutzer auf dem Computer. Beispielsweise HKEY_LOCAL_MACHINE Registrierungsschlüssel im VFS.
<DeploymentConfiguration PackageId="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="http://schemas.microsoft.com/appv/2010/deploymentconfiguration">
<UserConfiguration>
..
</UserConfiguration>
<MachineConfiguration>
..
</MachineConfiguration>
..
</MachineConfiguration>
</DeploymentConfiguration>
Benutzerkonfiguration: Weitere Informationen zu diesem Abschnitt finden Sie unter Dynamische Benutzerkonfiguration.
Computerkonfiguration: Im Abschnitt Computerkonfiguration der Bereitstellungskonfigurationsdatei werden Informationen konfiguriert, die nur für einen gesamten Computer festgelegt werden können, nicht für einen bestimmten Benutzer auf dem Computer, wie z. B. die HKEY_LOCAL_MACHINE Registrierungsschlüssel in der virtuellen Registrierung. Dieses Element kann die folgenden vier Unterabschnitte aufweisen.
Subsysteme
AppExtensions und andere Subsysteme sind als Unterknoten angeordnet unter <Subsystems>:
<MachineConfiguration>
<Subsystems>
..
</Subsystems>
..
</MachineConfiguration>
Im folgenden Abschnitt werden die verschiedenen Subsysteme und Verwendungsbeispiele beschrieben.
Erweiterungen
Einige Subsysteme (Erweiterungssubsysteme) steuern Erweiterungen, die nur für alle Benutzer gelten können. Das Subsystem sind Anwendungsfunktionen. Da dieses Subsystem nur für alle Benutzer gelten kann, muss das Paket global veröffentlicht werden, damit diese Art von Erweiterung in das lokale System integriert werden kann. Die Regeln für die Steuerelemente und Einstellungen der Benutzerkonfigurationserweiterung gelten auch für diejenigen in der Computerkonfiguration.
Anwendungsfunktionen
Die Erweiterung "Anwendungsfunktionen" wird von Standardprogrammen in der Windows-Betriebssystemoberfläche verwendet. Es ermöglicht einer Anwendung, sich als fähig zu registrieren, bestimmte Dateierweiterungen zu öffnen, als Anwärter auf den Internetbrowser-Slot des Startmenüs und als in der Lage, bestimmte Windows-MIME-Typen zu öffnen. Durch diese Erweiterung wird die virtuelle Anwendung auch in der Benutzeroberfläche "Standardprogramme festlegen" sichtbar.
<ApplicationCapabilities Enabled="true">
<Extensions>
<Extension Category="AppV.ApplicationCapabilities">
<ApplicationCapabilities>
<ApplicationId>\[{PackageRoot}\]\\LitView\\LitViewBrowser.exe</ApplicationId>
<Reference>
<Name>LitView Browser</Name>
<Path>SOFTWARE\\LitView\\Browser\\Capabilities</Path>
</Reference>
<CapabilityGroup>
<Capabilities>
<Name>@\[{ProgramFilesX86}\]\\LitView\\LitViewBrowser.exe,-12345</Name>
<Description>@\[{ProgramFilesX86}\]\\LitView\\LitViewBrowser.exe,-12346</Description>
<Hidden>0</Hidden>
<EMailSoftwareClient>Lit View E-Mail Client</EMailSoftwareClient>
<FileAssociationList>
<FileAssociation Extension=".htm" ProgID="LitViewHTML" />
<FileAssociation Extension=".html" ProgID="LitViewHTML" />
<FileAssociation Extension=".shtml" ProgID="LitViewHTML" />
</FileAssociationList>
<MIMEAssociationList>
<MIMEAssociation Type="audio/mp3" ProgID="LitViewHTML" />
<MIMEAssociation Type="audio/mpeg" ProgID="LitViewHTML" />
</MIMEAssociationList>
<URLAssociationList>
<URLAssociation Scheme="http" ProgID="LitViewHTML.URL.http" />
</URLAssociationList>
</Capabilities>
</CapabilityGroup>
</ApplicationCapabilities>
</Extension>
</Extensions>
</ApplicationCapabilities>
Weitere Einstellungen für die Konfigurationsdatei für die dynamische Bereitstellung
Sie können zusätzlich zu Erweiterungen auch andere Subsysteme bearbeiten:
- Computerweite virtuelle Registrierung: Verwenden Sie dieses Subsystem, wenn Sie einen Registrierungsschlüssel in der virtuellen Registrierung in HKEY_Local_Machine festlegen möchten.
<Registry>
<Include>
<Key Path="\\REGISTRY\\Machine\\Software\\ABC">
<Value Type="REG\_SZ" Name="Bar" Data="Baz" />
</Key>
<Key Path="\\REGISTRY\\Machine\\Software\\EmptyKey" />
</Include>
<Delete>
</Registry>
- Computerweite virtuelle Kernelobjekte
<Objects>
<NotIsolate>
<Object Name="testObject" />
</NotIsolate>
</Objects>
- ProductSourceURLOptOut: Gibt an, ob die URL für das Paket global über PackageSourceRoot geändert werden kann, um Zweigstellenszenarien zu unterstützen. Standardmäßig ist er auf "False" festgelegt. Änderungen am Wert werden beim nächsten Start wirksam.
<MachineConfiguration>
..
<ProductSourceURLOptOut Enabled="true" />
..
</MachineConfiguration>
MachineScripts: Das Paket kann so konfiguriert werden, dass Skripts beim Bereitstellen, Veröffentlichen oder Entfernen ausgeführt werden. Ein Beispielskript finden Sie in einer Beispiel-Bereitstellungskonfigurationsdatei, die vom Sequencer generiert wurde. Der folgende Abschnitt enthält weitere Informationen zu den verschiedenen Triggern, die Sie zum Einrichten von Skripts verwenden können.
TerminateChildProcess: Mit diesem Subsystem können Sie festlegen, dass die untergeordneten Prozesse einer ausführbaren Anwendung beendet werden, wenn der application.exe-Prozess beendet wird.
<MachineConfiguration>
..
<TerminateChildProcesses>
<Application Path="\[{PackageRoot}\]\\Contoso\\ContosoApp.EXE" />
<Application Path="\[{PackageRoot}\]\\LitView\\LitViewBrowser.exe" />
<Application Path="\[{ProgramFilesX86}\]\\Microsoft Contoso\\Contoso\\contosomail.EXE" />
</TerminateChildProcesses>
..
</MachineConfiguration>
Skripts
In der folgenden Tabelle werden die verschiedenen Skriptereignisse und der Kontext, in dem sie ausgeführt werden können, beschrieben.
| Skriptausführungszeit | Kann in der Bereitstellungskonfiguration angegeben werden | Kann in der Benutzerkonfiguration angegeben werden | Kann in der virtuellen Umgebung des Pakets ausgeführt werden | Kann im Kontext einer bestimmten Anwendung ausgeführt werden | Wird im System-/Benutzerkontext ausgeführt: (Bereitstellungskonfiguration, Benutzerkonfiguration) |
|---|---|---|---|---|---|
| AddPackage | X | (SYSTEM, NV) | |||
| PublishPackage | X | X | (SYSTEM, Benutzer) | ||
| UnpublishPackage | X | X | (SYSTEM, Benutzer) | ||
| RemovePackage | X | (SYSTEM, NV) | |||
| StartProcess | X | X | X | X | (Benutzer, Benutzer) |
| ExitProcess | X | X | X | (Benutzer, Benutzer) | |
| StartVirtualEnvironment | X | X | X | (Benutzer, Benutzer) | |
| TerminateVirtualEnvironment | X | X | (Benutzer, Benutzer) |
Verwenden mehrerer Skripts für einen einzelnen Ereignistrigger
App-V unterstützt die Verwendung mehrerer Skripts für einen einzelnen Ereignistrigger für App-V-Pakete, einschließlich Pakete, die Sie von App-V 4.6 in App-V für Windows-Client konvertieren. Um die Verwendung mehrerer Skripts zu ermöglichen, verwendet App-V eine Skriptstartanwendung mit dem Namen ScriptRunner.exe, die im App-V-Client enthalten ist.
Verwenden mehrerer Skripts für einen einzelnen Ereignistrigger
Übergeben Sie jedes Skript, das Sie ausführen möchten, dieses Skript als Argument an die ScriptRunner.exe Anwendung. Die Anwendung führt jedes Skript separat aus, zusammen mit den Argumenten, die Sie für jedes Skript angeben. Verwenden Sie nur ein Skript (ScriptRunner.exe) pro Trigger.
Hinweis
Es wird empfohlen, zuerst die Multiskriptzeile an einer Eingabeaufforderung auszuführen, um sicherzustellen, dass alle Argumente ordnungsgemäß erstellt wurden, bevor Sie sie der Bereitstellungskonfigurationsdatei hinzufügen.
Beispielbeschreibungen für Skripts und Parameter
Ändern Sie mithilfe der folgenden Beispieldatei und -tabelle die Bereitstellungs- oder Benutzerkonfigurationsdatei, um die Skripts hinzuzufügen, die Sie ausführen möchten.
<MachineScripts>
<AddPackage>
<Path>ScriptRunner.exe</Path>
<Arguments>
-appvscript script1.exe arg1 arg2 –appvscriptrunnerparameters –wait –timeout=10
-appvscript script2.vbs arg1 arg2
-appvscript script3.bat arg1 arg2 –appvscriptrunnerparameters –wait –timeout=30 –rollbackonerror
</Arguments>
<Wait timeout=”40” RollbackOnError=”true”/>
</AddPackage>
</MachineScripts>
| Parameter in der Beispieldatei | Beschreibung |
|---|---|
<AddPackage> |
Der Name des Ereignistriggers, für den Sie ein Skript ausführen, z. B. beim Hinzufügen oder Veröffentlichen eines Pakets. |
ScriptRunner.exe |
Die im App-V-Client enthaltene Skriptstartprogrammanwendung. Obwohl ScriptRunner.exe im App-V-Client enthalten ist, muss sich der Speicherort des App-V-Clients in %path% befinden, sonst wird ScriptRunner nicht ausgeführt. ScriptRunner.exebefindet sich in der Regel im Ordner C:\Program Files\Microsoft Application Virtualization\Client. |
-appvscript script1.exe arg1 arg2 –appvscriptrunnerparameters –wait –timeout=10-appvscript script2.vbs arg1 arg2-appvscript script3.bat arg1 arg2 –appvscriptrunnerparameters –wait –timeout=30 -rollbackonerror |
-appvscript– Token, das das eigentliche Skript darstellt, das Sie ausführen möchten.script1.exe– Name des Skripts, das Sie ausführen möchten.arg1 arg2–Argumente für das Skript, das Sie ausführen möchten.-appvscriptrunnerparameters—Token, das die Ausführungsoptionen für script1.exe darstellt.-wait– Token, das ScriptRunner anweist, auf das Ende der Ausführung von script1.exe zu warten, bevor mit dem nächsten Skript fortgefahren wird.-timeout=x—Token, das ScriptRunner informiert, die Ausführung des aktuellen Skripts nach x Sekunden zu beenden. Alle anderen angegebenen Skripts werden weiterhin ausgeführt.-rollbackonerror– Token, das ScriptRunner anweist, die Ausführung aller Skripts zu beenden, die noch nicht ausgeführt wurden, und einen Fehler auf den App-V-Client zurückzusetzen. |
<Wait timeout=”40” RollbackOnError=”true”/> |
Wartet auf den Gesamtabschluss von ScriptRunner.exe. Legen Sie den Timeout-Wert für den Gesamt-Runner so fest, dass er größer oder gleich der Summe der Timeout-Werte der einzelnen Skripte ist. Wenn ein einzelnes Skript einen Fehler gemeldet hat und rollbackonerror auf "True" gesetzt wurde, dann sollte ScriptRunner den Fehler an den App-V Client melden. |
ScriptRunner führt jedes Skript aus, dessen Dateityp mit einer auf dem Computer installierten Anwendung verknüpft ist. Wenn die zugehörige Anwendung fehlt oder der Dateityp des Skripts keiner der Anwendungen des Computers zugeordnet ist, wird das Skript nicht ausgeführt.
Erstellen einer dynamischen Konfigurationsdatei mithilfe einer App-V-Manifestdatei
Sie können die dynamische Konfigurationsdatei mit einer von drei Methoden erstellen: manuell, mithilfe der App-V-Verwaltungskonsole oder durch Sequenzieren eines Pakets, wodurch ein Paket mit zwei Beispieldateien generiert wird.
Weitere Informationen zum Erstellen der Datei mithilfe der App-V-Verwaltungskonsole finden Sie unter Erstellen einer benutzerdefinierten Konfigurationsdatei mithilfe der App-V-Verwaltungskonsole.
Um die Datei manuell zu erstellen, kannst du die in den vorherigen Abschnitten aufgeführten Komponenten in einer einzigen Datei kombinieren. Es wird jedoch empfohlen, die vom Sequencer generierten Dateien anstelle manuell erstellter Dateien zu verwenden.