Freigeben über


Informationen zur dynamischen App-V 5.1-Konfiguration

Mit der dynamischen Konfiguration können Sie die dynamische Konfigurationsdatei bearbeiten, um die Ausführung eines App-V 5.1-Pakets für einen Benutzer oder eine Gruppe anzupassen. Durch die Paketanpassung ist es nicht mehr erforderlich, Pakete mithilfe der gewünschten Einstellungen erneut zu verwenden. Es bietet auch eine Möglichkeit, Paketinhalte und benutzerdefinierte Einstellungen unabhängig zu halten.

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 zusätzliche Anpassung).

Wenn ein Paket erstellt wird, generiert der Sequencer die Standardbereitstellung und Benutzerkonfiguration .xml Dateien automatisch mithilfe der Paketmanifestdaten. Daher spiegeln diese generierten Dateien die Standardeinstellungen wider, die während der Sequenzierung konfiguriert wurden. Wenn Sie diese Dateien auf ein Paket in der vom Sequencer generierten Form anwenden, verfügen die Pakete über die gleichen Standardeinstellungen, die aus ihrem Manifest stammen.

Verwenden Sie diese generierten Dateien, um ggf. Änderungen vorzunehmen, die sich nicht direkt auf das Paket auswirken. Wenn Sie die Konfigurationsdateien hinzufügen, löschen oder aktualisieren möchten, nehmen Sie Ihre Änderungen an den Standardwerten in den Manifestinformationen vor.

Tipp

Die Reihenfolge, in der die Dateien gelesen werden, sind:

  • UserConfig.xml
  • DeploymentConfig.xml
  • Manifest

Der erste Eintrag stellt dar, was zuletzt gelesen wird. Daher hat der Inhalt Vorrang, und alle Pakete enthalten standardmäßig Standardeinstellungen aus dem Paketmanifest und stellen diese bereit.

  1. Wenn Sie die DeploymentConfig.xml Datei anpassen und die benutzerdefinierten Einstellungen anwenden, werden die Standardeinstellungen im Paketmanifest überschrieben.
  2. Wenn Sie die UserConfig.xml anpassen und die benutzerdefinierten Einstellungen anwenden, werden die Standardeinstellungen sowohl für die Bereitstellungskonfiguration als auch für das Paketmanifest außer Kraft gesetzt.

Inhalt der Benutzerkonfigurationsdatei (UserConfig.xml)

Die UserConfig-Datei enthält Konfigurationseinstellungen, die für einen bestimmten Benutzer angewendet werden, wenn das Paket auf einem Computer bereitgestellt wird, auf dem der App-V 5.1-Client ausgeführt wird. Diese Einstellungen wirken sich nicht auf andere Benutzer auf dem Client aus.

Verwenden Sie die UserConfig-Datei, um benutzerdefinierte Einstellungen für ein Paket anzugeben oder zu ändern:

  • Erweiterungen, die pro Benutzer in das systemeigene System integriert sind: Verknüpfungen, Dateitypzuordnungen, URL-Protokolle, AppPaths, Softwareclients und COM
  • Virtuelle Subsysteme: Anwendungsobjekte, Umgebungsvariablen, Registrierungsänderungen, Dienste und Schriftarten
  • Skripts (nur Benutzerkontext)
  • Verwaltungsautorität (zur Kontrolle der Koexistenz des Pakets mit App-V 4.6)

Der Header einer dynamischen Benutzerkonfigurationsdatei sieht wie folgt aus:

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

Textkörper

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

  1. Anwendungen
  2. Subsysteme
  3. UserScripts
  4. ManagingAuthority

Anwendungen

Allen App-Erweiterungen, die in der Manifestdatei in einem Paket enthalten sind, ist eine Anwendungs-ID zugewiesen, die Sie in der Manifestdatei finden. Mit der Anwendungs-ID 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, die als Unterknoten angeordnet sind.

<UserConfiguration PackageId="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="http://schemas.microsoft.com/appv/2010/userconfiguration">

