Поделиться через


Сведения о динамической конфигурации App-V

Относится к:

  • Windows 10
  • Windows 11

Динамическую конфигурацию можно использовать для настройки пакета App-V для пользователя. В этой статье описано, как создать или изменить существующий динамический файл конфигурации.

При редактировании файла динамической конфигурации он настраивает выполнение пакета App-V для пользователя или группы. Таким образом, настройка пакета становится более удобной за счет устранения необходимости повторной замены пакетов с помощью нужных параметров и позволяет обеспечить независимость содержимого пакета и пользовательских параметров.

Дополнительно: динамическая конфигурация

Пакеты виртуальных приложений содержат манифест, предоставляющий все основные сведения для пакета. Эта информация включает значения по умолчанию для параметров пакета и определяет параметры в самой базовой форме (без дополнительной настройки). Если вы хотите настроить эти значения по умолчанию для определенного пользователя или группы, можно создать и изменить следующие файлы:

  • Файл конфигурации пользователя
  • Файл конфигурации развертывания

Эти файлы .xml указывают параметры пакета, что позволяет настраивать пакеты, не затрагивая пакеты напрямую. При создании пакета последовательность автоматически создает развертывание по умолчанию и конфигурацию пользователя .xml файлы с использованием данных манифеста пакета. Эти автоматически созданные файлы конфигурации отражают параметры пакета по умолчанию, настроенные во время виртуализации. Если применить эти файлы конфигурации к пакету в форме, созданной с помощью последовательности, пакеты будут иметь те же параметры по умолчанию, что и из манифеста. Этот результат предоставляет шаблон для конкретного пакета, чтобы приступить к работе, если необходимо изменить какие-либо из значений по умолчанию.

Примечание.

Приведенные ниже сведения можно использовать только для изменения файлов конфигурации, созданных последовательностью, для настройки пакетов в соответствии с конкретными требованиями пользователей или групп.

Содержимое файла динамической конфигурации

Все добавления, удаления и обновления в файлах конфигурации должны быть выполнены в соответствии со значениями по умолчанию, указанными в манифесте пакета. В следующем списке представлена связь между этими файлами в том, как они будут считываться, от большинства до наименьшего приоритета:

  • Файл .xml конфигурации пользователя
  • Файл .xml конфигурации развертывания
  • Манифест пакета

Первый элемент представляет, что будет прочитано последним. Поэтому его содержимое имеет приоритет. Все пакеты по своей сути содержат и предоставляют параметры по умолчанию из манифеста пакета, но они также имеют наименьший приоритет. Если применить файл конфигурации развертывания .xml с настроенными параметрами, он переопределит значения по умолчанию манифеста пакета. Если применить конфигурацию пользователя .xml файл с настроенными параметрами до переопределения значений по умолчанию манифеста пакета, он переопределит конфигурацию развертывания и значения по умолчанию манифеста пакета.

Существует два типа файлов конфигурации:

  • Файл конфигурации пользователя (UserConfig): позволяет указать или изменить пользовательские параметры для пакета. Эти параметры будут применены к конкретному пользователю при развертывании пакета на компьютере с клиентом App-V.
  • Файл конфигурации развертывания (DeploymentConfig): позволяет указать или изменить параметры по умолчанию для пакета. Эти параметры будут применяться ко всем пользователям при развертывании пакета на компьютере с клиентом App-V.

С помощью файла UserConfig можно настроить параметры пакета для определенного набора пользователей на компьютере или внести изменения, которые будут применены к локальным расположениям пользователей, таким как HKCU. Файл DeploymentConfig можно использовать для изменения параметров пакета по умолчанию для всех пользователей на компьютере или внесения изменений, которые будут применены к глобальным расположениям, таким как HKEY_LOCAL_MACHINE и папка Все пользователи.

Файл UserConfig предоставляет параметры конфигурации, которые можно применить к одному пользователю, не затрагивая других пользователей в клиенте:

  • Расширения, которые будут интегрированы в собственную систему для каждого пользователя: ярлыки, связи File-Type, протоколы URL-адресов, AppPaths, программные клиенты и COM.
  • Виртуальные подсистемы: объекты приложений, переменные среды, изменения реестра, службы и шрифты.
  • Скрипты (только контекст пользователя).

