Informationen zur dynamischen App-V-Konfiguration

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 Dynamische Konfigurationsdatei bearbeiten, wird angepasst, wie ein App-V-Paket für einen Benutzer oder eine Gruppe ausgeführt wird. Daher wird die Paketanpassung bequemer, indem die Notwendigkeit entfällt, Pakete mithilfe der gewünschten Einstellungen neu zuzuweisen, und bietet eine Möglichkeit, Paketinhalte 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 Einstellungen in der grundlegendsten Form (ohne weitere Anpassung). 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
  • Bereitstellungskonfigurationsdatei

Diese .xml-Dateien enthalten Paketeinstellungen, mit denen Sie Pakete anpassen können, ohne sich direkt auf die Pakete zu auswirken. Wenn ein Paket erstellt wird, generiert der Sequencer mithilfe der Paketmanifestdaten automatisch die Standardbereitstellung und Benutzerkonfiguration .xml Dateien. 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, weisen die Pakete dieselben Standardeinstellungen auf, die aus ihrem Manifest stammen. Dieses Ergebnis bietet Ihnen eine paketspezifische Vorlage, um zu beginnen, wenn eine der Standardwerte geändert werden muss.

Hinweis

Die folgenden Informationen können nur verwendet werden, um vom Sequencer generierte Konfigurationsdateien so zu ändern, dass Pakete an bestimmte Benutzer- oder Gruppenanforderungen angepasst werden.

Inhalt der dynamischen Konfigurationsdatei

Alle Ergänzungen, Löschungen und Aktualisierungen in den Konfigurationsdateien müssen in Bezug auf die Standardwerte vorgenommen werden, die durch die Manifestinformationen des Pakets angegeben werden. Die folgende Liste stellt die Beziehung zwischen diesen Dateien in ihrer Leseart dar, von der meisten bis zur geringsten Rangfolge:

  • Benutzerkonfigurationsdatei .xml
  • Bereitstellungskonfigurationsdatei .xml
  • Paketmanifest

Das erste Element stellt dar, was zuletzt gelesen wird. Daher hat der Inhalt Vorrang. Alle Pakete enthalten standardmäßig Standardeinstellungen aus dem Paketmanifest und stellen diese bereit, haben aber auch die geringste Priorität. Wenn Sie eine Bereitstellungskonfiguration .xml Datei mit benutzerdefinierten Einstellungen anwenden, überschreibt sie die Standardwerte des Paketmanifests. Wenn Sie eine Benutzerkonfiguration .xml Datei mit benutzerdefinierten Einstellungen anwenden, bevor die Standardeinstellungen des Paketmanifests außer Kraft gesetzt werden, wird sowohl die Bereitstellungskonfiguration als auch die Standardwerte des Paketmanifests außer Kraft gesetzt.

Es gibt zwei Arten von Konfigurationsdateien:

  • Benutzerkonfigurationsdatei (UserConfig): Ermöglicht ihnen, benutzerdefinierte Einstellungen für ein Paket anzugeben oder zu ändern. 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 auf alle Benutzer angewendet, wenn ein Paket auf einem Computer bereitgestellt wird, auf dem der App-V-Client ausgeführt wird.

Sie können die UserConfig-Datei verwenden, um die Einstellungen für ein Paket für eine bestimmte Gruppe von Benutzern auf einem Computer anzupassen oder Änderungen vorzunehmen, die auf lokale Benutzerspeicherorte wie HKCU angewendet werden. Sie können die DeploymentConfig-Datei verwenden, um die Standardeinstellungen eines Pakets für alle Benutzer auf einem Computer zu ändern oder Änderungen vorzunehmen, die auf globale Speicherorte wie HKEY_LOCAL_MACHINE und den Ordner Alle Benutzer angewendet werden.

Die UserConfig-Datei 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 systemeigene 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 enthält Konfigurationseinstellungen in zwei Abschnitten, einen relativ zum Computerkontext und einen relativ zum Benutzerkontext, der die gleichen Funktionen bereitstellt, die in der vorherigen UserConfig-Liste aufgeführt sind:

  • 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 Computerstandorte konfiguriert werden können, z. B. die Registrierung
  • Produktquell-URL
  • Skripts (nur Computerkontext)
  • Steuerelemente zum Beenden untergeordneter Prozesse

Dateistruktur