<Subsystems>

..

</Subsystems>

..

</UserConfiguration>

Sie können jedes Subsystem mithilfe des Enabled-Attributs aktivieren oder deaktivieren.

Extensions

Einige Subsysteme (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 Sie beispielsweise Verknüpfungen aktivieren, verwendet der Client standardmäßig die im Manifest enthaltenen Tastenkombinationen. Jedes Erweiterungssubsystem kann einen Erweiterungsknoten <> 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:

  • Wenn Sie dies in der Benutzer- oder Bereitstellungskonfigurationsdatei definieren, wird der Inhalt im Manifest ignoriert.

    
    <Shortcuts  Enabled="true"\>
    
    <Extensions>
    
    ...
    
    </Extensions>
    
    </Shortcuts>
    
  • Wenn Sie nur Folgendes definieren, wird der Inhalt im Manifest während der Veröffentlichung integriert.

    
    <Shortcuts  Enabled="true"/>
    
  • Wenn Sie Folgendes definieren, werden alle Verknüpfungen im Manifest weiterhin ignoriert. Anders ausgedrückt: Es werden keine Tastenkombinationen integriert.

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

Unterstützte Erweiterungssubsysteme:

Das Subsystem der Verknüpfungserweiterung steuert, welche Verknüpfungen in das lokale System integriert werden.


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

Das Erweiterungssubsystem File-Type Associates ordnet Dateitypen Programmen zu, die standardmäßig geöffnet werden sollen, und richtet das Kontextmenü ein.

Tipp

Sie können das Subsystem mit MIME-Typen einrichten.


<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-000000FF1CE}\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>

Das Erweiterungssubsystem für URL-Protokolle steuert die URL-Protokolle, die in die lokale Registrierung des Clientcomputers integriert sind, z. B. mailto:.


<URLProtocols Enabled="true">

<Extensions>

<Extension Category="AppV.URLProtocol">

<URLProtocol>

  <Name>mailto</Name>

  <ApplicationURLProtocol>

  <DefaultIcon>[{ProgramFilesX86}]\MicrosoftContoso\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>

Das Erweiterungssubsystem für Softwareclients ermöglicht es der App, sich als E-Mail-Client, Nachrichtenleser und Media Player zu registrieren, und macht die App in den Benutzeroberflächen Programmzugriff festlegen und Computerstandardeinstellungen sichtbar. In den meisten Fällen müssen Sie es nur aktivieren und deaktivieren. Es gibt auch ein Steuerelement zum Aktivieren und Deaktivieren des E-Mail-Clients, insbesondere wenn die anderen Clients mit Ausnahme dieses Clients weiterhin aktiviert sein sollen.


<SoftwareClients Enabled="true">

  <ClientConfiguration EmailEnabled="false" />

</SoftwareClients>

Das AppPaths-Erweiterungssubsystem öffnet Apps, die mit einem Anwendungspfad registriert sind. Wenn contoso.exe z. B. den Apppath-Namen myapp hat, können Benutzer myapp über das Ausführungsmenü eingeben und contoso.exe öffnen.


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

Das COM-Erweiterungssubsystem ermöglicht eine Anwendung, die auf lokalen COM-Servern registriert ist. Der Modus kann wie folgt sein:

  • Integration
  • Isoliert
  • Aus

<COM Mode="Isolated"/>

Virtuelle Kernelobjekte


<Objects Enabled="false" />

Die virtuelle Registrierung legt eine Registrierung in der virtuellen Registrierung innerhalb von HKCU fest.


<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

Verwenden Sie UserScripts, um die virtuelle Umgebung einzurichten oder zu ändern. Sie können auch Skripts zum Zeitpunkt der Bereitstellung oder zum Bereinigen der Umgebung ausführen, nachdem die Anwendung beendet wurde. Ein Beispielskript finden Sie in der vom Sequencer generierten Benutzerkonfigurationsdatei. Der Abschnitt Skripts unten enthält weitere Informationen zu den verschiedenen Triggern, die verwendet werden können.

