О динамической конфигурации App-V 5.1

Назначение: Application Virtualization 5.1

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

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

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

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

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

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

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

Примечание

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

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

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

XML-файл конфигурации пользователя

XML-файл конфигурации развертывания

Манифест пакета

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

В списке отображаются дополнительные сведения о типах этих двух файлов:

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

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

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

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

  • Расширения, которые будут интегрированы в базовую систему на пользователя: ярлыки, сопоставления типов файлов, протоколы URL-адресов, AppPaths, клиенты ПО и COM.

  • Виртуальные подсистемы: объекты приложений, переменные среды, изменения реестра, службы и шрифты.

  • Скрипты (только в пользовательском контексте).

  • Центр управления (для управления сосуществованием пакета с App-V 4.6).

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

  • Все параметры UserConfig, приведенные выше.

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

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

  • URL-адрес источника продукта.

  • Скрипты (только в машинном контексте).

  • Элементы управления для завершения дочерних процессов.

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

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

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

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

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

PackageId — это то же значение, что и в файле манифеста.

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

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

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

    <Приложения>

    <!-- В политике нельзя определить новые приложения. Клиент AppV Client игнорирует идентификатор приложения, который отсутствует в файле манифеста -->

    <Идентификатор приложения="{a56fa627-c35f-4a01-9e79-7d36aed8225a}" Enabled="false">

    </Application>

    </Applications>

    </UserConfiguration>

  2. Подсистемы. Расширения приложений и другие подсистемы упорядочены в качестве подузлов в элементе <Subsystems>:

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

    <Subsystems>

    ..

    </Subsystems>

    ..

    </UserConfiguration>

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

    Расширения.

    Некоторые подсистемы (подсистемы расширений) управляют расширениями. Это следующие подсистемы: ярлыки, сопоставления типов файлов, протоколы URL-адресов, AppPaths, клиенты ПО и COM.

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

    Далее приводится пример использования подсистемы ярлыков.

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

                                   <Shortcuts  Enabled="true">

                                               <Extensions>

                                                ...

                                               </Extensions>

                                   </Shortcuts>

                        В этом случае контент в манифесте будет игнорироваться.   

    2. Предположим, пользователь задает только следующее:

                                  <Shortcuts  Enabled="true"/>

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

    3. Предположим, пользователь задает следующее:

                                 <Shortcuts  Enabled="true">

                                               <Extensions/>

                                   </Shortcuts>

    В этом случае все ярлыки в манифесте будут игнорироваться. Никакие ярлыки не будут интегрироваться.

    Далее приводятся поддерживаемые подсистемы расширений.

    Ярлыки: эта подсистема управляет ярлыками, которые будут интегрированы в локальную систему. Далее приводится пример с двумя ярлыками:

    <Подсистемы>

    <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>Заполните динамические формы для сбора и многократного использования данных в организации с помощью 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>

          <!-- Параметр ApplicationId не является обязательным -->

        </Shortcut>

      </Extension>

     </Extensions>

    </Shortcuts>

    Сопоставления типов файлов: эта подсистема сопоставляет типы файлов с программами для их открытия по умолчанию, а также настраивает контекстное меню. (Типы MIME также можно настраивать с помощью этой подсистемы.) Далее приводится пример сопоставления типов файлов.

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

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

    <SoftwareClients Enabled="true">

      <ClientConfiguration EmailEnabled="false" />

    </SoftwareClients>

    AppPaths: если приложение, например contoso.exe, зарегистрировано с именем apppath myapp, эта подсистема позволяет ввести в меню «Выполнить» команду myapp, которая будет открывать приложение 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: эта подсистема позволяет приложению регистрировать локальные серверы COM. Возможные режимы: Integration (Интеграция), Isolated (Изолирован) или Off (Выключен). Если выбран изолированный режим:

    <COM Mode="Isolated"/>

    Прочие параметры

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

    Виртуальные объекты ядра:

    <Objects Enabled="false" />

    Виртуальный реестр: используется, если требуется установить раздел реестра в виртуальном реестре в 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>

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

  3. UserScripts: сценарии могут использоваться для установки или изменения виртуальной среды, а также в качестве сценариев выполнения во время развертывания или удаления, до выполнения приложения, или они могут использоваться для «очистки» среды после завершения приложения. Пример сценария см. в демонстрационном файле конфигурации, полученном из Sequencer. В приведенном ниже разделе «Сценарии» содержатся дополнительные сведения о разных триггерах, которые могут использоваться.

  4. ManagingAuthority: может использоваться, когда на одном компьютере сосуществуют две версии пакета, одна из которых развернута в App-V 4.6, а вторая — в App-V 5.0. Чтобы разрешить vNext App-V принимать точки расширения App-V 4.6 для указанного пакета, введите в файле UserConfig следующее (где PackageName — это GUID пакета в App-V 4.6):

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

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

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

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

