À 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 l’exécution d’un package App-V pour un utilisateur ou un groupe. Par conséquent, la personnalisation des packages est rendue plus pratique en supprimant la nécessité de reséquencer les packages à l’aide des paramètres souhaités et offre un moyen de conserver le contenu du package et les paramètres personnalisés indépendants.

Avancé : configuration dynamique

Les packages d’applications virtuelles contiennent un manifeste qui fournit toutes les informations de base pour le package. Ces informations incluent les valeurs par défaut des paramètres du package et déterminent les paramètres dans la forme la plus basique (sans personnalisation supplémentaire). Si vous souhaitez régler ces paramètres 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 du déploiement

Ces fichiers .xml spécifient les paramètres de package, ce qui vous permet de personnaliser les packages sans affecter directement les packages. Lors de la création d’un package, le séquenceur génère automatiquement des fichiers de .xml de déploiement et de configuration utilisateur par défaut à 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 lors du séquencement. Si vous appliquez ces fichiers de configuration à un package sous la forme générée par le séquenceur, les packages auront les mêmes paramètres par défaut que ceux provenant de leur manifeste. Ce résultat vous fournit un modèle spécifique au package pour démarrer si l’une des valeurs par défaut doit être modifiée.

Remarque

Les informations suivantes ne peuvent être utilisées que pour modifier les fichiers de configuration générés par Sequencer afin de personnaliser les packages afin de répondre aux exigences spécifiques d’un utilisateur ou d’un groupe.

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 plupart à la moindre priorité :

  • Fichier .xml de configuration utilisateur
  • Fichier .xml configuration du déploiement
  • Manifeste du 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 défaut les paramètres du manifeste du package, mais c’est aussi celui qui a une priorité minimale. Si vous appliquez un fichier .xml configuration de déploiement avec des paramètres personnalisés, il remplace les valeurs par défaut du manifeste du package. Si vous appliquez un fichier de configuration .xml utilisateur avec des paramètres personnalisés avant de remplacer les valeurs par défaut du manifeste du package, il remplace à la fois la configuration de déploiement et les valeurs par défaut du manifeste du package.

Il existe deux types de fichiers de configuration :

  • Fichier de configuration utilisateur (UserConfig) : vous permet de spécifier ou de modifier les paramètres personnalisés d’un package. Ces paramètres seront appliqués pour un utilisateur spécifique lorsque le package est déployé sur un ordinateur exécutant le client App-V.
  • Fichier de configuration du déploiement (DeploymentConfig) : permet de spécifier ou de modifier les paramètres par défaut d’un package. Ces paramètres seront appliqués pour 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 utilisateur 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 d’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 les paramètres de configuration que vous pouvez appliquer à un seul utilisateur sans affecter les autres utilisateurs d’un client :

  • Extensions qui seront intégrées dans le 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 de l’utilisateur, offrant les mêmes fonctionnalités que celles 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 pouvant être appliquées globalement pour tous les utilisateurs
  • Sous-systèmes virtuels pouvant être configurés pour des emplacements d’ordinateurs globaux, tels que le Registre
  • URL de la source du produit
  • Scripts (contexte de l’ordinateur uniquement)
  • Contrôles pour arrêter les processus enfants

Structure de fichier

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

Le 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 dynamique de l’utilisateur 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. Il y a quatre sous-sections autorisées dans le corps :

Applications : Toutes les extensions d’application contenues dans le fichier manifeste d’un package sont affectées d’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 : AppExtensions et les 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 les 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 les raccourcis, les associations File-Type, les protocoles d’URL, les AppPaths, les 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 pour ce sous-système et utilise uniquement le contenu du fichier de configuration.

Exemples du sous-système de raccourcis

Exemple 1

Le contenu sera 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 les types de fichiers aux 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 la machine cliente. 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’enregistrer en tant que client de messagerie, lecteur de nouvelles ou lecteur multimédia et rend l’application visible dans l’interface utilisateur par défaut de l’accès aux programmes et de l’ordinateur. Dans la plupart des cas, il vous suffit de l’activer et de la désactiver. Il existe également un contrôle qui vous permet d’activer ou de désactiver le client de messagerie uniquement au cas où vous souhaitez que tous les autres clients restent tels quels.

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

