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

如何通过PowerShell与Microsoft Teams Webhook实现数组换行输出

解决Teams Webhook消息中用户列表无法换行的问题

问题核心在于Teams的MessageCard消息格式支持HTML标签实现换行,而非普通文本换行符(如\n、\r),之前尝试的换行方式不符合Teams的渲染规则。

修改后的PowerShell代码

$URI = "你的Teams Webhook地址"

$AD = "abc","bcd","cdb","bva","dfdf","4gfd09","sdf435"

$Date = Get-Date

# 使用HTML换行标签<br>拼接用户列表
$AddUsersList = $AD -join "<br>"

Write-Host "Build Teams message"
$JSONBody = [PSCustomObject][Ordered]@{
    "@type" = "MessageCard"
    "@context" = "http://schema.org/extensions"
    "themeColor" = '25bc15'
    "title" = "TEST - $Date"
    "text" = @"
$($AD.Count) users were added<br>
$AddUsersList
"@
}

$TeamMessageBody = ConvertTo-Json $JSONBody

$parameters = @{
    "URI" = $URI
    "Method" = 'POST'
    "Body" = $TeamMessageBody
    "ContentType" = 'application/json'
}

Invoke-RestMethod @parameters

关键修改点说明

  1. 替换换行符为<br>:将用户数组用HTML换行标签<br>拼接,Teams会正确识别并渲染为换行。
  2. 使用Here-String定义text内容:避免PowerShell字符串中的换行被JSON转换时干扰,同时清晰分隔消息内容。
  3. 修正@context的URL格式:原代码中URL多了一对尖括号,去掉后符合MessageCard规范。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 06:15:29