PackageId — это то же значение, что и в файле манифеста.

Body — основной текст файла динамической конфигурации развертывания включает два следующих раздела.

  • Раздел конфигурации пользователя разрешает то же содержание, что и файл динамической конфигурации развертывания, рассматриваемый в предыдущем разделе. Когда пакет публикуется для пользователя, все параметры конфигурации расширений приложений из этого раздела будут переопределять параметры конфигурации в файле манифеста в пакете, если не будет предоставлен также и файл конфигурации пользователя. Если предоставлен файл UserConfig, то он будет использоваться вместо параметров пользователя из файла конфигурации развертывания. Если пакет публикуется глобально, то будет использоваться только содержимое файла конфигурации развертывания в комбинации с манифестом.

  • Раздел конфигурации машины содержит сведения, которые могут быть настроены только для всей машины, а не для конкретного пользователя на этой машине. Например, разделы реестра HKEY_LOCAL_MACHINE в VFS.

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

<UserConfiguration>

  ..

</UserConfiguration>

<MachineConfiguration>

..

</MachineConfiguration>

..

</MachineConfiguration>

</DeploymentConfiguration>

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

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

  1. Подсистемы — расширения приложений и другие подсистемы упорядочены в качестве подузлов в элементе <Подсистемы>:

    <MachineConfiguration>

      <Подсистемы>

      ..

      </Subsystems>

    ..

    </MachineConfiguration>

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

    Расширения

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

    Возможности приложения — это расширение используется программами по умолчанию в интерфейсе операционной системы Windows. Позволяет приложению регистрировать себя в качестве приложения, способного открывать файлы с определенными расширениями, в качестве претендента на ячейку интернет-браузера в меню «Пуск», в качестве приложения, способного открывать разные типы MIME Windows. Это расширение также делает виртуальное приложение видимым в пользовательском интерфейсе выбора программ по умолчанию.

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

    <Реестр>

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

  2. ProductSourceURLOptOut: указывает, может ли URL-адрес для пакета быть изменен глобально с помощью PackageSourceRoot (для поддержки сценариев с филиалами). По умолчанию этот параметр имеет значение false; изменение его значения начинает действовать при следующем запуске.  

    <MachineConfiguration>

      .. 

      <ProductSourceURLOptOut Enabled="true" />

      ..

    </MachineConfiguration>

  3. MachineScripts — пакет может быть настроен для выполнения сценариев во время развертывания, публикации или удаления. Пример сценария см. в демонстрационном файле конфигурации развертывания, созданном в Sequencer. В разделе «Сценарии» ниже содержатся дополнительные сведения о разных триггерах, которые могут использоваться.

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

    <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

(СИСТЕМА, Н/Д)

PublishPackage

X

X

(СИСТЕМА, пользователь)

UnpublishPackage

X

X

(СИСТЕМА, пользователь)

RemovePackage

X

(СИСТЕМА, Н/Д)

StartProcess

X

X

X

X

(Пользователь, пользователь)

ExitProcess

X

X

X

(Пользователь, пользователь)

StartVirtualEnvironment

X

X

X

(Пользователь, пользователь)

TerminateVirtualEnvironment

X

X

(Пользователь, пользователь)

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

App-V 5.1 поддерживает использование нескольких сценариев в одном событии-триггере для пакетов App-V, включая пакеты, преобразованные из App-V 4.6 в App-V 5.0 или более поздней версии. Чтобы включить использование нескольких сценариев, App-V 5.1 использует приложение запуска скрипта с именем 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>

Имя события-триггера, для которого выполняется сценарий, например добавление или публикация пакета.

<Path>ScriptRunner.exe</Path>

Средство запуска сценариев, которое устанавливается вместе с клиентом App-V.

Примечание

Хотя компонент ScriptRunner.exe установлен вместе с клиентом App-V, клиент App-V должен находиться в каталоге %path%, иначе ScriptRunner не запустится. Обычно ScriptRunner.exe находится в папке C:\Program Files\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 — маркер, представляющий фактический сценарий, который требуется запустить.

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.

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

Если какой-либо сценарий сообщает об ошибке, а для параметра rollbackonerror задано значение true, то ScriptRunner сообщит клиенту App-V об ошибке.

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

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

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

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

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

Есть предложение для App-V?

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

См. также

Задачи

Применение файла конфигурации развертывания с помощью PowerShell
Применение файла конфигурации пользователя с помощью PowerShell

Другие ресурсы

Операции для App-V 5.1

-----
Дополнительные сведения о MDOP можно найти в библиотеке TechNet, статьях по устранению неполадок на вики-сайте TechNet или подписавшись на новости в Facebook или Twitter.
-----