终结点分析中的应用程序可靠性

应用程序可靠性报告提供有关托管设备上桌面应用程序的潜在问题的见解。 可以快速识别正在影响最终用户生产力的热门应用程序,并查看这些应用程序的聚合应用使用量以及应用故障指标。 从报告中深入了解特定设备数据并查看应用可靠性事件的时间线,从而对影响最终用户的问题进行故障排除。

终结点分析中的应用程序可靠性报告

先决条件

  • 设备已在终结点分析中注册。
  • 从 Configuration Manager 注册的设备需要安装客户端版本 2006 或更高版本

应用可靠性分数

应用可靠性分数 提供跨环境桌面应用程序可靠性的高级视图。 与其他终结点分析分数一样, 应用可靠性分数 是介于 0 和 100 之间的数字。 该分数根据环境中每个桌面应用程序的应用可靠性分数计算,可在 应用性能 选项卡中找到。

根据以下内容对 应用性能 选项卡上的每个应用程序分配 应用可靠性分数:

  • 崩溃频率: 对于每个应用,使用 14 天滚动窗口的崩溃总次数和使用持续时间总时长来计算 故障平均时间 值。 此计算会规范化崩溃率,以便直接比较不同应用程序中崩溃事件的相对频率。 此值是应用可靠性分数的主要因素。
  • 使用持续时间总时长: 将所有已注册设备中的使用持续时间考虑在内,从而帮助确保优先处理最具中断性的应用程序问题。

应用性能选项卡

应用性能 选项卡使用过去 14 天的数据来显示组织中每个桌面应用程序的可靠性见解。 报告中包含以下应用程序:

  • 组织中使用量可衡量的前台应用程序。 包括这些应用程序可确保报告侧重于影响最终用户的问题。

  • 活动设备计数大于 5 或​​计数大于租户已注册设备总数的 2% (以较大者为准)的应用程序。 包括这些应用程序有助于筛选出干扰,并确保在足够数量的设备上进行计算,以便有意义。

终结点分析中的应用程序性能选项卡

对于报告中的每个应用程序,提供以下数据:

应用名称: 客户端设备提供的文件清单中的应用标识符。 应用名称通常采用可执行文件(或.exe)格式。

应用显示名称: 文件清单中报告的应用程序的 friendly name。 由于数据并非始终可用,因此默认情况下,此列处于隐藏状态。

应用发布者: 文件清单中报告的可执行文件的发布者。 对应用发布者进行有限清理。 例如,Microsoft Corporationmicrosoft corporation 在清理期间折叠。 但是,如果应用元数据不可用、为 NULL 或可能不准确,则不会进行添加或修改。

活动设备(14 天): 过去 14 天内已至少启动一次此应用的租户已注册设备总数。

使用持续时间总时长(14 天): 过去 14 天内所有租户已注册设备中的应用程序累积使用持续时间。 参与时间 用于确定使用持续时间。 参与时间 由以下两部分组成:

  • 交互时间: 用户主动使用应用程序(例如浏览 Web)的时间
  • 保持活动时间:应用程序从 OS 请求保持连接的时间,例如演示 PowerPoint 或观看视频时。

崩溃总次数(14 天): 过去 14 天内跨租户中所有已注册设备报告的应用程序崩溃事件总数。

平均故障时间: 过去 14 天内最终用户能够在发生崩溃前使用应用程序的平均参与时间。 此值通过将 使用持续时间总时长(14 天) 除以 崩溃总次数(14 天) 来计算。 通过关联使用持续时间和崩溃计数,可规范化不同应用程序中的崩溃频率。 为过去 14 天内租户中无崩溃事件的应用程序提供平均故障时间值 No crash events

应用可靠性分数: 0 到 100 之间的分数,表示租户中应用程序的相对可靠性。 此分数根据 平均故障时间使用持续时间总时长(14 天) 计算。 分数 0 表示可能阻碍最终用户生产力的不可靠应用。 分数 100 表示可能促进最终用户生产力的可靠应用。

注意

使用每天每个设备每个应用程序最多 10 个应用程序崩溃事件。 这会阻止从具有严重应用程序问题的设备过度收集数据,并有助于阻止离群值设备对单个应用程序的可靠性分数产生不当影响。

无法捕获特定设备上具有少量前台使用量(大约 10 分钟或更少)的应用程序。

应用性能详细信息

应用性能 中选择表中的应用名称可打开 应用性能详细信息应用性能详细信息 包含两个选项卡:

  • 应用版本: 此选项卡允许比较过去 14 天内不同应用程序版本中的 应用崩溃 次数和 具有崩溃的唯一设备 数。 此信息可用于确定最可靠的应用程序版本。 该信息有助于对某些应用程序版本的潜在问题进行故障排除。 在决定要部署的应用程序版本、是安装更新还是回滚更新时,可能还会发现这些见解很有用。
  • OS 版本: 此选项卡会比较不同版本的 Windows 中应用程序的 平均故障时间。 此信息有助于识别 OS 版本和应用程序问题之间的潜在关联。

