À propos de la configuration dynamique App-V

S’applique à :

  • Windows 10
  • Windows 11

Vous pouvez utiliser la configuration dynamique pour personnaliser un package App-V pour un utilisateur. Cet article vous explique comment créer ou modifier un fichier de configuration dynamique existant.

Lorsque vous modifiez le fichier de configuration dynamique, il personnalise la façon dont un package App-V s’exécute pour un utilisateur ou un groupe. Par conséquent, la personnalisation du package est rendue plus pratique en supprimant la nécessité de rééquencer les packages à l’aide des paramètres souhaités et offre un moyen de garder le contenu du package et les paramètres personnalisés indépendants.

Avancé : configuration dynamique

Les packages d’application virtuelle contiennent un manifeste qui fournit toutes les informations de base pour le package. Ces informations incluent les valeurs par défaut pour les paramètres du package et déterminent les paramètres sous la forme la plus simple (sans autre personnalisation). Si vous souhaitez ajuster ces valeurs par défaut pour un utilisateur ou un groupe particulier, vous pouvez créer et modifier les fichiers suivants :

  • Fichier de configuration utilisateur
  • Fichier de configuration de déploiement

Ces fichiers .xml spécifient des paramètres de package vous permettent de personnaliser les packages sans affecter directement les packages. Lorsqu’un package est créé, le séquenceur génère automatiquement les fichiers de déploiement et de configuration utilisateur par défaut .xml à l’aide des données du manifeste du package. Ces fichiers de configuration générés automatiquement reflètent les paramètres par défaut du package qui ont été configurés pendant le séquencement. Si vous appliquez ces fichiers de configuration à un package dans le formulaire généré par le séquenceur, les packages ont les mêmes paramètres par défaut que ceux de leur manifeste. Ce résultat vous fournit un modèle spécifique au package pour commencer si l’une des valeurs par défaut doit être modifiée.

Remarque

Les informations suivantes peuvent uniquement être utilisées pour modifier les fichiers de configuration générés par sequencer afin de personnaliser les packages afin de répondre à des exigences spécifiques des utilisateurs ou des groupes.

Contenu du fichier de configuration dynamique

Tous les ajouts, suppressions et mises à jour dans les fichiers de configuration doivent être effectués par rapport aux valeurs par défaut spécifiées par les informations du manifeste du package. La liste suivante représente la relation entre ces fichiers dans la façon dont ils seront lus, de la plus à la priorité la plus minimale :

  • Fichier de .xml de configuration utilisateur
  • Fichier d'.xml configuration du déploiement
  • Manifeste de package

Le premier élément représente ce qui sera lu en dernier. Par conséquent, son contenu est prioritaire. Tous les packages contiennent et fournissent par nature les paramètres par défaut du manifeste de package, mais il a également la priorité la moins élevée. Si vous appliquez un fichier de configuration de déploiement .xml avec des paramètres personnalisés, il remplace les valeurs par défaut du manifeste de package. Si vous appliquez un fichier de .xml de configuration utilisateur avec des paramètres personnalisés avant le remplacement des valeurs par défaut du manifeste de package, il remplace la configuration de déploiement et les valeurs par défaut du manifeste de package.

Il existe deux types de fichiers de configuration :

  • Fichier de configuration utilisateur (UserConfig) : vous permet de spécifier ou de modifier des paramètres personnalisés pour un package. Ces paramètres sont appliqués à un utilisateur spécifique lorsque le package est déployé sur un ordinateur exécutant le client App-V.
  • Fichier de configuration de déploiement (DeploymentConfig) : vous permet de spécifier ou de modifier les paramètres par défaut d’un package. Ces paramètres sont appliqués à tous les utilisateurs lorsqu’un package est déployé sur un ordinateur exécutant le client App-V.

Vous pouvez utiliser le fichier UserConfig pour personnaliser les paramètres d’un package pour un ensemble spécifique d’utilisateurs sur un ordinateur ou apporter des modifications qui seront appliquées à des emplacements d’utilisateurs locaux tels que HKCU. Vous pouvez utiliser le fichier DeploymentConfig pour modifier les paramètres par défaut d’un package pour tous les utilisateurs sur un ordinateur ou apporter des modifications qui seront appliquées à des emplacements globaux tels que HKEY_LOCAL_MACHINE et le dossier Tous les utilisateurs.

