You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将HTTP监控名称添加到PSCustomObject的Application属性并生成正确报表?

解决方案

合并监控列表并去重

先把合成监控和HTTP监控的列表合并,避免重复项是解决问题的基础:

$allExecutedMonitors = $executedMonitors + $httpExecutedMonitors | Select-Object -Unique

关联监控与状态值

如果你的$Values集合中每个条目都包含监控名称(比如MonitorName字段)和对应的PASS/FAIL状态,直接遍历合并后的列表匹配状态即可:

$reportObjects = foreach ($monitor in $allExecutedMonitors) {
    # 匹配当前监控对应的状态,只取第一条结果避免重复
    $matchedStatus = $Values | Where-Object { $_.MonitorName -eq $monitor } | Select-Object -ExpandProperty Status -First 1
    # 处理未找到对应状态的情况
    $finalStatus = $matchedStatus ?? "UNKNOWN"

    [PSCustomObject]@{
        Application = $monitor
        Status      = $finalStatus
    }
}

生成HTML报表

用ConvertTo-Html生成规范的报表,避免手动拼接导致格式异常:

$htmlContent = $reportObjects | ConvertTo-Html -Title "监控状态报表" -Property Application, Status -PreContent "<h2>全监控状态汇总</h2>"
$htmlContent | Out-File "Monitor_Status_Report.html"

异常排查点

  • 重复值问题:检查$executedMonitors和$httpExecutedMonitors本身是否存在重复项,或者$Values中同一个监控对应多条状态记录(用-First 1确保只取第一条匹配的状态)。
  • 状态不匹配:确认$Values中的监控名称和两个列表中的名称完全一致(注意大小写、特殊字符、空格)。
  • HTML格式异常:避免手动拼接HTML内容,尽量用ConvertTo-Html的参数(如-PreContent、-PostContent)添加自定义内容,防止标签嵌套错误。

内容的提问来源于stack exchange,提问作者JCoder92

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 23:35:11