终结点分析中的应用程序性能详细信息

设备性能选项卡

设备性能 选项卡显示租户中每个合格的已注册设备的应用程序可靠性见解。 应用崩溃总次数(14 天) 列表示过去 14 天内设备报告的任意应用的应用崩溃事件总数。 这些崩溃事件可以与设备上安装的任何应用程序关联,且不一定都来自同一应用程序。

重要

应用崩溃事件限制为每天每个设备每个应用程序 10 个应用崩溃事件。

选择设备名称可打开该设备的 应用程序可靠性 选项卡。 此选项卡显示指定时间段(最多 14 天)内设备的应用崩溃和应用无响应事件的时间线。 使用时间线顶部的 筛选器 选项以选择自定义时间范围。

注意

在终结点分析的“ 设备性能 ”选项卡中,管理员将仅看到根据分配的作用域标记有权访问的设备。 若要详细了解作用域标记,请参阅 分布式 IT 的范围标记。 聚合见解(如分数和摘要视图)使用租户中的所有已注册设备进行计算。 若要将作用域标记应用于聚合见解,请参阅 终结点分析中的设备范围

已知问题

导出的 csv 文件显示数值

将报表数据导出到 .csv 文件时,导出的数据不会使用在联机报表中看到的友好名称。 使用以下信息将导出文件中的数据映射到值的含义中:

应用程序可靠性报告

  • .csv 文件中的 TotalAppUsageDurationMeanTimeToFailure 列是以 分钟 为单位的整数值
  • MeanTimeToFailure 值 2147483647 表示 No crash events

每个设备分数报告

  • EndpointAnalyticsScoreStartupPerformanceScoreAppReliabilityScore 列中 -1-2 值表示关联的分数不可用

  • 运行状况状态:

    HealthStatus .csv 报表值
    0 未知
    1 数据不足
    2 需要注意
    3 满足目标

启动性能报告

CoreBootTimeGPBootTimeCoreLogonTimeGPLogonTimeDesktopUsableTimeMedianTimePerProcess 列是以 为单位的整数值。

随时随地工作报表

  • 文件中的.csv列名称:UpgradeEligibility
    报告列名称:Windows 11就绪状态

    .csv 报表值
    0 已升级
    1 Unknown
    2 不支持
    3 支持
  • 文件中的.csv列名称:GraphDeviceIsManaged
    报表列名:已注册Microsoft Entra

由于客户端证书存在问题,因此报告中未显示一些合格的已注册设备

场景:在某些不常见情况下, 应用程序可靠性 报告中可能缺少设备。 可以查看 应用程序可靠性 报告的 设备性能 选项卡上的记录数,从而确定报告应用程序可靠性数据的设备数。

受影响的设备:此问题会影响从无法下载所需 ServiceCertificate 策略Configuration Manager在终结点分析中注册的设备。 如果没有此策略,设备无法向终结点分析报告应用程序可靠性数据。

重要

这并非常见问题。 在继续缓解之前,请验证缺少的设备:

  • 满足 应用程序可靠性 报告的 先决条件
  • 正在积极使用
  • 有足够的时间开始报告数据

使用以下脚本确定问题是否影响设备:

$query = "SELECT * FROM CCM_PendingPolicyState WHERE PolicyID=""B27D9CFC-84AD-0AF8-9DF1-23EE05E8C05D"""
$obj = Get-WmiObject -Query $query -Namespace "root\ccm\policyagent"
 
foreach ($value in $obj)
{
    if ($value.State  -eq 1)
    {
        Write-Host "Found ServiceCertificate policy in the pending policy list."
    }
} 

缓解: 在受影响的设备上运行以下脚本以强制下载更新的 ServiceCertificate 策略状态。 完成所有步骤后,问题将得到解决,并允许设备开始上传应用程序可靠性数据。 最长需要 72 小时才能开始在终结点分析门户中查看数据。

On Error Resume Next

Set WshShell = WScript.CreateObject("WScript.Shell")

'First, find the pending policy object
Set wmiService = GetObject("winmgmts:\\.\root\ccm\policyagent")
Set wmiObjs = wmiService.ExecQuery("SELECT * FROM CCM_PendingPolicyState WHERE PolicyID=""B27D9CFC-84AD-0AF8-9DF1-23EE05E8C05D""")

For Each wmiPendingPolicy In wmiObjs
    If wmiPendingPolicy.State = 1 Then

        WScript.Echo "Found ServiceCertificate policy in the pending policy list. Resetting the state to force re-download"

        wmiPendingPolicy.State = 0
        wmiPendingPolicy.Put_

        If Err.Number <> 0 Then
            WScript.Echo "Failed to update ServiceCertificate policy state. Error code = " & Err.Number
        Else
            WScript.Echo "Successfully updated ServiceCertificate policy state."
        End If

    End If
Next