Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:
- Windows 10
- Windows 11
Puedes usar la configuración dinámica para personalizar un paquete de App-V para un usuario. En este artículo se explica cómo crear o editar un archivo de configuración dinámica existente.
Cuando editas el archivo de configuración dinámica, personalizas cómo se ejecutará un paquete de App-V para un usuario o grupo. Por lo tanto, la personalización del paquete se hace más cómoda al eliminar la necesidad de volver a secuenciar los paquetes con la configuración deseada y proporciona una manera de mantener el contenido del paquete y la configuración personalizada independientes.
Avanzado: configuración dinámica
Los paquetes de aplicación virtual contienen un manifiesto que proporciona toda la información principal del paquete. Esta información incluye los valores predeterminados de la configuración del paquete y determina la configuración en la forma más básica (sin personalización adicional). Si desea ajustar estos valores predeterminados para un usuario o un grupo determinado, puede crear y editar los siguientes archivos:
- Archivo de configuración de usuario
- Archivo de configuración de implementación
Estos archivos .xml especifican la configuración de los paquetes y te permiten personalizar los paquetes sin afectarlos directamente. Cuando se crea un paquete, el secuenciador genera automáticamente archivos de implementación predeterminada y configuración de usuario .xml archivos mediante los datos del manifiesto del paquete. Estos archivos de configuración generados automáticamente reflejan la configuración predeterminada del paquete que se configuraron durante la secuencia. Si aplicas estos archivos de configuración a un paquete en el formato generado por el secuenciador, los paquetes tendrán la misma configuración predeterminada que vino de su manifiesto. Este resultado le proporciona una plantilla específica del paquete para empezar si se debe cambiar alguno de los valores predeterminados.
Nota
La siguiente información solo se puede usar para modificar los archivos de configuración generados por el secuenciador para personalizar los paquetes con el fin de cumplir con los requisitos específicos de usuarios o grupos.
Contenido del archivo de configuración dinámica
Todas las adiciones, eliminaciones y actualizaciones en los archivos de configuración deben realizarse en relación con los valores predeterminados especificados por la información del manifiesto del paquete. La siguiente lista representa la relación entre estos archivos en la forma en que se leerán, de mayor a menor prioridad:
- Archivo de .xml de configuración de usuario
- Archivo de .xml de configuración de implementación
- Manifiesto de paquete
El primer elemento representa lo que se leerá en último lugar. Por lo tanto, su contenido tiene prioridad. Todos los paquetes contienen y proporcionan la configuración predeterminada del manifiesto del paquete de forma inherente, pero también tiene la menor prioridad. Si aplicas una configuración de implementación .xml archivo con configuraciones personalizadas, se invalidarán los valores predeterminados del manifiesto del paquete. Si aplicas un archivo de .xml de configuración de usuario con una configuración personalizada antes de anular los valores predeterminados del manifiesto de paquete, se reemplazará tanto la configuración de implementación como los valores predeterminados del manifiesto de paquete.
Hay dos tipos de archivos de configuración:
- Archivo de configuración de usuario (UserConfig): permite especificar o modificar la configuración personalizada de un paquete. Esta configuración se aplicará a un usuario específico si el paquete se implementa en un equipo que ejecute el cliente de App-V.
- Archivo de configuración de implementación (DeploymentConfig): permite especificar o modificar la configuración predeterminada de un paquete. Esta configuración se aplicará a todos los usuarios cuando se implemente un paquete en un equipo que ejecute el cliente de App-V.
Puede usar el archivo UserConfig para personalizar la configuración de un paquete para un conjunto específico de usuarios en un equipo o realizar cambios que se aplicarán a ubicaciones de usuarios locales, como HKCU. Puede usar el archivo DeploymentConfig para modificar la configuración predeterminada de un paquete para todos los usuarios de una máquina o realizar cambios que se aplicarán a ubicaciones globales, como HKEY_LOCAL_MACHINE y la carpeta Todos los usuarios.
El archivo UserConfig proporciona opciones de configuración que puede aplicar a un único usuario sin afectar a ningún otro usuario de un cliente:
- Extensiones que se integrarán en el sistema nativo por usuario: accesos directos, asociaciones File-Type, protocolos URL, AppPaths, clientes de software y COM.
- Subsistemas virtuales: objetos de aplicación, variables de entorno, modificaciones del Registro, servicios y fuentes.
- Scripts (solo contexto de usuario).
El archivo DeploymentConfig proporciona opciones de configuración en dos secciones, una relativa al contexto de la máquina y otra relativa al contexto del usuario, proporcionando las mismas capacidades enumeradas en la lista UserConfig anterior:
- Todas las opciones de configuración de usuario de la sección anterior de este tema
- Extensiones que solo se pueden aplicar globalmente para todos los usuarios
- Subsistemas virtuales que se pueden configurar para ubicaciones de máquinas globales, como el Registro
- Dirección URL de origen del producto
- Scripts (solo contexto de la máquina)
- Controles para finalizar procesos secundarios
Estructura de archivos
La estructura del archivo de configuración dinámica de App-V se explica en la sección siguiente.
Archivo de configuración de usuario dinámico
Encabezado
Un ejemplo del encabezado de un archivo de configuración de usuario dinámica es el siguiente:
<?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 es el mismo valor que existe en el archivo de manifiesto.
Cuerpo del archivo de configuración de usuario dinámico
El cuerpo del archivo de configuración dinámica de usuario puede incluir todos los puntos de extensión de aplicación definidos en el archivo de manifiesto y la información para configurar aplicaciones virtuales. Se permiten cuatro subsecciones en el cuerpo:
Aplicaciones: Todas las extensiones de aplicación contenidas en el archivo de manifiesto dentro de un paquete se asignan con un identificador de aplicación, que también se define en el archivo de manifiesto. Esto le permite habilitar o deshabilitar todas las extensiones de una aplicación determinada dentro de un paquete. El id. de aplicación debe existir en el archivo de manifiesto o se omitirá.
<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>
Subsistemas: AppExtensions y otros subsistemas se organizan como subnodos en <Subsystems>, como se muestra en el ejemplo siguiente.
<UserConfiguration **PackageId**="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="http://schemas.microsoft.com/appv/2010/userconfiguration">
<Subsystems>
..
</Subsystems>
..
</UserConfiguration>
Cada subsistema se puede habilitar o deshabilitar mediante el atributo Enabled . En las secciones siguientes se describen los distintos subsistemas y ejemplos de uso.
Extensiones de archivo de configuración de usuario dinámico
Los subsistemas de extensión controlan las extensiones. Estos subsistemas son accesos directos, asociaciones de File-Type, protocolos de dirección URL, AppPaths, clientes de software y COM.
Extensión Los subsistemas se pueden habilitar y deshabilitar independientemente del contenido. Por lo tanto, si los accesos directos están habilitados, el cliente usará los accesos directos contenidos en el manifiesto de forma predeterminada. Cada subsistema de extensión puede contener un <Extensions> nodo. Si este elemento secundario está presente, el cliente ignorará el contenido del archivo de manifiesto para ese subsistema y solo usará el contenido del archivo de configuración.
Ejemplos del subsistema de accesos directos
Ejemplo 1
El contenido se omitirá si el usuario ha definido las sintaxis siguientes en el archivo de configuración dinámica o de implementación:
<Shortcuts Enabled="true">
<Extensions
...
</Extensions>
</Shortcuts>
Ejemplo 2
El contenido del manifiesto se integrará durante la publicación si el usuario solo ha definido la sintaxis siguiente:
`<Shortcuts Enabled="true"/>`
Ejemplo 3
Se omitirán todos los accesos directos del manifiesto y no se integrará ningún acceso directo si el usuario define las sintaxis siguientes:
<Shortcuts Enabled="true">
<Extensions/>
</Shortcuts>
Subsistemas de extensión compatibles
Accesos directos: este subsistema controla los accesos directos que se integrarán en el sistema local. El ejemplo siguiente tiene dos métodos abreviados:
<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>
Asociaciones de tipo de archivo: asocia tipos de archivo con programas que se abren de forma predeterminada y que configuran el menú contextual. (Los tipos MIME también se pueden configurar con este subsistema). Un ejemplo de una asociación de FileType es el siguiente:
<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>
Protocolos URL: Este subsistema controla los protocolos URL integrados en el registro local de la máquina cliente. El siguiente ejemplo ilustra el protocolo "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>
Clientes de software: permite que la aplicación se registre como cliente de correo electrónico, lector de noticias o reproductor multimedia y hace que la aplicación sea visible en la interfaz de usuario Establecer acceso a programas y valores predeterminados del equipo. En la mayoría de los casos, solo necesita habilitarlo y deshabilitarlo. También hay un control que le permite habilitar o deshabilitar el cliente de correo electrónico solo en caso de que desee que todos los demás clientes permanezcan como están.
<SoftwareClients Enabled="true">
<ClientConfiguration EmailEnabled="false" />
</SoftwareClients>
AppPaths: Si una aplicación, como contoso.exe, está registrada con un nombre de apppath de "myapp", este subsistema le permite abrir la aplicación escribiendo "myapp" en el menú de ejecución.
<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: permite a una aplicación registrar servidores COM locales. El modo puede ser Integración, Aislado o Desactivado. Cuando Isol.
<COM Mode="Isolated"/>
Otras opciones de configuración para el archivo de configuración de usuario dinámico
Además de las extensiones, se pueden habilitar/deshabilitar y editar los siguientes subsistemas.
Objetos virtuales del kernel
<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>
Sistema de archivos virtual
<FileSystem Enabled="true" />
Fuentes virtuales
<Fonts Enabled="false" />
Variables de entorno virtual
<EnvironmentVariables Enabled="true">
<Include>
<Variable Name="UserPath" Value="%path%;%UserProfile%" />
<Variable Name="UserLib" Value="%UserProfile%\\ABC" />
</Include>
<Delete>
<Variable Name="lib" />
</Delete>
</EnvironmentVariables>
Servicios virtuales
<Services Enabled="false" />
UserScripts
Los scripts se pueden usar para configurar o modificar el entorno virtual y ejecutar scripts en la implementación o eliminación, antes de que se ejecute una aplicación, o pueden limpiar el entorno después de que finalice la aplicación. Consulte un archivo de configuración de usuario de muestra emitido por el secuenciador para ver un script de ejemplo. Para obtener más información sobre los distintos disparadores que puede usar para configurar scripts, consulte la sección Scripts .
Archivo de configuración de implementación dinámica
Encabezado del archivo de configuración de implementación dinámica
El encabezado de un archivo de configuración de implementación debe tener un aspecto similar al siguiente:
<?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 es el mismo valor que el que existe en el archivo de manifiesto.
Cuerpo del archivo de configuración de implementación dinámica
El cuerpo del archivo de configuración de implementación incluye dos secciones:
- La sección Configuración de usuario permite el mismo contenido que el archivo de configuración de usuario descrito en la sección anterior. Cuando se publique el paquete para un usuario, las opciones de configuración de appextensions de esta sección invalidarán las opciones correspondientes del manifiesto dentro del paquete, a menos que también se proporcione un archivo de configuración de usuario. Si también se proporciona un archivo UserConfig, se usará en lugar de la configuración de usuario en el archivo de configuración de implementación. Si el paquete se publica globalmente, solo se usará el contenido del archivo de configuración de implementación en combinación con el manifiesto.
- La sección Configuración de la máquina contiene información que solo se puede configurar para una máquina completa, no para un usuario específico de la máquina. Por ejemplo, HKEY_LOCAL_MACHINE las claves del Registro en VFS.
<DeploymentConfiguration PackageId="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="http://schemas.microsoft.com/appv/2010/deploymentconfiguration">
<UserConfiguration>
..
</UserConfiguration>
<MachineConfiguration>
..
</MachineConfiguration>
..
</MachineConfiguration>
</DeploymentConfiguration>
Configuración de usuario: Para obtener más información sobre esta sección, consulte Configuración dinámica de usuario.
Configuración de la máquina: la sección Configuración de la máquina del archivo de configuración de implementación configura información que solo se puede establecer para una máquina completa, no para un usuario específico en la computadora, como las claves del Registro HKEY_LOCAL_MACHINE en el Registro Virtual. Este elemento puede tener las cuatro subsecciones siguientes:
Subsistemas
AppExtensions y otros subsistemas se organizan como subnodos en <Subsystems>:
<MachineConfiguration>
<Subsystems>
..
</Subsystems>
..
</MachineConfiguration>
En la sección siguiente se describen los distintos subsistemas y ejemplos de uso.
Extensiones
Algunos subsistemas (subsistemas de extensión) controlan extensiones que solo se pueden aplicar a todos los usuarios. El subsistema son las capacidades de la aplicación. Dado que este subsistema solo se puede aplicar a todos los usuarios, el paquete debe publicarse globalmente para que este tipo de extensión se integre en el sistema local. Las reglas de configuración de usuario, controles de extensión y configuración también se aplican a las de Configuración de la máquina.
Capacidades de la aplicación
Los programas predeterminados utilizan la extensión Application Capabilities en la interfaz del sistema operativo Windows; permite que una aplicación se registre como capaz de abrir ciertas extensiones de archivo, como un competidor para la ranura del navegador de Internet del menú Inicio y como capaz de abrir ciertos tipos MIME de Windows. Esta extensión también hace que la aplicación virtual sea visible en la interfaz de usuario Establecer programas predeterminados.
<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>
Otras opciones de configuración para el archivo de configuración de implementación dinámica
Puede editar otros subsistemas además de las extensiones:
- Registro virtual en todo el equipo: use este subsistema cuando desee establecer una clave del Registro en el Registro virtual dentro de 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>
- Objetos de kernel virtuales de todo el equipo
<Objects>
<NotIsolate>
<Object Name="testObject" />
</NotIsolate>
</Objects>
- ProductSourceURLOptOut: indica si la dirección URL del paquete se puede modificar globalmente a través de PackageSourceRoot para admitir escenarios de sucursal. Está establecido en False de forma predeterminada. Los cambios en el valor surtirán efecto en el próximo inicio.
<MachineConfiguration>
..
<ProductSourceURLOptOut Enabled="true" />
..
</MachineConfiguration>
MachineScripts: el paquete se puede configurar para ejecutar scripts tras la implementación, publicación o eliminación. Para ver un script de ejemplo, consulte un archivo de configuración de implementación de ejemplo generado por el secuenciador. En la siguiente sección se proporciona más información sobre los distintos desencadenadores que puede usar para configurar scripts.
TerminateChildProcess: Puede usar este subsistema para especificar que los procesos secundarios de un ejecutable de aplicación finalizarán cuando finalice el proceso 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
En la tabla siguiente se describen los distintos eventos de script y el contexto en el que se pueden ejecutar.
| Tiempo de ejecución del script | Se puede especificar en la configuración de implementación | Se puede especificar en la configuración del usuario | Puede ejecutarse en el entorno virtual del paquete | Se puede ejecutar en el contexto de una aplicación específica | Se ejecuta en el contexto del sistema/usuario: (Configuración de implementación, Configuración de usuario) |
|---|---|---|---|---|---|
| AddPackage | X | (SISTEMA, N/A) | |||
| PublishPackage | X | X | (SISTEMA, usuario) | ||
| UnpublishPackage | X | X | (SISTEMA, usuario) | ||
| RemovePackage | X | (SISTEMA, N/A) | |||
| StartProcess | X | X | X | X | (Usuario, Usuario) |
| ExitProcess | X | X | X | (Usuario, Usuario) | |
| StartVirtualEnvironment | X | X | X | (Usuario, Usuario) | |
| TerminateVirtualEnvironment | X | X | (Usuario, Usuario) |
Uso de varias secuencias de comandos en un único desencadenador de eventos
App-V admite el uso de varios scripts en un único desencadenador de eventos para paquetes de App-V, incluidos los paquetes que conviertes de App-V 4.6 a App-V para cliente Windows. Para permitir el uso de varios scripts, App-V usa una aplicación iniciadora de scripts, denominada ScriptRunner.exe, que se incluye en el cliente de App-V.
Cómo usar varias secuencias de comandos en un único desencadenador de eventos
Para cada script que quiera ejecutar, páselo como argumento a la aplicación ScriptRunner.exe. La aplicación ejecutará cada script por separado, junto con los argumentos que especifique para cada script. Use solo una secuencia de comandos (ScriptRunner.exe) por desencadenador.
Nota
Se recomienda ejecutar primero la línea de varios scripts desde un símbolo del sistema para asegurarse de que todos los argumentos se generan correctamente antes de agregarlos al archivo de configuración de implementación.
Ejemplo de descripciones de scripts y parámetros
Con el archivo y la tabla de ejemplo siguientes, modifique el archivo de implementación o configuración de usuario para agregar los scripts que desea ejecutar.
<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>
| Parámetro en el archivo de ejemplo | Descripción |
|---|---|
<AddPackage> |
Nombre del desencadenador de evento para el que está ejecutando un script, como al agregar o publicar un paquete. |
ScriptRunner.exe |
La aplicación de iniciador de scripts incluida en el cliente de App-V. Aunque ScriptRunner.exe se incluye en el cliente de App-V, la ubicación del cliente de App-V debe estar en %path% o ScriptRunner no se ejecutará. ScriptRunner.exeNormalmente se encuentra en la carpeta C:\Program Files\Microsoft Application Virtualization\Client. |
-appvscript script1.exe arg1 arg2 –appvscriptrunnerparameters –wait –timeout=10-appvscript script2.vbs arg1 arg2-appvscript script3.bat arg1 arg2 –appvscriptrunnerparameters –wait –timeout=30 -rollbackonerror |
-appvscript: token que representa el script real que desea ejecutar.script1.exe—nombre del script que desea ejecutar.arg1 arg2: argumentos del script que desea ejecutar.-appvscriptrunnerparameters: token que representa las opciones de ejecución de script1.exe.-wait: token que indica a ScriptRunner que espere a que finalice la ejecución de script1.exe antes de continuar con el siguiente script.-timeout=x: token que informa a ScriptRunner de que deje de ejecutar el script actual después de x número de segundos. El resto de scripts especificados se seguirán ejecutando.-rollbackonerror: token que indica a ScriptRunner que deje de ejecutar todos los scripts que aún no se han ejecutado y revierta un error al cliente de App-V. |
<Wait timeout=”40” RollbackOnError=”true”/> |
Espera la finalización general de ScriptRunner.exe. Establezca el valor de tiempo de espera del ejecutor general para que sea mayor o igual que la suma de los valores de tiempo de espera de los scripts individuales. Si algún script notificó un error y rollbackonerror se estableció en True, ScriptRunner debe notificar el error al cliente de App-V. |
ScriptRunner ejecutará cualquier script cuyo tipo de archivo esté asociado a una aplicación instalada en el equipo. Si falta la aplicación asociada o el tipo de archivo del script no está asociado a ninguna de las aplicaciones del equipo, el script no se ejecutará.
Crear un archivo de configuración dinámica con un archivo de manifiesto de App-V
Puedes crear el archivo de configuración dinámica mediante uno de estos tres métodos: manualmente, con la consola de administración de App-V o mediante la secuenciación de un paquete, lo que generará un paquete con dos archivos de ejemplo.
Para obtener más información sobre cómo crear el archivo con la consola de administración de App-V, consulte Cómo crear un archivo de configuración personalizado mediante el uso de la consola de administración de App-V.
Para crear el archivo manualmente, puede combinar los componentes enumerados en las secciones anteriores en un único archivo. Sin embargo, te recomendamos que uses archivos generados por el secuenciador en lugar de archivos creados manualmente.