Die Struktur der Datei "App-V Dynamic Configuration" wird im folgenden Abschnitt erläutert.

Dynamische Benutzerkonfigurationsdatei

Ein Beispiel für den Header 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.

Text der Dynamischen Benutzerkonfigurationsdatei

Der Text der Dynamischen Benutzerkonfigurationsdatei kann alle in der Manifestdatei definierten App-Erweiterungspunkte sowie die Informationen zum Konfigurieren virtueller Anwendungen enthalten. Es sind vier Unterabschnitte im Text zulässig:

Anwendungen: Allen App-Erweiterungen, die in der Manifestdatei in einem Paket enthalten sind, wird eine Anwendungs-ID zugewiesen, die ebenfalls in der Manifestdatei definiert ist. Dadurch 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, andernfalls 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 werden unter <Subsystems>als Unterknoten 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 Enabled-Attributs aktiviert/deaktiviert werden. In den folgenden Abschnitten werden die verschiedenen Subsysteme und Verwendungsbeispiele beschrieben.

Dateierweiterungen für die dynamische 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. Wenn dieses untergeordnete Element vorhanden ist, ignoriert der Client den Inhalt in der Manifestdatei für dieses Subsystem und verwendet nur den Inhalt in der Konfigurationsdatei.

Beispiele für das Verknüpfungssubsystem

Beispiel 1

Der Inhalt wird ignoriert, wenn der Benutzer die folgende Syntax entweder in der dynamischen Konfigurationsdatei oder der Bereitstellungskonfigurationsdatei definiert hat:

                                     <Shortcuts  Enabled="true">
                                                 <Extensions
                                                  ...
                                                 </Extensions>
                                     </Shortcuts>

Beispiel 2

Inhalte im Manifest werden während 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 Verknüpfungen integriert, wenn der Benutzer die folgende Syntax definiert:

                           <Shortcuts  Enabled="true">
                                                 <Extensions/>
                                     </Shortcuts>

Unterstützte Erweiterungssubsysteme

Verknüpfungen: Dieses Subsystem steuert Verknüpfungen, die in das lokale System integriert werden. Das folgende Beispiel enthält 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 und das Kontextmenü eingerichtet werden sollen. (MIME-Typen können auch mit diesem Subsystem eingerichtet werden.) Ein Beispiel für eine FileType-Zuordnung 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 Protokoll "mailto:".

    <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 die Registrierung als E-Mail-Client, Nachrichtenleser oder Medienplayer und macht die App auf der Benutzeroberfläche "Programmzugriff festlegen" und "Computerstandardeinstellungen" sichtbar. In den meisten Fällen müssen Sie es nur aktivieren und deaktivieren. Es gibt auch ein Steuerelement, mit dem Sie den E-Mail-Client nur für den Fall aktivieren oder deaktivieren können, dass alle anderen Clients unverändert bleiben sollen.

    <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 mit diesem Subsystem die App ö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, lokale COM-Server zu registrieren. Der Modus kann Integration, Isoliert oder Aus sein. Wenn Isol.

    <COM Mode="Isolated"/>

Andere Einstellungen für die Dynamische Benutzerkonfigurationsdatei

Zusätzlich zu 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 sauber, nachdem die Anwendung beendet wurde. Ein Beispielskript finden Sie in einer Beispielausgabe der Benutzerkonfigurationsdatei, die vom Sequencer ausgegeben wird. Weitere Informationen zu den verschiedenen Triggern, die Sie zum Einrichten von Skripts verwenden können, finden Sie im Abschnitt Skripts .

Konfigurationsdatei für die dynamische Bereitstellung

Konfigurationsdateiheader für die dynamische Bereitstellung

Der Header 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.

Text der Konfigurationsdatei für die dynamische Bereitstellung

Der Text der Bereitstellungskonfigurationsdatei enthält zwei Abschnitte:

  • Der Abschnitt Benutzerkonfiguration lässt den gleichen Inhalt zu wie die im vorherigen Abschnitt beschriebene Benutzerkonfigurationsdatei. 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 ebenfalls eine Benutzerkonfigurationsdatei bereitgestellt. Wenn auch eine UserConfig-Datei bereitgestellt wird, wird sie 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 und nicht für einen bestimmten Benutzer auf dem Computer konfiguriert werden können. Beispielsweise HKEY_LOCAL_MACHINE Registrierungsschlüssel in 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 und nicht für einen bestimmten Benutzer auf dem Computer festgelegt werden können, z. B. für 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 unter <Subsystems>angeordnet:

    <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 Steuerelemente und Einstellungen der Benutzerkonfigurationserweiterung gelten auch für die Steuerelemente und Einstellungen in Computerkonfiguration.