Le fichier UserConfig fournit des paramètres de configuration que vous pouvez appliquer à un seul utilisateur sans affecter d’autres utilisateurs sur un client :

  • Extensions qui seront intégrées au système natif par utilisateur : raccourcis, associations File-Type, protocoles d’URL, AppPaths, clients logiciels et COM.
  • Sous-systèmes virtuels : objets d’application, variables d’environnement, modifications du Registre, services et polices.
  • Scripts (contexte utilisateur uniquement).

Le fichier DeploymentConfig fournit les paramètres de configuration dans deux sections, l’une relative au contexte de l’ordinateur et l’autre relative au contexte utilisateur fournissant les mêmes fonctionnalités répertoriées dans la liste UserConfig précédente :

  • Tous les paramètres UserConfig de la section précédente de cette rubrique
  • Extensions qui ne peuvent être appliquées globalement que pour tous les utilisateurs
  • Sous-systèmes virtuels qui peuvent être configurés pour des emplacements d’ordinateurs globaux, tels que le Registre
  • URL de la source du produit
  • Scripts (contexte machine uniquement)
  • Contrôles pour arrêter les processus enfants

Structure de fichiers

La structure du fichier de configuration dynamique App-V est expliquée dans la section suivante.

Fichier de configuration utilisateur dynamique

Voici un exemple d’en-tête d’un fichier de configuration utilisateur dynamique :

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

PackageId est la même valeur que celle qui existe dans le fichier manifeste.

Corps du fichier de configuration utilisateur dynamique

Le corps du fichier de configuration utilisateur dynamique peut inclure tous les points d’extension d’application définis dans le fichier manifeste, ainsi que les informations permettant de configurer les applications virtuelles. Quatre sous-sections sont autorisées dans le corps :

Applications : toutes les extensions d’application contenues dans le fichier manifeste d’un package sont affectées avec un ID d’application, qui est également défini dans le fichier manifeste. Cela vous permet d’activer ou de désactiver toutes les extensions d’une application donnée dans un package. L’ID d’application doit exister dans le fichier manifeste, sinon il sera ignoré.

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

Sous-systèmes : Les sous-systèmes AppExtensions et autres sous-systèmes sont organisés en tant que sous-nœuds sous <Subsystems>, comme illustré dans l’exemple suivant.

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

Chaque sous-système peut être activé/désactivé à l’aide de l’attribut Enabled . Les sections suivantes décrivent les différents sous-systèmes et exemples d’utilisation.

Extensions de fichier de configuration utilisateur dynamique

Les sous-systèmes d’extension contrôlent les extensions. Ces sous-systèmes sont des raccourcis, des associations File-Type, des protocoles d’URL, des apppaths, des clients logiciels et COM.

Les sous-systèmes d’extension peuvent être activés et désactivés indépendamment du contenu.  Par conséquent, si les raccourcis sont activés, le client utilise les raccourcis contenus dans le manifeste par défaut. Chaque sous-système d’extension peut contenir un <Extensions> nœud. Si cet élément enfant est présent, le client ignore le contenu du fichier manifeste de ce sous-système et utilise uniquement le contenu du fichier de configuration.

Exemples du sous-système de raccourcis

Exemple 1

Le contenu est ignoré si l’utilisateur a défini les syntaxes suivantes dans le fichier de configuration dynamique ou de déploiement :

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

Exemple 2

Le contenu du manifeste sera intégré lors de la publication si l’utilisateur a défini uniquement la syntaxe suivante :


                                    `<Shortcuts  Enabled="true"/>`

Exemple 3

Tous les raccourcis du manifeste sont ignorés et aucun raccourci n’est intégré si l’utilisateur définit les syntaxes suivantes :

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

Sous-systèmes d’extension pris en charge

Raccourcis : ce sous-système contrôle les raccourcis qui seront intégrés au système local. L’exemple suivant comporte deux raccourcis :

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

Associations de types de fichiers : associe des types de fichiers à des programmes à ouvrir par défaut et à configurer le menu contextuel. (Les types MIME peuvent également être configurés avec ce sous-système.) Voici un exemple d’association FileType :

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

