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

Universal Dashboard调用PowerShell Test-It函数无法在Tooltip展示问题

错误原因

  1. New-UDEndpointInitialization的作用是将指定函数、变量注册到Dashboard全局限点作用域,供动态执行的端点上下文调用,该对象本身不是HTML内容,直接传入New-UDHTML的-Markup参数会导致类型解析错误,也就是你截图中出现的异常。
  2. 你的Test-It函数未注册到端点作用域,表格、Tooltip这类动态组件的执行上下文默认无法访问到外部定义的函数。
  3. 你需要调用函数得到返回结果后,将结果拼接为合法HTML字符串,再传给New-UDHTML进行渲染。

修正后完整代码

Start-UdDashboard -Content {
    $icon_Degraded   = 'iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhE=='
    $icon_Advisory   = 'iVBORw0KGgoAAAANSUhEUgAAABIAA='
    $icon_Unhealthy  = 'iVBORw0KGgoAAAANSUhEUgAAAAElFTkSuQmCC'
    $icon_Healthy    = 'iVBORw0KGgoAAAANSUkJggg=='

    # 提前定义需要注册的函数
    function Test-It{
        Return "HELLO TO YOU SIR"
    }
    # 注册函数和需要在端点中使用的全局变量
    $EndpointInit = New-UDEndpointInitialization -Function "Test-It" -Variable @("icon_Degraded", "icon_Advisory", "icon_Unhealthy", "icon_Healthy")

    New-UdDashboard -Title "Server Performance Dashboard" -Color '#FF050F7F' -EndpointInitialization $EndpointInit -Content {
        New-UdRow {
            New-UdColumn -Size 6 -Content {
                New-UdRow {
                    New-UdColumn -Size 12 -Content {
                        New-UdTable -Title "Athena Status" -Headers @(" ", " ") -Endpoint {
                            @{'MX PAI Ingestion' = 
                                    New-UDTooltip -TooltipContent {
                                        # 调用已注册的函数获取返回值,组装为HTML字符串
                                        $functionResult = Test-It
                                        New-UDHTML -Markup "<p>$functionResult</p>"
                                    } -content { 
                                        New-UDHTML -Markup "<img src='data:image/png;base64,$icon_Degraded' />"
                                    }
                            }.GetEnumerator() | Out-UDTableData -Property @("Name", "Value")
                        }
                    }
                }
            }
        }
    }
}

注意事项

  • 函数定义必须放在New-UDEndpointInitialization执行之前,确保注册时函数已加载
  • 如果端点中需要使用外部定义的变量,需要将变量名添加到-Variable参数的数组中完成注册,否则端点执行时会报变量未定义错误
  • New-UDHTML的-Markup参数仅接受纯HTML字符串,不能传入其他类型的PowerShell对象

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 19:36:02