AppPaths : si une application, telle que contoso.exe, est enregistrée avec un 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’enregistrer des serveurs COM locaux. Le mode peut être Intégration, Isolé ou Désactivé. Lorsque Isol.

    <COM Mode="Isolated"/>

Autres paramètres pour le fichier de configuration utilisateur dynamique

Outre les 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" />

Scripts utilisateur

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 après l’arrêt de l’application. Reportez-vous à un exemple de fichier de configuration utilisateur sorti par le séquenceur 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 de fichier de configuration de déploiement dynamique

L’en-tête d’un fichier de 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">

Le 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 du déploiement comprend deux sections :

  • La section Configuration utilisateur autorise le même contenu que le fichier configuration utilisateur décrit dans la section précédente. Lorsque le package est publié pour un utilisateur, les paramètres de configuration d’appextensions de cette section remplacent les paramètres correspondants dans le manifeste du 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 du déploiement. Si le package est publié globalement, seul le contenu du fichier de configuration du déploiement sera utilisé en combinaison avec le manifeste.
  • La section Configuration de la machine contient des informations qui peuvent uniquement être configurées pour une machine entière, et non pour un utilisateur spécifique de la machine. 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, voir Configuration utilisateur dynamique.

Configuration de la machine : la section Configuration de la machine du fichier de configuration du déploiement configure des informations qui ne peuvent être définies que pour une machine entière, 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 comporter les quatre sous-sections suivantes.

Sous-systèmes

AppExtensions et d’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 les exemples d’utilisation.

Extensions

Certains sous-systèmes (sous-systèmes d’extension) contrôlent des extensions qui ne peuvent s’appliquer qu’à tous les utilisateurs. Le sous-système est les fonctionnalités de l’application. Étant donné que ce sous-système ne peut s’appliquer qu’à tous les utilisateurs, le package doit être publié globalement afin que ce type d’extension soit intégré dans le système local. Les règles relatives aux contrôles et paramètres d’extension de configuration utilisateur s’appliquent également à celles de la configuration de la machine.

Fonctionnalités de l’application

L’extension des fonctionnalités de l’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’enregistrer comme étant capable d’ouvrir certaines extensions de fichier, en tant que candidate à l’emplacement du navigateur Internet du menu Démarrer et en tant que capable d’ouvrir certains types MIME Windows. Cette extension rend également l’application virtuelle visible dans l’interface utilisateur de 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 filiale. Elle est définie 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 lorsque le processus application.exe est terminé.

    <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 de déploiement, configuration utilisateur)
AddPackage X (SYSTÈME, N/A)
PublishPackage X X (SYSTÈME, Utilisateur)
UnpublishPackage X X (SYSTÈME, Utilisateur)
RemovePackage X (SYSTÈME, N/A)
Processus de démarrage 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 même déclencheur d’événements

App-V prend en charge l’utilisation de plusieurs scripts sur un déclencheur d’événements unique pour les packages App-V, y compris les packages que vous convertissez d’App-V 4.6 en App-V pour le client Windows. Pour permettre l’utilisation de plusieurs scripts, App-V utilise une application de lancement 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-le en tant qu’argument à l’application ScriptRunner.exe. L’application exécutera 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 correctement générés avant de les ajouter au fichier de configuration de déploiement.

Exemple de description de script et de paramètre

À l’aide de l’exemple de fichier et du tableau suivants, modifiez le fichier de déploiement ou de configuration 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 lancement 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écutera pas. ScriptRunner.exese 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 pour le 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 d’exécuter le script actuel après un nombre de x secondes. Tous les autres scripts spécifiés continueront de s’exécuter.
-rollbackonerror—jeton qui indique à ScriptRunner d’arrêter d’exécuter tous les scripts qui ne sont pas encore exécutés et de restaurer une erreur sur le client App-V.
<Wait timeout=”40” RollbackOnError=”true”/> En attente de l’achèvement général de ScriptRunner.exe.

Définissez la valeur du délai d’expiration pour l’exécuteur global sur une valeur 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 n’importe quel 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 application 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équençant un package, ce qui générera 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 Comment créer un fichier de configuration personnalisé à 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 en un seul fichier. Toutefois, nous vous recommandons d’utiliser les fichiers générés par le séquenceur plutôt que ceux créés manuellement.