Anwendungsfunktionen

Die Erweiterung "Anwendungsfunktionen" wird von Standardprogrammen in der Windows-Betriebssystemschnittstelle verwendet. Sie ermöglicht es einer Anwendung, sich als fähig zu registrieren, bestimmte Dateierweiterungen zu öffnen, als Anwärter auf den Internetbrowserslot des Startmenüs und als fähig, bestimmte Windows-MIME-Typen zu öffnen. Diese Erweiterung macht die virtuelle Anwendung auch auf 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>

Andere Einstellungen für die Konfigurationsdatei für die dynamische Bereitstellung

Sie können neben 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 Szenarien mit Zweigstellen zu unterstützen. Sie ist standardmäßig 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 bei der Bereitstellung, Veröffentlichung oder Entfernung ausgeführt werden. Ein Beispielskript finden Sie in einer beispielbasierten 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: Sie können dieses Subsystem verwenden, um anzugeben, dass die untergeordneten Prozesse einer ausführbaren Anwendungsdatei 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 beschrieben, unter dem sie ausgeführt werden können.

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 Ausführung im System-/Benutzerkontext: (Bereitstellungskonfiguration, Benutzerkonfiguration)
AddPackage X (SYSTEM, nicht verfügbar)
PublishPackage X X (SYSTEM, Benutzer)
UnpublishPackage X X (SYSTEM, Benutzer)
RemovePackage X (SYSTEM, nicht verfügbar)
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 Paketen, 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 Skriptstartprogrammanwendung namens ScriptRunner.exe, die im App-V-Client enthalten ist.

Verwenden mehrerer Skripts für einen einzelnen Ereignistrigger

Übergeben Sie für jedes Skript, das Sie ausführen möchten, dieses Skript als Argument an die ScriptRunner.exe Anwendung. Die Anwendung führt jedes Skript zusammen mit den Argumenten, die Sie für jedes Skript angeben, separat aus. Verwenden Sie nur ein Skript (ScriptRunner.exe) pro Trigger.

Hinweis

Es wird empfohlen, zuerst die Zeile mit mehreren Skripts über eine Eingabeaufforderung auszuführen, um sicherzustellen, dass alle Argumente ordnungsgemäß erstellt wurden, bevor Sie sie der Bereitstellungskonfigurationsdatei hinzufügen.

Beispielskript- und Parameterbeschreibungen

Ä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> Name des Ereignistriggers, für den Sie ein Skript ausführen, z. B. beim Hinzufügen oder Veröffentlichen eines Pakets.
ScriptRunner.exe Die skriptstarter-Anwendung, die im App-V-Client enthalten ist.

Obwohl ScriptRunner.exe im App-V-Client enthalten ist, muss sich der Speicherort des App-V-Clients in %path% befinden, da ScriptRunner nicht ausgeführt werden kann. ScriptRunner.exe befindet sich in der Regel im Ordner C:\Programme\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 angibt, auf den Abschluss 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 angibt, die Ausführung aller Skripts, die noch nicht ausgeführt wurden, zu beenden und einen Fehler auf den App-V-Client zurückzustellen.
<Wait timeout=”40” RollbackOnError=”true”/> Wartet auf den gesamten Abschluss der ScriptRunner.exe.

Legen Sie den Timeoutwert für den Gesamtrunner auf größer oder gleich der Summe der Timeoutwerte für die einzelnen Skripts fest.

Wenn ein einzelnes Skript einen Fehler gemeldet hat und rollbackonerror auf True festgelegt wurde, sollte ScriptRunner den Fehler an den App-V-Client melden.

ScriptRunner führt jedes Skript aus, dessen Dateityp einer auf dem Computer installierten Anwendung zugeordnet ist. Wenn die zugeordnete 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, das ein Paket mit zwei Beispieldateien generiert.

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, können Sie die in den vorherigen Abschnitten aufgeführten Komponenten in einer einzelnen Datei kombinieren. Es wird jedoch empfohlen, vom Sequencer generierte Dateien anstelle manuell erstellter Dateien zu verwenden.