О динамической конфигурации 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 — основной текст файла динамической конфигурации пользователя может включать все пункты расширений приложений, заданные в файле манифеста, а также сведения для настройки виртуальных приложений. В основном тексте разрешены четыре подраздела.
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>
Подсистемы. Расширения приложений и другие подсистемы упорядочены в качестве подузлов в элементе <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.
Подсистемы расширений можно включать и отключать независимо от содержимого. Таким образом, если ярлыки включены, то клиент будет использовать ярлыки из файла манифеста по умолчанию. Каждая подсистема расширений может иметь узел <Расширения>. Если этот дочерний элемент присутствует, то клиент будет игнорировать содержимое файла манифеста для этой подсистемы и использовать только содержимое файла конфигурации.
Далее приводится пример использования подсистемы ярлыков.
Предположим, пользователь задает в файле динамической конфигурации или конфигурации развертывания следующее:
<Shortcuts Enabled="true">
<Extensions>
...
</Extensions>
</Shortcuts>
В этом случае контент в манифесте будет игнорироваться.
Предположим, пользователь задает только следующее:
<Shortcuts Enabled="true"/>
В этом случае во время публикации содержимое файла манифеста будет интегрироваться.
Предположим, пользователь задает следующее:
<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" />
UserScripts: сценарии могут использоваться для установки или изменения виртуальной среды, а также в качестве сценариев выполнения во время развертывания или удаления, до выполнения приложения, или они могут использоваться для «очистки» среды после завершения приложения. Пример сценария см. в демонстрационном файле конфигурации, полученном из Sequencer. В приведенном ниже разделе «Сценарии» содержатся дополнительные сведения о разных триггерах, которые могут использоваться.
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 в виртуальном реестре. В этом элементе могут находиться четыре подраздела.
Подсистемы — расширения приложений и другие подсистемы упорядочены в качестве подузлов в элементе <Подсистемы>:
<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>
ProductSourceURLOptOut: указывает, может ли URL-адрес для пакета быть изменен глобально с помощью PackageSourceRoot (для поддержки сценариев с филиалами). По умолчанию этот параметр имеет значение false; изменение его значения начинает действовать при следующем запуске.
<MachineConfiguration>
..
<ProductSourceURLOptOut Enabled="true" />
..
</MachineConfiguration>
MachineScripts — пакет может быть настроен для выполнения сценариев во время развертывания, публикации или удаления. Пример сценария см. в демонстрационном файле конфигурации развертывания, созданном в Sequencer. В разделе «Сценарии» ниже содержатся дополнительные сведения о разных триггерах, которые могут использоваться.
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>
Параметр в файле примера | Описание |
---|---|
|
Имя события-триггера, для которого выполняется сценарий, например добавление или публикация пакета. |
|
Средство запуска сценариев, которое устанавливается вместе с клиентом App-V. Примечание Хотя компонент ScriptRunner.exe установлен вместе с клиентом App-V, клиент App-V должен находиться в каталоге %path%, иначе ScriptRunner не запустится. Обычно ScriptRunner.exe находится в папке C:\Program Files\Microsoft Application Virtualization\Client. |
|
|
|
Ожидает общего завершения ScriptRunner.exe. Задайте значение времени ожидания для всей процедуры выполнения так, чтобы оно было больше или равно сумме значений времени ожидания для отдельных сценариев. Если какой-либо сценарий сообщает об ошибке, а для параметра rollbackonerror задано значение |
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
Другие ресурсы
-----
Дополнительные сведения о MDOP можно найти в библиотеке TechNet, статьях по устранению неполадок на вики-сайте TechNet или подписавшись на новости в Facebook или Twitter.
-----