Share via


Acerca de la configuración dinámica de App-V 5.1

Se aplica a: Application Virtualization 5.1

Puede usar la configuración dinámica para personalizar un paquete de App-V 5.1 para un usuario. Utilice la siguiente información para crear o editar un archivo de configuración dinámica existente.

Cuando se edita el archivo de configuración dinámica, se personaliza cómo se ejecutará un paquete de App-V 5.1 para un usuario o grupo. Esto permite ofrecer un método más práctico para la personalización de paquetes al eliminar la necesidad de volver a secuenciar paquetes usando la configuración deseada, y proporciona una manera de mantener el contenido del paquete independiente de la configuración personalizada.

Opciones avanzadas: configuración dinámica

Los paquetes de aplicaciones virtuales contienen un manifiesto que proporciona toda la información fundamental sobre el paquete. Esta información incluye los valores predeterminados para la configuración del paquete y determina la configuración de la forma más básica (sin ninguna personalización adicional). Si desea ajustar estos valores predeterminados para un usuario o grupo concretos, puede crear y modificar los siguientes archivos:

  • Archivo de configuración de usuario

  • Archivo de configuración de implementación

Los archivos .xml anteriores especifican opciones de configuración del paquete y permiten personalizar paquetes sin afectar directamente a los paquetes. Cuando se crea un paquete, el secuenciador genera automáticamente los archivos .xml de implementación y configuración de usuario predeterminados a partir de los datos del manifiesto del paquete. Por lo tanto, estos archivos de configuración generados automáticamente se limitan a reflejar la configuración predeterminada del paquete según las opciones de configuración durante la secuenciación. Si estos archivos de configuración se aplican a un paquete en la forma generada por el secuenciador, los paquetes tendrán la misma configuración predeterminada que tenían en su manifiesto. Esto proporciona una plantilla específica del paquete para empezar, en caso de que sea necesario cambiar cualquiera de los valores predeterminados.

Nota

La siguiente información sólo puede utilizarse para modificar los archivos de configuración generados por el secuenciador para personalizar paquetes a fin de satisfacer los requisitos de grupo o usuario específicos.

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. Revise la siguiente tabla:

Archivo .xml de configuración de usuario

Archivo .xml de configuración de implementación

Manifiesto del paquete

La tabla anterior representa cómo se leerán los archivos. La primera entrada representa lo que se leerá en último lugar; por lo tanto, su contenido tiene prioridad. De este modo, todos los paquetes contienen y proporcionan valores predeterminados del manifiesto del paquete de manera intrínseca. Si se aplica un archivo .xml de configuración de implementación con una configuración personalizada, invalidará los valores predeterminados del manifiesto del paquete. Si se aplica antes un archivo .xml de configuración de usuario con una configuración personalizada, eso invalidará la configuración de implementación y los valores predeterminados del manifiesto del paquete.

En la lista siguiente se muestra más información acerca de los dos tipos de archivo:

  • Archivo de configuración de usuario (UserConfig): permite especificar o modificar la configuración personalizada de un paquete. Esta configuración se aplicará para un usuario específico si el paquete se implementa en un equipo que ejecuta el cliente App-V 5.1.

  • 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 si el paquete se implementa en un equipo que ejecuta el cliente App-V 5.1.

Para personalizar la configuración de un paquete para un conjunto específico de usuarios en un equipo o para realizar cambios que se aplicarán en ubicaciones de usuario locales como HKCU, se debe usar el archivo UserConfig. Para modificar la configuración predeterminada de un paquete para todos los usuarios de una máquina o para realizar cambios que se aplicarán en ubicaciones globales como HKEY_LOCAL_MACHINE y la carpeta para todos los usuarios, se debe usar el archivo DeploymentConfig.