ManagingAuthority

Verwenden Sie ManagingAuthority, wenn zwei Versionen Ihres Pakets gleichzeitig auf demselben Computer vorhanden sind: eine für App-V 4.6 und eine andere auf App-V 5.0. Damit App-V vNext App-V 4.6-Erweiterungspunkte für das benannte Paket übernehmen kann, geben Sie Folgendes in die UserConfig-Datei ein (wobei PackageName die Paket-GUID in App-V 4.6 ist:


<ManagingAuthority TakeoverExtensionPointsFrom46="true" PackageName="032630c0-b8e2-417c-acef-76fc5297fe81" />

Bereitstellungskonfigurationsdatei (DeploymentConfig.xml)

Die DeploymentConfig-Datei stellt Konfigurationseinstellungen für den Computerkontext und den Benutzerkontext bereit und bietet die gleichen Funktionen, die in der UserConfig-Datei aufgeführt sind. Die Einstellung wird angewendet, wenn das Paket auf einem Computer bereitgestellt wird, auf dem der App-V 5.1-Client ausgeführt wird.

Verwenden Sie die DeploymentConfig-Datei, um benutzerdefinierte Einstellungen für ein Paket anzugeben oder zu ändern:

  • Alle UserConfig-Einstellungen
  • Erweiterungen, die nur global für alle Benutzer angewendet werden können
  • Virtuelle Subsysteme für globale Computerstandorte, z. B. Registrierung
  • Produktquell-URL
  • Skripts (nur Computerkontext)
  • Steuerelemente zum Beenden untergeordneter Prozesse

Kopfzeile

Der Header einer Konfigurationsdatei für die dynamische Bereitstellung sieht wie folgt aus:

<?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, der in der Manifestdatei vorhanden ist.

Textkörper

Der Text der Konfigurationsdatei für die dynamische Bereitstellung enthält zwei Abschnitte:

  • UserConfiguration: Ermöglicht den gleichen Inhalt wie die im vorherigen Abschnitt beschriebene Benutzerkonfigurationsdatei. Wenn Sie das Paket für einen Benutzer veröffentlichen, setzen alle App-Erweiterungskonfigurationseinstellungen in diesem Abschnitt die entsprechenden Einstellungen im Manifest innerhalb des Pakets außer Kraft, es sei denn, Sie geben eine Benutzerkonfigurationsdatei an. 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. Weitere Informationen finden Sie unter Inhalt der Benutzerkonfigurationsdatei (UserConfig.xml).

  • MachineConfiguration: 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>

UserConfiguration

Informationen zu den Einstellungen für diesen Abschnitt finden Sie unter Inhalt der Benutzerkonfigurationsdatei (UserConfig.xml).

MachineConfiguration

Verwenden Sie den Abschnitt MachineConfiguration, um Informationen für einen gesamten Computer zu konfigurieren. nicht für einen bestimmten Benutzer auf dem Computer. Beispielsweise HKEY_LOCAL_MACHINE Registrierungsschlüssel in der virtuellen Registrierung. Unter diesem Element sind vier Unterabschnitte zulässig:

  1. Subsysteme
  2. ProductSourceURLOptOut
  3. MachineScripts
  4. TerminateChildProcess

Subsysteme

AppExtensions und andere Subsysteme, die als Unterknoten angeordnet sind.


<MachineConfiguration>

  <Subsystems>

  …

  </Subsystems>

…

</MachineConfiguration>

Sie können jedes Subsystem mithilfe des Enabled-Attributs aktivieren oder deaktivieren.

Extensions

Einige Subsysteme (Erweiterungssubsysteme) steuern Erweiterungen. Das Subsystem ist Anwendungsfunktionen, die von Standardprogrammen verwendet werden. Für diesen Erweiterungstyp muss das Paket für die Integration in das lokale System global veröffentlicht werden. Die gleichen Regeln für Steuerelemente und Einstellungen, die für die Erweiterungen in der Benutzerkonfiguration gelten, gelten auch für die Im Abschnitt MachineConfiguration.

Anwendungsfunktionen: Standardmäßig werden Programme verwendet, die es einer Anwendung ermöglichen, sich selbst als zu registrieren:

  • Fähig zum Öffnen bestimmter Dateierweiterungen
  • Ein Anwärter auf den Startmenü-Internetbrowserslot
  • In der Lage, bestimmte Windows-MIME-Typen zu öffnen

Diese Erweiterung macht 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>

Unterstützte Erweiterungssubsysteme:

Das Vm Wide Virtual Registry-Erweiterungssubsystem legt einen Registrierungsschlüssel in der virtuellen Registrierung in HKEY_Local_Machine fest.


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

Machine Wide Virtual Kernel Objects


<Objects>

<NotIsolate>

   <Object Name="testObject" />

 </NotIsolate>

</Objects>

ProductSourceURLOptOut

Verwenden Sie ProductSourceURLOptOut, um anzugeben, dass die URL für das Paket global über PackageSourceRoot geändert werden kann (zur Unterstützung von Filialenszenarien). Änderungen werden beim nächsten Start wirksam.


<MachineConfiguration>

  ...

  <ProductSourceURLOptOut Enabled="true" />

  ...

</MachineConfiguration>

MachineScripts

Das Paket kann so konfiguriert werden, dass Skripts zum Zeitpunkt der Bereitstellung, Veröffentlichung oder Entfernung ausgeführt werden. Ein Beispielskript finden Sie in der vom Sequencer generierten Bereitstellungskonfigurationsdatei.

Der Abschnitt Skripts unten enthält weitere Informationen zu den verschiedenen Triggern, die verwendet werden können.

TerminateChildProcess

Es kann eine ausführbare Anwendungsdatei angegeben werden, deren untergeordnete Prozesse beendet werden, wenn der EXE-Prozess der Anwendung 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 5.1 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 5.0 oder höher konvertieren. Um die Verwendung mehrerer Skripts zu ermöglichen, verwendet App-V 5.1 eine Skriptstartprogrammanwendung namens ScriptRunner.exe, die als Teil der App-V-Clientinstallation installiert wird.

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

<AddPackage>

Name des Ereignistriggers, für den Sie ein Skript ausführen, z. B. Hinzufügen eines Pakets oder Veröffentlichen eines Pakets.

<Pfad>ScriptRunner.exe</Path>

Die Skriptstartprogrammanwendung, die im Rahmen der App-V-Clientinstallation installiert wird.

Hinweis

Obwohl ScriptRunner.exe als Teil des App-V-Clients installiert ist, muss sich der Speicherort des App-V-Clients in %path% befinden, da ScriptRunner nicht ausgeführt wird. ScriptRunner.exe befindet sich in der Regel im Ordner C:FilesApplication Virtualization.

<Argumente>

-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 informiert, auf die 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 informiert, 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, würde 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 Anwendung auf dem Computer zugeordnet ist, wird das Skript nicht ausgeführt.

Erstellen einer dynamischen Konfigurationsdatei mithilfe einer App-V 5.1-Manifestdatei

Sie können die dynamische Konfigurationsdatei mit einer von drei Methoden erstellen: entweder manuell über die App-V 5.1-Verwaltungskonsole oder durch Sequenzieren eines Pakets, das zwei Beispieldateien generiert. Weitere Informationen zum Erstellen der Datei mithilfe der App-V 5.1-Verwaltungskonsole finden Sie unter Erstellen einer benutzerdefinierten Konfigurationsdatei mithilfe der App-V 5.1-Verwaltungskonsole.

Um die Datei manuell zu erstellen, können die obigen Informationen in den vorherigen Abschnitten in einer einzelnen Datei kombiniert werden. Es wird empfohlen, vom Sequencer generierte Dateien zu verwenden.