使用 Microsoft Application Virtualization Sequencer (App-V Sequencer) 同时自动更新多个应用

适用于:

  • Windows 10
  • Windows 11

同时更新多个应用的过程与用于 同时自动对多个应用进行排序的过程类似。 但是,在更新时,还必须将以前创建的应用包文件传递到 App-V Sequencer cmdlet。

从 Windows 10 版本 1703 开始,运行 New-BatchAppVSequencerPackages cmdlet 或 App-V Sequencer 接口会捕获所有自定义项并将其存储为 App-V 项目模板。 如果以后要对此包进行更改,将从此模板文件自动加载自定义项。

使用 PowerShell cmdlet 更新多个应用

同时更新多个应用需要创建一个 ConfigFile ,其中包含与每轮更新相关的信息。 然后,cmdlet 使用此文件在“干净”检查点处启动 VM,将安装程序从主机设备复制到 VM,然后启动 App-V Sequencer 以监视指定的应用安装。

创建 ConfigFile 供 PowerShell cmdlet 使用

  1. 确定需要包含在应用包中的应用,然后打开文本编辑器,例如记事本。

  2. 为每个应用添加以下 XML 信息:

    • <AppName>. 要添加到包的应用的名称。

    • <InstallerFolder>. 包含应用安装程序的文件夹的文件路径。

    • <Installer>. 应用可执行文件的文件名。 此文件通常是 .exe 或 .msi 文件。

    • <InstallerOptions>. 应用安装所需的命令行选项。

    • <Package>. App-V 包位置的文件路径。 这些包是在对应用进行排序时创建的。

    • <TimeoutInMinutes>. cmdlet 等待更新完成的最长时间(以分钟为单位)。 可以根据应用本身的大小和复杂性为每个应用输入不同的值。

    • <Cmdlet>. 确定排序器是使用 cmdlet 还是 App-V Sequencer 接口。 如果为 True ,则告知排序器使用基于 cmdlet 的更新,而 False 则告知排序器使用 App-V Sequencer 接口。 对于不同的应用,可以在同一 ConfigFile 中同时使用 cmdlet 和 接口。

    • <Enabled>. 指示是否应对应用进行排序。 True 包括应用,而 False 将忽略它。 可以在批处理文件中包含任意数量的应用,但可以选择只启用其中几个应用。

      示例:

      <?xml version="1.0"?>
      <Applications>
          <Application>
              <AppName>Skype for Windows Update</AppName>
              <InstallerFolder>D:\Install\Update\SkypeforWindows</InstallerFolder>
              <Installer>SkypeSetup.exe</Installer>
              <InstallerOptions>/S</InstallerOptions>
              <Package>C:\App-V_Package\Microsoft_Apps\skypeupdate.appv</Package>
              <TimeoutInMinutes>20</TimeoutInMinutes>
              <Cmdlet>true</Cmdlet>
              <Enabled>true</Enabled>
          </Application>
          <Application>
              <AppName>Microsoft Power BI Update</AppName>
              <InstallerFolder>D:\Install\Update\PowerBI</InstallerFolder>
              <Installer>PBIDesktop.msi</Installer>
              <InstallerOptions>/S</InstallerOptions>
              <Package>C:\App-V_Package\MS_Apps\powerbiupdate.appv</Package>
              <TimeoutInMinutes>20</TimeoutInMinutes>
              <Cmdlet>true</Cmdlet>
              <Enabled>true</Enabled>
          </Application>
      </Applications>
      
  3. 将已完成的文件保存为 ConfigFile