El archivo UserConfig proporciona opciones de configuración que se pueden aplicar a un único usuario sin afectar al resto de usuarios de un cliente:

  • Extensiones que se integrarán en el sistema nativo por usuario: accesos directos, asociaciones de tipo de archivo, protocolos URL, AppPaths, clientes de software y COM

  • Subsistemas virtuales: objetos de aplicación, variables del entorno, modificaciones del registro, servicios y fuentes

  • Scripts (solo en el contexto de usuario)

  • Autoridad de administración (para controlar la coexistencia de paquete con App-V 4.6)

El archivo DeploymentConfig proporciona opciones de configuración en dos secciones, una relativa al contexto de la máquina y otra al contexto del usuario que proporciona las mismas funcionalidades enumeradas en la lista de UserConfig anterior:

  • Todas las opciones de UserConfig mencionadas arriba

  • Extensiones que solo se pueden aplicar globalmente para todos los usuarios

  • Subsistemas virtuales que se pueden configurar para ubicaciones de máquina globales como el registro

  • URL de origen del producto

  • Scripts (solo en el contexto de máquina)

  • Controles para terminar procesos secundarios

Estructura de archivos

La estructura del archivo de configuración dinámica App-V 5.1 se explica en la siguiente sección.

Archivo de configuración dinámica de usuario

Encabezado: el encabezado de un archivo de configuración dinámica de usuario tiene la estructura siguiente:

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

El PackageId es el mismo valor que existe en el archivo de manifiesto.

