关于 App-V 报告

适用于:

  • Windows 10
  • Windows 11

Application Virtualization (App-V) 包括一个内置报告功能,该功能收集有关运行 App-V 客户端的计算机和虚拟应用程序包使用情况的信息。 可以使用此信息从集中式数据库生成报告。

App-V 报告概述

以下列表显示在 App-V 中用于报告的端到端高级工作流。

  1. App-V 报表服务器需要满足以下条件:

    • Internet 信息服务 (IIS) Web 服务器角色

    • IIS/安全) 下的 Windows 身份验证角色 (

    • 使用 SQL Server Reporting Services (SSRS) 安装和运行的SQL Server

      若要确认SQL Server Reporting Services正在运行,请在将托管 App-V Reporting 的服务器上以管理员身份在 Web 浏览器中输入 https://localhost/Reports 。 应显示SQL Server Reporting Services主页。

  2. 安装 App-V 报表服务器和关联的数据库。 有关安装报表服务器的详细信息,请参阅 如何在独立计算机上安装报表服务器并将其连接到数据库。 配置运行 App-V 客户端的计算机应将数据发送到报表服务器的时间。

  3. 如果不使用电子软件分发系统(如 Configuration Manager)查看报表,则可以在 SQL Server Reporting Service 中定义报表。

    注意

    如果使用Configuration Manager与 App-V 集成,则大多数报表都是从 Configuration Manager而不是 App-V 生成的。

  4. 使用 Import-Module AppvClient 作为管理员导入 App-V Windows PowerShell 模块后,启用 App-V 客户端报告。 此示例Windows PowerShell命令启用 App-V 报告:

    Set-AppvClientConfiguration -ReportingServerURL <url>:<port> -ReportingEnabled 1 -ReportingStartTime <0-23> -ReportingRandomDelay <#min>
    

    若要立即发送 App-V 报表数据,请在 App-V 客户端上运行 Send-AppvClientReport

    有关在 App-V 客户端上配置报告的详细信息,请参阅 关于客户端配置设置。 若要使用Windows PowerShell管理 App-V 报告,请参阅如何使用 PowerShell 在 App-V 客户端上启用报告

  5. 报表服务器从 App-V 客户端接收数据后,会将数据发送到报告数据库。 当数据库接收并处理客户端数据时,会将成功的回复发送到报表服务器,然后通知 App-V 客户端。

  6. 当 App-V 客户端收到成功通知时,它会清空数据缓存以节省空间。

    注意

    默认情况下,在服务器确认接收数据后,将清除缓存。 可以手动配置客户端以保存数据缓存。

    如果 App-V 客户端设备未收到来自服务器的成功通知,它会将数据保留在缓存中,并尝试在下一个配置的时间间隔重新发送数据。 客户端继续收集数据并将其添加到缓存。

App-V 报表服务器常见问题解答

以下部分提供有关 App-V 报告工作原理的常见问题解答。

报告信息发送到报告数据库的频率如何?

频率取决于运行 App-V 客户端的报告配置的计算机。 必须配置手动发送报告数据的频率或间隔,因为默认情况下未启用 App-V 报告。

报表服务器数据库中存储哪些信息?

以下信息存储在报表数据库中:

  • 运行 App-V 客户端的计算机上运行的操作系统:主机名、版本、Service Pack、类型 - 客户端/服务器、处理器体系结构。
  • App-V 客户端信息:版本。
  • 已发布的包列表:GUID、版本 GUID、名称。
  • 应用程序使用情况信息:名称、版本、流式处理服务器、用户 (域\别名) 、包版本 GUID、启动状态和时间、关闭时间。

发送到报表服务器的平均信息量是多少?

具体视情况而定。 可以将三组数据发送到报表服务器:

  • 操作系统和 App-V 客户端信息,每次发送到服务器时大约为 150 字节。
  • 已发布的包列表,每个 30 个包大约 7 KB。 仅当使用发布刷新更新包列表时,才会发送此消息,这很少执行;如果没有更改,则不会发送此信息。
  • 虚拟应用程序使用情况信息约为每个事件 0.25 KB。 如果在发送信息之前同时发生,则打开和关闭将计为一个事件。 通过计划任务发送信息时,仅将自上次成功上传以来的数据发送到服务器。 如果通过 Windows PowerShell cmdlet 手动发送,则有一个名为 DeleteOnSuccess 的可选参数,用于控制下次是否需要重新发送数据。

例如,如果打开和关闭了 20 个应用程序,并且计划每天发送报告信息,则典型的每日流量应约为 0.15 KB + 20 × 0.25 KB 或大约 5 KB/用户。

是否可以计划报告?

是。 除了使用 Windows PowerShell cmdlet (Send-AppvClientReport) 手动发送报告外,还可以计划任务,以便自动执行。 有两种方法可以计划报告:

  • 使用 Windows PowerShell cmdlet:Set-AppvClientConfiguration。 例如:

    Set-AppvClientConfiguration -ReportingEnabled 1 -ReportingServerURL http://any.com/appv-reporting
    

    有关客户端配置设置的完整列表,请转到 关于客户端配置设置 并查找以下条目: ReportingEnabledReportingServerURLReportingDataCacheLimitReportingDataBlockSizeReportingStartTimeReportingRandomDelayReportingInterval

  • 使用 组策略。 如果使用域控制器进行分发,则设置与前面列出的设置相同。

    注意

    组策略设置替代使用 Windows PowerShell 配置的本地设置。

App-V 客户端报告

若要使用 App-V 报告,必须启用并配置 App-V 客户端。 若要在客户端上配置报告,请使用 Windows PowerShell cmdlet Set-AppVClientConfiguration 或 组策略 ADMX 模板。 有关Windows PowerShell cmdlet 的详细信息,请参阅关于客户端配置设置。 以下部分提供了用于配置 App-V 客户端报告的Windows PowerShell命令的示例。

使用 Windows PowerShell 配置 App-V 客户端报告

以下示例演示Windows PowerShell参数如何配置 App-V 客户端的报告功能。

注意

还可以使用 App-V ADMX 模板中的组策略设置配置以下配置任务。 App-V 设置位于 计算机配置>管理模板>系统>App-V 下。

在运行 App-V 客户端的计算机上启用报告和启动数据收集

使用以下命令在运行 App-V 客户端的计算机上启用报告和启动日期收集:

Set-AppVClientConfiguration –ReportingEnabled 1

将客户端配置为自动将数据发送到特定的报表服务器

若要将客户端配置为自动将数据发送到特定的报表服务器,请使用具有以下格式的 命令:

Set-AppVClientConfiguration -ReportingServerURL http://MyReportingServer:MyPort/ -ReportingStartTime 20 -ReportingInterval 1 -ReportingRandomDelay 30

此示例命令将客户端配置为自动将报告数据发送到报表服务器 URL http://MyReportingServer:MyPort/。 报告数据将在每天晚上 8:00 到晚上 8:30 之间发送到 URL,具体取决于会话生成的随机延迟。

限制客户端数据缓存的大小

若要限制客户端的数据缓存大小,请使用具有以下格式的 命令:

Set-AppvClientConfiguration –ReportingDataCacheLimit 100

此示例命令将 App-V 客户端计算机的报告缓存的最大大小配置为 100 MB。 如果在将数据发送到服务器之前达到缓存限制,则会滚动更新日志,并根据需要覆盖数据。

配置在客户端和服务器之间通过网络传输的数据块大小

若要配置数据块大小,请使用具有以下格式的命令:

Set-AppvClientConfiguration –ReportingDataBlockSize 10240

此示例命令将数据块的最大大小指定为 10,240 MB。

收集的数据类型

下表显示了可以使用 App-V 报告收集的信息类型。

客户端信息 包信息 应用程序使用情况
主机名 包名称 开始和结束时间
App-V 客户端版本 程序包版本 运行状态
处理器体系结构 包源 关闭状态
操作系统版本 缓存百分比 应用程序名称
Service Pack 级别 应用程序版本
操作系统类型 用户名
连接组

客户端以 .xml 格式收集和保存此数据。 数据缓存默认处于隐藏状态,需要管理员权限才能打开 XML 文件。

将数据发送到服务器

可以将运行 App-V 客户端的计算机配置为自动将数据发送到指定的报表服务器。 若要指定服务器,请使用 Set-AppvClientConfiguration cmdlet 和以下设置:

  • ReportingEnabled
  • ReportingServerURL
  • ReportingStartTime
  • ReportingInterval
  • ReportingRandomDelay

配置前面的设置后,必须创建计划任务。 计划任务将与 ReportingServerURL 设置指定的服务器联系,并启动传输。 如果要在计划时间之外手动发送数据,请使用以下Windows PowerShell cmdlet:

Send-AppVClientReport –URL http://MyReportingServer:MyPort/ -DeleteOnSuccess

如果以前已配置报表服务器,则可以省略 –URL 参数。 或者,如果应将数据发送到备用位置,请指定其他 URL 来替代此数据收集配置的 ReportingServerURL

-DeleteOnSuccess 参数指示如果传输成功,则会清除数据缓存。 如果未指定传输状态,则不会清除缓存。

手动数据收集

还可以使用 Send-AppVClientReport cmdlet 手动收集数据。 无论是否使用现有报表服务器,此解决方案都很有用。 以下列表显示有关使用或不使用报表服务器收集数据的信息。

使用报表服务器 没有报表服务器
如果已有 App-V 报表服务器,请创建自定义计划任务或脚本。 指定客户端以所需频率将数据发送到指定位置。 如果没有现有的 App-V 报表服务器,请使用 –URL 参数将数据发送到指定的共享。 例如:Send-AppVClientReport –URL \\Myshare\MyData\ -DeleteOnSuccess
前面的示例会将报告数据发送到 \\MyShare\MyData\-URL 参数指示的位置。 发送数据后,将清除缓存。

注意

如果指定了报表服务器以外的位置,则数据以 .xml 格式发送,无需进行其他处理。

创建报表

若要使用 App-V 检索报表信息并创建报表,必须使用下列方法之一:

  • Microsoft SQL Server Reporting Services (SSRS) - Microsoft SSRS 随 Microsoft SQL Server 提供。 安装 App-V 报表服务器时,不会安装 SSRS。 必须单独部署它才能生成关联的报表。 有关详细信息,请参阅 SSRS) SQL Server Reporting Services (是什么?一文。

  • 脚本 - 可以通过直接针对 App-V 报告数据库编写脚本来生成报表。 例如:

    存储过程:

    spProcessClientReport 计划于午夜或 12:00 AM 运行。

    若要运行 Microsoft SQL Server计划存储过程,必须运行 Microsoft SQL Server 代理。 确保 Microsoft SQL Server 代理设置为“自动启动”。 有关详细信息,请参阅自动启动SQL Server 代理 (SQL Server Management Studio)

    使用 App-V 数据库脚本时也会创建存储过程。

还应确保报表服务器 Web 服务的“最大并发Connections”设置为服务器可以在不影响可用性的情况下进行管理的值。 报告 Web 服务的建议最大并发Connections数为 10,000