Файл DeploymentConfig предоставляет параметры конфигурации в двух разделах: один относится к контексту компьютера, а второй — к контексту пользователя, предоставляя те же возможности, что и в предыдущем списке UserConfig.

  • Все параметры UserConfig из предыдущего раздела этого раздела
  • Расширения, которые могут применяться только глобально для всех пользователей
  • Виртуальные подсистемы, которые можно настроить для глобальных расположений компьютеров, таких как реестр
  • URL-адрес источника продукта
  • Скрипты (только контекст компьютера)
  • Элементы управления для завершения дочерних процессов

Структура файла

Структура файла динамической конфигурации App-V описана в следующем разделе.

Файл динамической конфигурации пользователя

Пример заголовка файла динамической конфигурации пользователя:

<?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 — это то же значение, что и в файле манифеста.

Текст файла динамической конфигурации пользователя

Текст файла динамической конфигурации пользователя может содержать все точки расширения приложений, определенные в файле манифеста, и сведения для настройки виртуальных приложений. В тексте разрешено четыре подраздела:

Приложения. Всем расширениям приложений, содержащимся в файле манифеста в пакете, присваивается идентификатор приложения, который также определяется в файле манифеста. Это позволяет включить или отключить все расширения для определенного приложения в пакете. Идентификатор приложения должен существовать в файле манифеста, иначе он будет игнорироваться.

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

Подсистемы: AppExtensions и другие подсистемы упорядочены в виде подмнодений в <Subsystems>, как показано в следующем примере.

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

Каждую подсистему можно включить или отключить с помощью атрибута Enabled . В следующих разделах описаны различные подсистемы и примеры использования.

Расширения файлов динамической конфигурации пользователя

Подсистемы расширений управляют расширениями. К этим подсистемам относятся ярлыки, File-Type связи, протоколы URL-адресов, AppPaths, программные клиенты и COM.

Подсистемы расширений можно включить и отключить независимо от содержимого.  Таким образом, если ярлыки включены, клиент будет по умолчанию использовать сочетания клавиш, содержащиеся в манифесте. Каждая подсистема расширения может содержать <Extensions> узел. Если этот дочерний элемент присутствует, клиент игнорирует содержимое в файле манифеста для этой подсистемы и будет использовать только содержимое в файле конфигурации.

Примеры подсистемы сочетаний клавиш

Пример 1

Содержимое будет игнорироваться, если пользователь определил следующие синтаксисы в динамическом файле конфигурации или файле конфигурации развертывания:

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

Пример 2

Содержимое манифеста будет интегрировано во время публикации, если пользователь определил только следующий синтаксис:


                                    `<Shortcuts  Enabled="true"/>`

Пример 3

Все сочетания клавиш в манифесте будут игнорироваться, а сочетания клавиш не будут интегрированы, если пользователь определяет следующие синтаксисы:

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

Поддерживаемые подсистемы расширений

Ярлыки. Эта подсистема управляет сочетаниями клавиш, которые будут интегрированы в локальную систему. В следующем примере есть два сочетания клавиш:

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

Сопоставления типов файлов. Связывает типы файлов с программами для открытия по умолчанию и для настройки контекстного меню. (С помощью этой подсистемы также можно настроить типы MIME.) Пример сопоставления 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>

Протоколы URL-адресов. Эта подсистема управляет протоколами URL-адресов, интегрированными в локальный реестр клиентского компьютера. В следующем примере показан протокол 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>

Клиенты программного обеспечения. Позволяет приложению регистрироваться в качестве клиента электронной почты, читателя новостей или проигрывателя мультимедиа и делает приложение видимым в пользовательском интерфейсе Set Program Access and Computer Defaults (Установка доступа к программе и компьютер по умолчанию). В большинстве случаев требуется только включить и отключить его. Существует также элемент управления, который позволяет включать или отключать почтовый клиент только в том случае, если вы хотите, чтобы все остальные клиенты оставались такими, как они есть.

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

AppPaths. Если приложение, например contoso.exe, зарегистрировано с именем apppath "myapp", эта подсистема позволяет открыть приложение, введя "myapp" в меню запуска.

    <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: позволяет приложению регистрировать локальные COM-серверы. Режим может быть интеграцией, изолированным или выключенным. Когда Isol.

    <COM Mode="Isolated"/>

Другие параметры файла динамической конфигурации пользователя

Помимо расширений, можно включить, отключить и изменить следующие подсистемы.

Объекты виртуального ядра

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

Виртуальная файловая система

          <FileSystem Enabled="true" />

Виртуальные шрифты

          <Fonts Enabled="false" />

Переменные виртуальной среды

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

Виртуальные службы

          <Services Enabled="false" />

UserScripts