Cuerpo: el cuerpo del archivo de configuración dinámica de usuario puede incluir todos los puntos de extensión de aplicaciones definidos en el archivo de manifiesto, así como información para configurar aplicaciones virtuales. Se permiten cuatro subapartados en el cuerpo:

  1. Aplicaciones: todas las extensiones de aplicaciones incluidas en el archivo de manifiesto dentro de un paquete tienen asignado un id. de aplicación que también está definido en el archivo de manifiesto. Esto permite habilitar o deshabilitar todas las extensiones de una aplicación específica dentro de un paquete. El Id. de aplicación debe existir en el archivo de manifiesto o se ignorará.

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

    <Applications>

    <!-- No se puede definir ninguna aplicación nueva en la directiva. El cliente de AppV ignorará todos los Id. de aplicación que no figuren también en el archivo de manifiesto. -->

    <Application Id="{a56fa627-c35f-4a01-9e79-7d36aed8225a}" Enabled="false">

    </Application>

    </Applications>

    </UserConfiguration>

  2. Subsystems: las AppExtensions, así como el resto de subsistemas, están dispuestos como subnodos en <Subsystems>:

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

    <Subsystems>

    ..

    </Subsystems>

    ..

    </UserConfiguration>

    Cada subsistema se puede habilitar/deshabilitar mediante el atributo "Enabled". A continuación se muestran los distintos subsistemas y ejemplos de uso.

    Extensiones:

    Algunos subsistemas (subsistemas de extensión) controlan las extensiones. Estos subsistemas son: accesos directos, asociaciones de tipo de archivo, protocolos URL, AppPaths, clientes de software y COM

    Los subsistemas de extensión se pueden habilitar y deshabilitar independientemente del contenido. Por ello, si se habilitan los accesos directos, el cliente usará los accesos directos incluidos en el manifiesto de manera predeterminada. Cada subsistema de extensión puede contener un nodo <Extensions>. Si este elemento secundario está presente, el cliente ignorará el contenido del archivo de manifiesto de ese subsistema y solo usará el contenido del archivo de configuración.

    Ejemplo que usa el subsistema de accesos directos:

    1. Si el usuario lo ha definido en el archivo de configuración dinámica o de implementación:

                                   <Shortcuts Enabled="true">

                                               <Extensions>

                                                ...

                                               </Extensions>

                                   </Shortcuts>

                        El contenido del manifiesto se ignorará.

    2. Si el usuario solo definió lo siguiente:

                                  <Shortcuts  Enabled="true"/>

                        El contenido del manifiesto se integrará durante la publicación.

    3. Si el usuario define lo siguiente:

                                 <Shortcuts Enabled="true">

                                               <Extensions/>

                                   </Shortcuts>

    Todos los accesos directos del manifiesto se seguirán ignorando. No se integrará ningún acceso directo.

    Los subsistemas de extensión compatibles son:

    Accesos directos: permite controlar los accesos directos que se integrarán en el sistema local. A continuación se muestra un ejemplo con 2 accesos directos:

    <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>Rellene los formularios dinámicos para recopilar y volver a utilizar la información en la organización con 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>

          <!-- Tenga en cuenta que el atributo ApplicationId es opcional. -->

        </Shortcut>

      </Extension>

     </Extensions>

    </Shortcuts>

    Asociaciones de tipo de archivo: permiten asociar los tipos de archivo con programas para abrirlos de manera predeterminada así como configurar el menú contextual. (Los tipos MIME también se pueden configurar mediante este subsistema). A continuación se muestra un ejemplo de asociación de tipo de archivo:

    <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>Bla bla bla</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: permite controlar los protocolos URL que están integrados en el registro local del equipo cliente, p. ej.“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 a la aplicación registrarse como cliente de correo electrónico, lector de noticias, reproductor multimedia y hace que la aplicación esté visible en la IU de Configurar acceso y programas predeterminados. En la mayoría de los casos solo se tiene que habilitar y deshabilitar. También hay un control para habilitar y deshabilitar el cliente de correo electrónico, específicamente si desea que todos los clientes excepto este sigan habilitados.

    <SoftwareClients Enabled="true">

      <ClientConfiguration EmailEnabled="false" />

    </SoftwareClients>

    AppPaths: si una aplicación, como por ejemplo contoso.exe, se registra con un nombre de “myapp”, permite escribir “myapp” en el menú de ejecución y abrirá contoso.exe.

    <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 que una aplicación registre servidores COM locales. El modo puede ser Integración, Aislado o Desactivado. Cuando es Aislado.

    <COM Mode="Isolated"/>

    Otras configuraciones:

    Además de las extensiones, se pueden habilitar, deshabilitar y editar otros subsistemas:

    Objetos de kernel virtual:

    <Objects Enabled="false" />

    Registro virtual: se usa si se desea definir un registro en el registro virtual dentro de HKCU

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

    <Eliminar>

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

          <Eliminar>

           <Variable Name="lib" />

            </Delete>

            </EnvironmentVariables>

    Servicios virtuales

          <Services Enabled="false" />

  3. UserScripts: los scripts se pueden usar para configurar o modificar el entorno virtual, así como para ejecutar scripts en el momento de la implementación o la eliminación, antes de que se ejecute una aplicación, o se pueden usar para "limpiar" el entorno después de que se termine la aplicación. Consulte un archivo de configuración de usuario de ejemplo emitido por el secuenciador para ver un script de ejemplo. En la sección Scripts siguiente se proporciona más información sobre los distintos desencadenadores que se pueden usar.

  4. ManagingAuthority: se puede usar cuando 2 versiones del paquete coexisten en la misma máquina, una implementada en App-V 4.6 y otra implementada en App-V 5.0. Para permitir que App-V vNext releve los puntos de extensión de App-V 4.6 para el paquete con nombre, escriba lo siguiente en el archivo UserConfig (donde PackageName es el GUID del paquete en App-V 4.6:

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

Archivo de configuración dinámica de implementación

Encabezado: el encabezado de un archivo de configuración de implementación tiene la estructura siguiente:

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

El PackageId es el mismo valor que existe en el archivo de manifiesto.

Cuerpo: el cuerpo del archivo de configuración de implementación incluye dos secciones:

  • Sección de configuración de usuario: permite el mismo contenido que se ha descrito para el archivo de configuración de usuario en la sección anterior. Si el paquete se publica para un usuario, las opciones de configuración de extensiones de aplicación de esta sección reemplazarán a 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á este en lugar de la configuración de usuario en el archivo de configuración de implementación. Si el paquete se publica de manera global, solo se usará en combinación con el manifiesto el contenido del archivo de configuración de implementación.

  • Sección de configuración de la máquina: contiene información que solo se puede configurar para toda la máquina, no para un usuario específico de la máquina. Por ejemplo, las claves de registro HKEY_LOCAL_MACHINE en VFS.

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

<UserConfiguration>

  ..

</UserConfiguration>

<MachineConfiguration>

..

</MachineConfiguration>

..

</MachineConfiguration>

</DeploymentConfiguration>

Configuración de usuario: use la sección anterior Archivo de configuración dinámica de usuario para obtener información sobre las opciones que se proporcionan en la sección de configuración del usuario del archivo de configuración de implementación.

Configuración de la máquina: la sección de configuración de la máquina del archivo de configuración de implementación se usa para configurar información que solo se puede definir para toda una máquina, no para un usuario específico del equipo. Por ejemplo, las claves de registro HKEY_LOCAL_MACHINE en el registro virtual. Bajo este elemento se permiten cuatro subapartados

  1. Subsystems: las AppExtensions, así como el resto de subsistemas, están dispuestos como subnodos en <Subsystems>:

    <MachineConfiguration>

      <Subsystems>

      ..

      </Subsystems>

    ..

    </MachineConfiguration>

    En la siguiente sección se muestran los distintos subsistemas y ejemplos de uso.

    Extensiones:

    Algunos subsistemas (subsistemas de extensión) controlan las extensiones que solo se pueden aplicar a todos los usuarios. El subsistema son las funcionalidades de la aplicación. Puesto que esto solo se puede aplicar a todos los usuarios, el paquete se debe publicar de manera global para que este tipo de extensión se integre en el sistema local. Las mismas reglas para los controles y la configuración que se aplican a las extensiones en la configuración de usuario también se aplican en la sección de configuración de la máquina.

    Funcionalidades de la aplicación: usadas por todos los programas predeterminados en la interfaz del sistema operativo Windows. Permiten que una aplicación se registre como capaz de abrir determinadas extensiones de archivo, como competidor de la ranura del explorador de Internet del menú de inicio, como capaz de abrir determinados tipos MIME de Windows. Esta extensión también hace que la aplicación virtual esté visible en la IU de Establecer programas predeterminados:

    <ApplicationCapabilities Enabled="true">

      <Extensions>

       <Extension Category="AppV.ApplicationCapabilities">

        <ApplicationCapabilities>

         <ApplicationId>[{PackageRoot}]\LitView\LitViewBrowser.exe</ApplicationId>

         <Referencia>

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

    Además de las extensiones, se pueden editar otros subsistemas:

    Registro virtual a nivel de máquina: se utiliza cuando se desea definir una clave de registro en el registro virtual dentro de HKEY_Local_Machine

    <Registro>

    <Include>

      <Key Path="\REGISTRY\Machine\Software\ABC">

        <Value Type="REG_SZ" Name="Bar" Data="Baz" />

       </Key>

      <Key Path="\REGISTRY\Machine\Software\EmptyKey" />

     </Include>

    <Eliminar>

    </Registry>

    Objetos de kernel virtual a nivel de máquina

    <Objects>

    <NotIsolate>

       <Object Name="testObject" />

     </NotIsolate>

    </Objects>

  2. ProductSourceURLOptOut: indica si la dirección URL del paquete se puede modificar globalmente mediante PackageSourceRoot (para admitir escenarios de sucursal). El valor predeterminado es false y el cambio de la configuración es efectivo en el siguiente inicio.  

    <MachineConfiguration>

      .. 

      <ProductSourceURLOptOut Enabled="true" />

      ..

    </MachineConfiguration>

  3. MachineScripts: el paquete se puede configurar para ejecutar scripts en el momento de la implementación, la publicación o la eliminación. Consulte un archivo de configuración de implementación de ejemplo generado por el secuenciador para ver un script de ejemplo. En la sección Scripts siguiente se proporciona más información sobre los distintos desencadenadores que se pueden usar.

  4. TerminateChildProcess: se puede especificar una aplicación cuyos procesos secundarios se terminarán cuando termine el proceso exe de la aplicación.

    <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 de usuario Se puede ejecutar en el entorno virtual del paquete Se puede ejecutar en el contexto de una aplicación específica Se ejecuta en el contexto de 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 varios scripts en un desencadenador de evento único

App-V 5.1 admite el uso de varios scripts en un desencadenador de evento único para los paquetes de App-V, incluidos los paquetes que se convierten de App-V 4.6 a App-V 5.0 o versiones posteriores. Para habilitar el uso de varios scripts, App-V 5.1 usa una aplicación de inicio de scripts, denominada ScriptRunner.exe, que se instala como parte de la instalación de cliente de App-V.

Cómo usar varios scripts en un desencadenador de evento único:

Para cada script que quiera ejecutar, pase el script como argumento a la aplicación ScriptRunner.exe. La aplicación ejecuta cada script por separado, junto con los argumentos que se especifiquen para cada script. Use solo un script (ScriptRunner.exe) por desencadenador.

Nota

Se recomienda ejecutar primero la línea de scripts múltiples en un símbolo del sistema para asegurarse de que todos los argumentos se crean correctamente antes de agregarlos al archivo de configuración de la implementación.

Descripciones de scripts y parámetros de ejemplo

Con el archivo y la tabla del siguiente ejemplo, modifique el archivo de configuración de implementación o de usuario para agregar los scripts que quiere 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 del archivo de ejemplo Descripción

<AddPackage>

Nombre del desencadenador de eventos para el que se ejecuta un script, como agregar un paquete o publicar un paquete.

<Path>ScriptRunner.exe</Path>

Aplicación de inicio de scripts que se instala como parte de la instalación de cliente de App-V.

Nota

Aunque ScriptRunner.exe se instala como parte del cliente de App-V, la ubicación del cliente de App-V debe estar en %path% o ScriptRunner no se ejecutará. ScriptRunner.exe normalmente se encuentra en la carpeta C:\Archivos de programa\Microsoft Application Virtualization\Client.

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

-appvscript: token que representa el script real que se quiere ejecutar.

script1.exe: nombre del script que quiere ejecutar.

arg1 arg2: argumentos del script que quiere ejecutar.

-appvscriptrunnerparameters : token que representa las opciones de configuración de script1.exe

-wait: token que informa a ScriptRunner que espere a que la ejecución de script1.exe se complete antes de continuar con el siguiente script.

-timeout=x: token que informa a ScriptRunner que detenga la ejecución del script actual después de x segundos. Los demás scripts especificados seguirán ejecutándose.

-rollbackonerror: token que informa a ScriptRunner que detenga la ejecución de todos los scripts no ejecutados todavía 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 global para que sea mayor o igual a la suma de los valores de tiempo de espera de cada uno de los scripts.

Si cualquiera de los scripts informó de un error y rollbackonerror se estableció en true, ScriptRunner podría 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 aplicación en el equipo, el script no se ejecutará.

Crear un archivo de configuración dinámica mediante un archivo de manifiesto de App-V 5.1

Se puede 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 5.1 o con la secuenciación de un paquete que se genere con dos archivos de ejemplo.

Para obtener más información acerca de cómo crear el archivo mediante la consola de administración de App-V 5.1, vea Cómo crear un archivo de configuración personalizado mediante la consola de administración de App-V 5.1.

Para crear el archivo manualmente, la información de las secciones anteriores se puede combinar en un único archivo. Se recomienda usar los archivos generados por el secuenciador.

¿Tiene alguna sugerencia sobre App-V?

Agregue o vote sugerencias aquí. Para problemas de App-V, use el foro de TechNet de App-V.

Véase también

Tareas

Cómo aplicar el archivo de configuración de implementación con PowerShell
Cómo aplicar el archivo de configuración de usuario con PowerShell

Otros recursos

Operaciones para App-V 5.1

-----
Puede obtener más información sobre MDOP en la Biblioteca de TechNet, mediante la búsqueda de información de solución de problemas en la sección TechNet Wiki, o a través de Facebook o Twitter.
-----