启动 App-V Sequencer 接口和应用安装过程

  • 在主计算机上以管理员身份打开 PowerShell,并运行以下命令以开始批量更新:

    New-BatchAppVSequencerPackages –ConfigFile <path_to_configfile> –VMName <name_of_vm> -OutputPath <path_to_your_output>
    

    其中 <name_of_vm> 是虚拟机 (VM) 的名称,其中安装了将运行批处理更新的 App-V Sequencer,并且 <path_to_your_output> 是应在其中复制更新包的完整路径。

    cmdlet 在 VM 上创建“干净”检查点。 创建检查点后,cmdlet 会将 ConfigFile 中列出的第一个应用安装程序从主机计算机复制到 VM。 此复制操作通过 VMConnect) 打开 VM (的新会话,允许从命令行开始应用更新。 完成 VM 上第一个应用的更新和包创建后,会将包从 VM 复制到在 OutputPath 参数中指定的主机计算机。 然后,该 cmdlet 将转到列表中的第二个应用,将 VM 还原回“干净”检查点,并再次运行所有步骤,直到将第二个应用包复制到输出文件夹。 此过程会一直持续到列表中包含的所有应用完成。 在最后一个应用之后,VM 将还原为“干净”检查点并关闭。

使用 App-V Sequencer 接口更新多个应用

同时更新多个应用需要创建 ConfigFile 来收集与每轮更新相关的所有信息。 在 VM 上创建“干净”检查点后,App-V Sequencer 接口随后使用此文件。

创建 ConfigFile 以供 App-V Sequencer 接口使用

  1. 确定需要更新的应用,然后打开文本编辑器,例如记事本。

  2. 为每个应用添加以下 XML 信息:

    • <AppName>. 要添加到包的应用的名称。

    • <InstallerFolder>. 包含应用安装程序的文件夹的文件路径。

    • <Installer>. 应用可执行文件的文件名。 此文件通常是 .exe 或 .msi 文件。

    • <Package>. App-V 包位置的文件路径。 这些包是在对应用进行排序时创建的。

    • <TimeoutInMinutes>. cmdlet 应等待更新完成的最长时间(以分钟为单位)。 可以根据应用本身的大小和复杂性为每个应用输入不同的值。

    • <Cmdlet>. 确定排序器是使用 cmdlet 还是 App-V Sequencer 接口。 如果为 True ,则告知排序器使用基于 cmdlet 的更新,而 False 则告知排序器使用 App-V Sequencer 接口。 对于不同的应用,可以在同一 ConfigFile 中同时使用 cmdlet 和 接口。

    • <Enabled>. 指示是否应对应用进行排序。 True 包括应用,而 False 将忽略它。 可以在批处理文件中包含任意数量的应用,但可以选择只启用其中几个应用。

      示例:

      <?xml version="1.0"?>
      <Applications>
          <Application>
              <AppName>Skype for Windows Update</AppName>
              <InstallerFolder>D:\Install\Update\SkypeforWindows</InstallerFolder>
              <Installer>SkypeSetup.exe</Installer>
              <InstallerOptions>/S</InstallerOptions>
              <Package>C:\App-V_Package\Microsoft_Apps\skypeupdate.appv</Package>
              <TimeoutInMinutes>20</TimeoutInMinutes>
              <Cmdlet>false</Cmdlet>
              <Enabled>true</Enabled>
          </Application>
          <Application>
              <AppName>Microsoft Power BI Update</AppName>
              <InstallerFolder>D:\Install\Update\PowerBI</InstallerFolder>
              <Installer>PBIDesktop.msi</Installer>
              <InstallerOptions>/S</InstallerOptions>
              <Package>C:\App-V_Package\MS_Apps\powerbiupdate.appv</Package>
              <TimeoutInMinutes>20</TimeoutInMinutes>
              <Cmdlet>false</Cmdlet>
              <Enabled>true</Enabled>
          </Application>
      </Applications>
      

启动 App-V Sequencer 接口和应用安装过程

  • 在主计算机上以管理员身份打开 PowerShell,并运行以下命令以开始批量更新:

    New-BatchAppVSequencerPackages –ConfigFile <path_to_configfile> –VMName <name_of_vm> -OutputPath <path_to_your_output>
    

    其中 <name_of_vm> 是安装了 App-V Sequencer 的虚拟机 (VM) 的名称,你将在其中运行批处理更新,并且 <path_to_your_output> 是应在其中复制更新包的完整路径。

    此 cmdlet 在 VM 上创建“干净”检查点。 创建检查点后,cmdlet 会将 ConfigFile 中列出的第一个应用安装程序从主机计算机复制到 VM。 这将通过 VMConnect) 打开 VM (的新会话,应用更新从命令行开始。 完成 VM 上第一个应用的更新和包创建后,包将从 VM 复制到 OutputPath 参数中指定的主机计算机。 然后,该 cmdlet 将转到列表中的第二个应用,将 VM 还原回“干净”检查点,并再次运行所有步骤,直到将第二个应用包复制到输出文件夹。 此过程会一直持续到列表中包含的所有应用完成。 在最后一个应用之后,VM 将还原为“干净”检查点并关闭。

查看日志文件

同时对多个应用进行排序时,会出现三种类型的日志文件:

  • New-BatchAppVSequencerPackages-time_stamp<>.txt。 位于 %temp%\AutoSequencer\Logs 目录中。 此日志包含有关更新每个应用的活动的信息,例如“将安装程序复制到 VM”、“计划更新任务”等。 此外,如果应用超时,此日志将包含故障以及用于排查问题的检查点。
  • New-BatchAppVSequencerPackages-report-time_stamp<>.txt。 位于前面指定的 OutputPath 文件夹中。 此日志包含有关与 VM 建立的连接的信息,其中显示了是否存在任何故障。 此外,它还简要包含所有应用的成功或失败信息。
  • Log.txt 文件。 位于 “输出包” 文件夹中。 此文件包含 NewAppVSequencerPackage cmdlet 中包含的所有代码,包括允许的参数。