Protocoles d’URL : ce sous-système contrôle les protocoles d’URL intégrés dans le registre local de l’ordinateur client. L’exemple suivant illustre le protocole « 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>

Clients logiciels : permet à l’application de s’inscrire en tant que client de messagerie, lecteur d’actualités ou lecteur multimédia et rend l’application visible dans l’interface utilisateur Définir l’accès au programme et les paramètres par défaut de l’ordinateur. Dans la plupart des cas, il vous suffit de l’activer et de le désactiver. Il existe également un contrôle qui vous permet d’activer ou de désactiver le client de messagerie uniquement si vous souhaitez que tous les autres clients restent tels quels.

    <SoftwareClients Enabled="true">
      <ClientConfiguration EmailEnabled="false" />
    </SoftwareClients>

AppPaths : si une application, telle qu'contoso.exe, est inscrite avec le nom apppath « myapp », ce sous-système vous permet d’ouvrir l’application en entrant « myapp » dans le menu Exécuter.

    <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 : permet à une application d’inscrire des serveurs COM locaux. Le mode peut être Intégration, Isolé ou Désactivé. Quand Isol.

    <COM Mode="Isolated"/>

Autres paramètres pour le fichier de configuration utilisateur dynamique

En plus des extensions, les autres sous-systèmes suivants peuvent être activés/désactivés et modifiés.

Objets de noyau virtuel

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

Système de fichiers virtuel

          <FileSystem Enabled="true" />

Polices virtuelles

          <Fonts Enabled="false" />

Variables d’environnement virtuel

    <EnvironmentVariables Enabled="true">
    <Include>
           <Variable Name="UserPath" Value="%path%;%UserProfile%" />
           <Variable Name="UserLib" Value="%UserProfile%\\ABC" />
           </Include>
          <Delete>
           <Variable Name="lib" />
            </Delete>
            </EnvironmentVariables>

Services virtuels

          <Services Enabled="false" />

UserScripts

Les scripts peuvent être utilisés pour configurer ou modifier l’environnement virtuel et exécuter des scripts lors du déploiement ou de la suppression, avant l’exécution d’une application, ou ils peuvent propre l’environnement une fois l’application terminée. Reportez-vous à un exemple de sortie de fichier de configuration utilisateur par sequencer pour voir un exemple de script. Pour plus d’informations sur les différents déclencheurs que vous pouvez utiliser pour configurer des scripts, consultez la section Scripts .

Fichier de configuration du déploiement dynamique

En-tête du fichier de configuration du déploiement dynamique

L’en-tête d’un fichier configuration de déploiement doit ressembler à ceci :

<?xml version="1.0" encoding="utf-8"?><DeploymentConfiguration PackageId="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="http://schemas.microsoft.com/appv/2010/deploymentconfiguration">

PackageId est la même valeur que celle qui existe dans le fichier manifeste.

Corps du fichier de configuration du déploiement dynamique

Le corps du fichier de configuration de déploiement comprend deux sections :

  • La section Configuration utilisateur autorise le même contenu que le fichier de configuration utilisateur décrit dans la section précédente. Lorsque le package est publié sur un utilisateur, les paramètres de configuration appextensions de cette section remplacent les paramètres correspondants dans le manifeste dans le package, sauf si un fichier de configuration utilisateur est également fourni. Si un fichier UserConfig est également fourni, il sera utilisé à la place des paramètres utilisateur dans le fichier de configuration de déploiement. Si le package est publié globalement, seul le contenu du fichier de configuration de déploiement est utilisé en combinaison avec le manifeste.
  • La section Configuration de la machine contient des informations qui ne peuvent être configurées que pour une machine entière, et non pour un utilisateur spécifique sur l’ordinateur. Par exemple, HKEY_LOCAL_MACHINE clés de Registre dans le VFS.
<DeploymentConfiguration PackageId="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="http://schemas.microsoft.com/appv/2010/deploymentconfiguration">
<UserConfiguration>
..
</UserConfiguration>
<MachineConfiguration>
..
</MachineConfiguration>
..
</MachineConfiguration>
</DeploymentConfiguration>

Configuration utilisateur : pour plus d’informations sur cette section, consultez Configuration utilisateur dynamique.

