今までは正常処理、エラーともにメールで通知していましたが、最近はSlackに通知するようにしました。
今回は、PowerShell からSlackへ投稿する方法をメモ。
PowerShell からSlackへ投稿するサンプル スクリプト
function Send-Slack{
param(
[Parameter(Mandatory,Position=1)]
[string]$message,
[Parameter(Mandatory,Position=2)]
[string]$webhookUrl
)
# 日本語エンコード用
$encode = [System.Text.Encoding]::GetEncoding('ISO-8859-1')
$utf8Bytes = [System.Text.Encoding]::UTF8.GetBytes($message)
# Jsonに変換する
$payload = @{
text = $encode.GetString($utf8Bytes);
# SlackのWebHookでBOT名とアイコンを指定している場合は下記スクリプトは不要
#username = "PowerShell BOT";
#icon_url = "https://xxxx/xxx.png";
}
# SlackのREST APIをたたく
Invoke-RestMethod -Uri $webhookUrl -Method Post -Body (ConvertTo-Json $payload)
}
# テスト
$url = "https://hooks.slack.com/services/xxxxx/xxxxx/xxxxxxxxxx"
Send-Slack -message "テストでーす" -webhookUrl $url