Скрипты можно использовать для настройки или изменения виртуальной среды и выполнения скриптов при развертывании или удалении перед выполнением приложения или для очистки среды после завершения работы приложения. Ознакомьтесь с примером файла пользовательской конфигурации, выходными данными последовательности, чтобы увидеть пример скрипта. Дополнительные сведения о различных триггерах, которые можно использовать для настройки скриптов, см. в разделе Скрипты .

Файл конфигурации динамического развертывания

Заголовок файла конфигурации динамического развертывания

Заголовок файла конфигурации развертывания должен выглядеть примерно так:

<?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 — это то же значение, что и значение, существующее в файле манифеста.

Текст файла конфигурации динамического развертывания

Текст файла конфигурации развертывания состоит из двух разделов:

  • В разделе Конфигурация пользователя допускается то же содержимое, что и в файле конфигурации пользователя, описанном в предыдущем разделе. При публикации пакета для пользователя все параметры конфигурации appextensions в этом разделе переопределяют соответствующие параметры манифеста в пакете, если файл конфигурации пользователя также не указан. Если также указан файл UserConfig, он будет использоваться вместо параметров пользователя в файле конфигурации развертывания. Если пакет публикуется глобально, в сочетании с манифестом будет использоваться только содержимое файла конфигурации развертывания.
  • Раздел Конфигурация компьютера содержит сведения, которые можно настроить только для всего компьютера, а не для конкретного пользователя на компьютере. Например, HKEY_LOCAL_MACHINE разделы реестра в VFS.
<DeploymentConfiguration PackageId="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="http://schemas.microsoft.com/appv/2010/deploymentconfiguration">
<UserConfiguration>
..
</UserConfiguration>
<MachineConfiguration>
..
</MachineConfiguration>
..
</MachineConfiguration>
</DeploymentConfiguration>

Конфигурация пользователей. Дополнительные сведения об этом разделе см. в разделе Динамическая конфигурация пользователей.

Конфигурация компьютера. В разделе Конфигурация компьютера файла конфигурации развертывания настраивается информация, которая может быть задана только для всего компьютера, а не для конкретного пользователя на компьютере, например для HKEY_LOCAL_MACHINE разделов реестра в Виртуальном реестре. Этот элемент может содержать следующие четыре подраздела.

Подсистем

AppExtensions и другие подсистемы упорядочены как подноды в разделе <Subsystems>:

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

В следующем разделе описаны различные подсистемы и примеры использования.

Расширения

Некоторые подсистемы (подсистемы расширений) управляют расширениями, которые могут применяться только ко всем пользователям. Подсистема — это возможности приложений. Так как эта подсистема может применяться только ко всем пользователям, пакет должен быть опубликован глобально, чтобы этот тип расширения можно было интегрировать в локальную систему. Правила для элементов управления расширения и параметров пользовательской конфигурации также применяются к элементам в конфигурации компьютера.

Возможности приложений

Расширение возможностей приложений используется программами по умолчанию в интерфейсе ОС Windows; она позволяет приложению зарегистрировать себя как способного открывать определенные расширения файлов, в качестве претендента на слот браузера меню "Пуск" и как способного открывать определенные типы WINDOWS MIME. Это расширение также делает виртуальное приложение видимым в пользовательском интерфейсе Set Default Programs (Установка программ по умолчанию).

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

Другие параметры файла конфигурации динамического развертывания

В дополнение к расширениям можно изменить другие подсистемы:

  • Виртуальный реестр на уровне компьютера. Используйте эту подсистему, если требуется задать раздел реестра в виртуальном реестре в 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>
  • Объекты виртуального ядра на уровне компьютера
    <Objects>
    <NotIsolate>
       <Object Name="testObject" />
     </NotIsolate>
    </Objects>
  • ProductSourceURLOptOut: указывает, можно ли глобально изменить URL-адрес пакета с помощью PackageSourceRoot для поддержки сценариев филиала. По умолчанию задано значение False. Изменения значения вступают в силу при следующем запуске.
    <MachineConfiguration>
      ..
      <ProductSourceURLOptOut Enabled="true" />
      ..
    </MachineConfiguration>
  • MachineScripts. Пакет можно настроить для выполнения скриптов при развертывании, публикации или удалении. Пример скрипта см. в примере файла конфигурации развертывания, созданного с помощью программы sequencer. В следующем разделе содержатся дополнительные сведения о различных триггерах, которые можно использовать для настройки скриптов.

  • TerminateChildProcess. Эту подсистему можно использовать, чтобы указать, что дочерние процессы исполняемого файла приложения будут завершены при завершении 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>

