关于 App-V 动态配置

适用于:

  • Windows 10
  • Windows 11

可以使用动态配置为用户自定义 App-V 包。 本文介绍如何创建或编辑现有的动态配置文件。

编辑动态配置文件时,它会为用户或组自定义 App-V 包的运行方式。 因此,包自定义更加方便,因为无需使用所需的设置重新对包进行序列,并提供使包内容和自定义设置保持独立的方法。

高级:动态配置

虚拟应用程序包包含一个清单,该清单提供包的所有核心信息。 此信息包括包设置的默认值,并确定 (的最基本格式的设置,没有进一步的自定义) 。 如果要为特定用户或组调整这些默认值,可以创建和编辑以下文件:

  • 用户配置文件
  • 部署配置文件

这些 .xml 文件指定包设置,使你可以自定义包,而不会影响包。 创建包时,排序器使用包清单数据自动生成默认部署和用户配置 .xml 文件。 这些自动生成的配置文件反映了在排序期间配置的包默认设置。 如果将这些配置文件应用于排序器生成的格式的包,则包将具有来自其清单的相同默认设置。 此结果提供了一个包特定的模板,用于在必须更改任何默认值时开始使用。

注意

以下信息只能用于修改 sequencer 生成的配置文件,以自定义包以满足特定的用户或组要求。

动态配置文件内容

配置文件中的所有添加、删除和更新都需要根据包清单信息指定的默认值进行。 以下列表表示这些文件在读取方式(从最高优先级到最低优先级)之间的关系:

  • 用户配置 .xml 文件
  • 部署配置 .xml 文件
  • 包清单

第一项表示最后将读取的内容。 因此,其内容优先。 所有包本身都包含包清单中的默认设置并提供默认设置,但它的优先级也最低。 如果使用自定义设置 .xml 文件应用部署配置,它将替代包清单的默认值。 如果在替代包清单的默认值之前应用具有自定义设置的用户配置 .xml 文件,它将覆盖部署配置和包清单的默认值。

有两种类型的配置文件:

  • 用户配置文件 (UserConfig) :允许指定或修改包的自定义设置。 当包部署到运行 App-V 客户端的计算机时,这些设置将应用于特定用户。
  • 部署配置文件 (DeploymentConfig) :允许指定或修改包的默认设置。 将包部署到运行 App-V 客户端的计算机时,这些设置将应用于所有用户。

可以使用 UserConfig 文件为计算机上的一组特定用户自定义包的设置,或进行将应用于本地用户位置(如 HKCU)的更改。 可以使用 DeploymentConfig 文件为计算机上的所有用户修改包的默认设置,或者对将应用于全局位置(例如HKEY_LOCAL_MACHINE和“所有用户”文件夹)进行更改。

UserConfig 文件提供可以应用于单个用户的配置设置,而不会影响客户端上的任何其他用户:

  • 将集成到每个用户的本机系统中的扩展:快捷方式、File-Type 关联、URL 协议、AppPath、软件客户端和 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 与清单文件中存在的值相同。

动态用户配置文件正文

动态用户配置文件的正文可以包括清单文件中定义的所有应用扩展点,以及配置虚拟应用程序的信息。 正文中允许有四个子部分:

应用程序:包内清单文件中包含的所有应用扩展都分配有应用程序 ID,该 ID 也在清单文件中定义。 这允许启用或禁用包中给定应用程序的所有扩展。 应用程序 ID 必须存在于清单文件中,否则将被忽略。

    <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 协议、AppPath、软件客户端和 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>

软件客户端:允许应用注册为电子邮件客户端、新闻阅读器或媒体播放器,并使应用在“设置程序访问和计算机默认值”UI 中可见。 在大多数情况下,只需启用和禁用它。 还有一个控件允许你启用或禁用电子邮件客户端,前提是你希望所有其他客户端保持原样。

    <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 与清单文件中存在的值相同。

动态部署配置文件正文

部署配置文件的正文包括两个部分:

  • “用户配置”部分允许与上一部分所述的用户配置文件相同的内容。 将包发布到用户时,本节中的任何应用扩展配置设置都将覆盖包内清单中的相应设置,除非还提供了用户配置文件。 如果还提供了 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 OS 界面中使用;它允许应用程序自行注册为能够打开某些文件扩展名、作为“开始”菜单的 Internet 浏览器槽的竞争者,以及能够打开某些 Windows MIME 类型。 此扩展还使虚拟应用程序在“设置默认程序”UI 中可见。

    <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:指示是否可以通过 PackageSourceRoot 全局修改包的 URL 以支持分支机构方案。 默认情况下,它设置为 False。 对值的更改将在下次启动时生效。
    <MachineConfiguration>
      ..
      <ProductSourceURLOptOut Enabled="true" />
      ..
    </MachineConfiguration>
  • MachineScripts:可以将包配置为在部署、发布或删除时执行脚本。 若要查看示例脚本,请参阅序列器生成的示例部署配置文件。 以下部分提供有关可用于设置脚本的各种触发器的详细信息。

  • 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、用户)
UnpublishPackage X X (SYSTEM、用户)
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 for 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 客户端中包含的脚本启动器应用程序。

尽管 app-V 客户端中包含 ScriptRunner.exe,但 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 完成。

将整个运行器的超时值设置为大于或等于单个脚本上的超时值之和。

如果任何单个脚本报告错误并且 rollbackonerror 设置为 True,则 ScriptRunner 应向 App-V 客户端报告错误。

ScriptRunner 将运行其文件类型与计算机上安装的应用程序关联的任何脚本。 如果缺少关联的应用程序,或者脚本的文件类型未与计算机的任何应用程序相关联,则脚本不会运行。

使用 App-V 清单文件创建动态配置文件

可以使用以下三种方法之一创建动态配置文件:手动、使用 App-V 管理控制台或排序包,这将生成包含两个示例文件的包。

有关如何使用 App-V 管理控制台创建文件的详细信息,请参阅 如何使用 App-V 管理控制台创建自定义配置文件

若要手动创建文件,可以将前面部分中列出的组件合并到单个文件中。 但是,我们建议使用排序器生成的文件,而不是手动创建的文件。