Configuration de l’ordinateur : la section Configuration de l’ordinateur du fichier de configuration de déploiement configure des informations qui ne peuvent être définies que pour un ordinateur entier, et non pour un utilisateur spécifique sur l’ordinateur, comme les clés de Registre HKEY_LOCAL_MACHINE dans le registre virtuel. Cet élément peut avoir les quatre sous-sections suivantes.

Sous-systèmes

Les appExtensions et autres sous-systèmes sont organisés en tant que sous-nœuds sous <Subsystems>:

    <MachineConfiguration>
      <Subsystems>
      ..
      </Subsystems>
    ..
    </MachineConfiguration>

La section suivante décrit les différents sous-systèmes et exemples d’utilisation.

Extensions

Certains sous-systèmes (sous-systèmes d’extension) contrôlent les extensions qui ne peuvent s’appliquer qu’à tous les utilisateurs. Le sous-système est des fonctionnalités d’application. Étant donné que ce sous-système ne peut s’appliquer qu’à tous les utilisateurs, le package doit être publié globalement pour que ce type d’extension soit intégré au système local. Les règles pour les contrôles et paramètres d’extension User Configuration s’appliquent également à ceux de Machine Configuration.

Fonctionnalités de l’application

L’extension Fonctionnalités d’application est utilisée par les programmes par défaut dans l’interface du système d’exploitation Windows . il permet à une application de s’inscrire comme capable d’ouvrir certaines extensions de fichier, en tant que prétendant pour l’emplacement du navigateur Internet du menu Démarrer et comme capable d’ouvrir certains types MIME Windows. Cette extension rend également l’application virtuelle visible dans l’interface utilisateur Définir les programmes par défaut.

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

Autres paramètres pour le fichier de configuration du déploiement dynamique

Vous pouvez modifier d’autres sous-systèmes en plus des extensions :

  • Registre virtuel à l’échelle de l’ordinateur : utilisez ce sous-système lorsque vous souhaitez définir une clé de Registre dans le registre virtuel dans HKEY_Local_Machine.
    <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>
  • Objets de noyau virtuel à l’échelle de l’ordinateur
    <Objects>
    <NotIsolate>
       <Object Name="testObject" />
     </NotIsolate>
    </Objects>
  • ProductSourceURLOptOut : indique si l’URL du package peut être modifiée globalement via PackageSourceRoot pour prendre en charge les scénarios de succursale. Il est défini sur False par défaut. Les modifications apportées à la valeur prennent effet au prochain lancement.
    <MachineConfiguration>
      ..
      <ProductSourceURLOptOut Enabled="true" />
      ..
    </MachineConfiguration>
  • MachineScripts : le package peut être configuré pour exécuter des scripts lors du déploiement, de la publication ou de la suppression. Pour voir un exemple de script, consultez un exemple de fichier de configuration de déploiement généré par le séquenceur. La section suivante fournit plus d’informations sur les différents déclencheurs que vous pouvez utiliser pour configurer des scripts.

  • TerminateChildProcess : vous pouvez utiliser ce sous-système pour spécifier que les processus enfants d’un exécutable d’application seront arrêtés à l’arrêt du processus application.exe.

    <MachineConfiguration>
      ..
      <TerminateChildProcesses>
        <Application Path="\[{PackageRoot}\]\\Contoso\\ContosoApp.EXE" />
        <Application Path="\[{PackageRoot}\]\\LitView\\LitViewBrowser.exe" />
        <Application Path="\[{ProgramFilesX86}\]\\Microsoft Contoso\\Contoso\\contosomail.EXE" />
      </TerminateChildProcesses>
      ..
    </MachineConfiguration>

Scripts

Le tableau suivant décrit les différents événements de script et le contexte dans lequel ils peuvent être exécutés.

Durée d’exécution du script Peut être spécifié dans Configuration du déploiement Peut être spécifié dans Configuration utilisateur Peut s’exécuter dans l’environnement virtuel du package Peut être exécuté dans le contexte d’une application spécifique S’exécute dans le contexte système/utilisateur : (Configuration du déploiement, Configuration utilisateur)
AddPackage X (SYSTEM, N/A)
PublishPackage X X (SYSTEM, User)
UnpublishPackage X X (SYSTEM, User)
RemovePackage X (SYSTEM, N/A)
StartProcess X X X X (Utilisateur, Utilisateur)
ExitProcess X X X (Utilisateur, Utilisateur)
StartVirtualEnvironment X X X (Utilisateur, Utilisateur)
TerminateVirtualEnvironment X X (Utilisateur, Utilisateur)

