山口屋~活動日誌~

私生活で主な出来事をピックアップ

チャット Teams PowerShell

2024-03-10 13:16:34 | パソコン
Teams チャットを PowerShell で制御しようというもの。自分のチャットが対象で、グローバル管理者でも他者のチャットは対象にできなかった。

チャットIDの取得からスタート。
Microsoft Learn:Get-MgUserChat
Qiita:PowerShellでTeamsのチャット履歴をcsvに出力する
チャットIDは OneOnOne か Group かで末尾にある程度の規則性があり取得は下記の例で。
Get-MgBetaUserChat -All -UserId $selfUserId
WebUrl プロパティにURLが含まれていて、例えば Edge で開かせるならば下記の例で。
start microsoft-edge:$($_.WebUrl)

特定のチャットに参加しているユーザーの取得。AdditionalProperties に詳細なプロパティが含まれるので展開。
Get-MgBetaUserChatMember -UserId $selfUserId -ChatId $id | Select-Object `
@{Label="@odata.type"; Expression={$_.AdditionalProperties["@odata.type"]}}, `
@{Label="UserId"; Expression={$_.AdditionalProperties["userId"]}}, `
@{Label="Email"; Expression={$_.AdditionalProperties["email"]}}, `
@{Label="TenantId"; Expression={$_.AdditionalProperties["tenantId"]}}, `
* -ExcludeProperty AdditionalProperties

全てのチャットに一律で投稿をする。多重投稿が起きることがあり、チャットID一覧を一度保存してから実行するようにしている。
$chatlist = Get-MgBetaUserChat -All -UserId $selfUserId
# 一度保存してから Foreach-Object に渡さないと多重投稿が起きる
$chatlist | Foreach-Object{$params = @{body=@{content = "message"}}; New-MgBetaUserChatMessage -UserId $selfUserId -ChatId $_.Id -BodyParameter $params}
コメント    この記事についてブログを書く
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« グループ 予定表 AlwaysSubsc... | トップ | グループ M365 作成 Teams チ... »
最新の画像もっと見る

コメントを投稿

パソコン」カテゴリの最新記事