Скрипты

В следующей таблице описаны различные события скрипта и контекст, в котором они могут выполняться.

Время выполнения скрипта Можно указать в конфигурации развертывания. Можно указать в пользовательской конфигурации Может выполняться в виртуальной среде пакета Может выполняться в контексте определенного приложения Выполняется в контексте системы или пользователя: (конфигурация развертывания, конфигурация пользователя)
AddPackage X (SYSTEM, Н/Д)
PublishPackage X X (SYSTEM, User)
Отмена публикации пакета X X (SYSTEM, User)
RemovePackage X (SYSTEM, Н/Д)
StartProcess X X X X (Пользователь, Пользователь)
ExitProcess X X X (Пользователь, Пользователь)
StartVirtualEnvironment X X X (Пользователь, Пользователь)
TerminateVirtualEnvironment X X (Пользователь, Пользователь)

Использование нескольких скриптов в одном триггере события

App-V поддерживает использование нескольких скриптов в одном триггере событий для пакетов App-V, включая пакеты, преобразованные из App-V 4.6 в App-V для Windows. Чтобы включить использование нескольких скриптов, App-V использует приложение средства запуска скриптов с именем ScriptRunner.exe, которое входит в клиент App-V.

Использование нескольких скриптов в одном триггере события

Для каждого скрипта, который требуется выполнить, передайте этот скрипт в качестве аргумента приложению ScriptRunner.exe. Приложение будет запускать каждый скрипт отдельно вместе с аргументами, указанными для каждого скрипта. Используйте только один скрипт (ScriptRunner.exe) для каждого триггера.

Примечание.

Мы рекомендуем сначала запустить строку с несколькими сценариями из командной строки, чтобы убедиться, что все аргументы созданы правильно, прежде чем добавлять их в файл конфигурации развертывания.

Примеры описаний скриптов и параметров

Используя следующий пример файла и таблицы, измените файл конфигурации развертывания или пользователя, чтобы добавить скрипты, которые требуется запустить.

<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>
Параметр в примере файла Описание
<AddPackage> Имя триггера события, для который выполняется скрипт, например при добавлении или публикации пакета.
ScriptRunner.exe Приложение средства запуска скриптов, включенное в клиент App-V.

Хотя ScriptRunner.exe включен в клиент App-V, расположение клиента App-V должно находиться в %path% иначе ScriptRunner не будет выполняться. ScriptRunner.exe обычно находится в папке 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— токен, представляющий фактический скрипт, который требуется запустить.
script1.exe— имя скрипта, который требуется запустить.
arg1 arg2— аргументы для скрипта, который требуется запустить.
-appvscriptrunnerparameters— токен, представляющий параметры выполнения для script1.exe.
-wait— токен, указывающий ScriptRunner дождаться завершения выполнения script1.exe, прежде чем перейти к следующему скрипту.
-timeout=x— токен, информирующий ScriptRunner о прекращении выполнения текущего скрипта через x секунды. Все остальные указанные скрипты по-прежнему будут выполняться.
-rollbackonerror— токен, который сообщает ScriptRunner о прекращении выполнения всех еще не запущенных скриптов и откате ошибки в клиенте App-V.
<Wait timeout=”40” RollbackOnError=”true”/> Ожидает общего завершения ScriptRunner.exe.

Задайте значение времени ожидания для общего средства выполнения, которое больше или равно сумме значений времени ожидания в отдельных скриптах.

Если какой-либо отдельный скрипт сообщил об ошибке, а для отката задано значение True, то ScriptRunner должен сообщить об ошибке клиенту App-V.

ScriptRunner запустит любой скрипт, тип файла которого связан с приложением, установленным на компьютере. Если связанное приложение отсутствует или тип файла скрипта не связан ни с каким из приложений компьютера, скрипт не будет выполняться.

Create файла динамической конфигурации с помощью файла манифеста App-V

Файл динамической конфигурации можно создать одним из трех методов: вручную, с помощью консоли управления App-V или путем виртуализации пакета, который создаст пакет с двумя примерами файлов.

Дополнительные сведения о создании файла с помощью консоли управления App-V см. в статье Создание пользовательского файла конфигурации с помощью консоли управления App-V.

Чтобы создать файл вручную, можно объединить компоненты, перечисленные в предыдущих разделах, в один файл. Однако рекомендуется использовать файлы, созданные секвенатором, а не файлы, созданные вручную.