MENU

PowerShell から Teams チャットを送信する

今回は、PowerShell から任意のチームのチャネルに対して Teams チャットを送信する方法を記載します。

目次

事前準備

あらかじめ、チャットを送付するチームとチャネルを作成しておきます。

ワークフローの作成

Teams アプリの「…」をクリックし、「Workflows」をクリックします。

「新しいフロー」をクリックします。

画面右上の「+ 一から作成」をクリックします。

検索バーに「webhook」と入力し、検索結果の中から「Microsoft Teams Webhook」を選択します。

「Teams Webhook 要求を受信したとき」をクリックします。

「Who can trigger the flow」:Any user in my tenant をドロップダウンで選択し、「新しいステップ」をクリック

※URL はワークフロー保存後に値が入るため、保存後にワークフローを開いて、登録された URL を確認します。

検索バーに「teams」と入力して検索し、表示された「Microsoft Teams」をクリックします。

アクション「チャットまたはチャネルでメッセージを投稿する」を選択します。

以下のように設定し、「保存」をクリック

投稿者:フローボット
投稿先:Channel
Team:<任意のチーム>
Channel:<任意のチャネル>
Message:式で “triggerBody()” を指定します。

ワークフローの設定はここまで

PowerShell からのメッセージ送信

以下のように PowerShell コマンドを実行することで、先ほど作成したワークフローのエンドポイントに JSON メッセージを送付し、その内容がフックされて指定したチームのチャネルへと投稿されます。

(以下の例では、$result と $details の内容を出力するような内容になっています。)

$uri="取得した URI"
$body = ConvertTo-JSON @{
result = $result
details = $details
}

Invoke-RestMethod -uri $uri -Method Post -body $body -ContentType 'application/json'

Teams に送付されたメッセージ

今回は $result に処理結果、$details にはエラー内容を格納して、通知することを想定しているので、以下のような内容としています。

$result = "Failed"
$details = "User XXX was not found."
$uri="取得した URI"

$body = ConvertTo-JSON @{
result = $result
details = $details
}

Invoke-RestMethod -uri $uri -Method Post -body $body -ContentType 'application/json'

ちゃんと指定したメッセージが届くことが確認できました。

    よかったらシェアしてね!
    • URLをコピーしました!
    • URLをコピーしました!
    目次