Utilisation de plusieurs scripts sur un seul déclencheur d’événement

App-V prend en charge l’utilisation de plusieurs scripts sur un déclencheur d’événement unique pour les packages App-V, y compris les packages que vous convertissez d’App-V 4.6 en client App-V pour Windows. Pour permettre l’utilisation de plusieurs scripts, App-V utilise une application de lanceur de scripts, nommée ScriptRunner.exe, qui est incluse dans le client App-V.

Comment utiliser plusieurs scripts sur un même déclencheur d’événement

Pour chaque script que vous souhaitez exécuter, transmettez ce script en tant qu’argument à l’application ScriptRunner.exe. L’application exécute chaque script séparément, ainsi que les arguments que vous spécifiez pour chaque script. Utilisez un seul script (ScriptRunner.exe) par déclencheur.

Remarque

Nous vous recommandons d’exécuter d’abord la ligne multi-script à partir d’une invite de commandes pour vous assurer que tous les arguments sont générés correctement avant de les ajouter au fichier de configuration de déploiement.

Exemples de descriptions de script et de paramètre

À l’aide de l’exemple de fichier et de la table suivants, modifiez le fichier de configuration de déploiement ou d’utilisateur pour ajouter les scripts que vous souhaitez exécuter.

<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>
Paramètre dans l’exemple de fichier Description
<AddPackage> Nom du déclencheur d’événements pour lequel vous exécutez un script, par exemple lors de l’ajout ou de la publication d’un package.
ScriptRunner.exe Application de lanceur de scripts incluse dans le client App-V.

Bien que ScriptRunner.exe soit inclus dans le client App-V, l’emplacement du client App-V doit être dans %path% sinon ScriptRunner ne s’exécute pas. ScriptRunner.exe se trouve généralement dans le dossier 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: jeton qui représente le script réel que vous souhaitez exécuter.
script1.exe: nom du script que vous souhaitez exécuter.
arg1 arg2— arguments du script que vous souhaitez exécuter.
-appvscriptrunnerparameters: jeton qui représente les options d’exécution pour script1.exe.
-wait: jeton qui indique à ScriptRunner d’attendre la fin de l’exécution de script1.exe avant de passer au script suivant.
-timeout=x: jeton qui informe ScriptRunner d’arrêter l’exécution du script actuel après x nombre de secondes. Tous les autres scripts spécifiés s’exécutent toujours.
-rollbackonerror: jeton qui indique à ScriptRunner d’arrêter l’exécution de tous les scripts qui n’ont pas encore été exécutés et de restaurer une erreur sur le client App-V.
<Wait timeout=”40” RollbackOnError=”true”/> Attend l’achèvement global de ScriptRunner.exe.

Définissez la valeur du délai d’expiration de l’exécuteur global pour qu’elle soit supérieure ou égale à la somme des valeurs de délai d’expiration sur les scripts individuels.

Si un script individuel a signalé une erreur et que rollbackonerror a été défini sur True, ScriptRunner doit signaler l’erreur au client App-V.

ScriptRunner exécute tout script dont le type de fichier est associé à une application installée sur l’ordinateur. Si l’application associée est manquante ou si le type de fichier du script n’est associé à aucune des applications de l’ordinateur, le script ne s’exécute pas.

Créer un fichier de configuration dynamique à l’aide d’un fichier manifeste App-V

Vous pouvez créer le fichier de configuration dynamique à l’aide de l’une des trois méthodes suivantes : manuellement, à l’aide de la console de gestion App-V ou en séquencement d’un package, ce qui génère un package avec deux exemples de fichiers.

Pour plus d’informations sur la création du fichier à l’aide de la console de gestion App-V, consultez Création d’un fichier de configuration personnalisée à l’aide de la console de gestion App-V.

Pour créer le fichier manuellement, vous pouvez combiner les composants répertoriés dans les sections précédentes dans un fichier unique. Toutefois, nous vous recommandons d’utiliser des fichiers générés par le séquenceur au lieu de fichiers créés manuellement.