我正在嘗試創建一個 PS 腳本,該腳本應該通過 webhook 發布 MS Teams 警報,涉及一些指標。我幾乎已經完成的當前解決方案是通過 PSCustomObject,然后將其轉換為 JSON 并用作警報的主體。以下是我正在使用的當前代碼:
$JSONBody = [PSCustomObject][Ordered] @{
"@type" = "MessageCard"
"title" = "Alert Title"
"text" = "Alert 1: $alert1CountVariable
Alert 2: $alert2CountVariable
Alert 3: $alert3CountVariable"
}
$TeamsMessageBody = ConvertTo-Json $JSONBody -Depth 100
$parameters = @{
"URI" = '<Teams Webhook URI>'
"Method" = 'POST'
"Body" = $TeamsMessageBody
"ContentType" = 'application/json'
}
Invoke-RestMethod @parameters
一切都按需要作業,但正如您所見,PSCustomObject 中的文本引數應該決議 3 個單獨行上的 3 個警報,無論我嘗試什么,這似乎都不會發生。我嘗試插入 \n 和 \r 運算子(也嘗試過 \n 和 \r),但到目前為止沒有任何效果。
我擁有的另一種作業方法如下:
$Body = '{"text": "Alert 1: ' $alert1CountVariable ' Alert 2: ' $alert2CountVariable ' Alert 3: ' $alert3CountVariable '"}'
$TeamsUrl = '<Teams Webhook URI>'
Invoke-WebRequest -Uri $TeamsUrl -Method Post -Body $Body -ContentType "application/json"
但是,這也不完全滿足標準,因為它仍然沒有在單獨的行中顯示 alets,并且這里沒有標題。
關于如何使這兩個選項中的任何一個起作用的任何建議?
uj5u.com熱心網友回復:
團隊界面似乎接受 HTML:
請參閱下面調整的腳本:
$JSONBody = [PSCustomObject][Ordered] @{
"@type" = "MessageCard"
"title" = "Alert Title"
"text" = "Alert 1: $alert1CountVariable <br>
Alert 2: $alert2CountVariable <br>
Alert 3: $alert3CountVariable"
}
$TeamsMessageBody = ConvertTo-Json $JSONBody -Depth 100
$parameters = @{
"URI" = '<Teams Webhook URI>'
"Method" = 'POST'
"Body" = $TeamsMessageBody
"ContentType" = 'application/json'
}
Invoke-RestMethod @parameters
我<br>在每一行的末尾插入了 HTML 中的換行符。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/422888.html
標籤:
上一篇:保存對具有多個值的環境的回應
