参考
方法
PowerShell で Microsoft Teams の cmdlet から操作して追加します。
注意
以下の手順で私の環境では動いていますが、 Set-ExecutionPolicy
はセキュリティ上あまりよろしくない操作かもしれません。識者の意見求む
手順
1. PowerShell ISE を管理者権限で起動
- 検索バーで powershell と入力 → PowerShell ISEを右クリック、管理者実行
- 普通の PowerShell でなく PowerShell ISE でないと権限のエラーが出た気がします。
2. Teams に接続
Install-Module -Name MicrosoftTeams
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Connect-MicrosoftTeams
→ MS のダイアログが現れるのでサインイン
3. チームのID を調べる
Teams アプリで、対象チームのURLを「リンクの取得」で調べる。
https://teams.microsoft.com/l/team/…/conversations?groupId=b70145bc-f04b-44a6-9192-8816f3cab935&tenantId=テナントID
のようになっているので、groupId を抜き出す。
Azure Active Directory Admin Center
https://aad.portal.azure.com/#blade/Microsoft_AAD_IAM/GroupsManagementMenuBlade/AllGroups
にサインインし、チーム名を検索して調べる。ID は b70145bc-f04b-44a6-9192-8816f3cab935 のような文字列。
4. 追加するアカウントのメールアドレス一覧のCSVファイルを作る
CSV ファイルといっても1列しかないファイル。次のステップのワンライナーで Teams に流し込む。
|email|
|foo@example.com|
|bar@example.com|
|baz@example.com|
|...|
最初の行は email, 次の行からは改行区切りでメールアドレスを並べる
5. 上記の PowerShell ISE で以下を実行する
Import-Csv -Path "CSVファイルのフルパス" | foreach{ Write-Output $_.email; Add-TeamUser -GroupId グループのID -user $_.email; Write-Output "Done"; Start-Sleep 10 }
グループのID は上で調べたグループIDの文字列 ("b70145bc-f04b-44a6-9192-8816f3cab935"
等)。
このワンライナーは Add-TeamUser
でチームにメンバーを1人ずつ追加する。概ね即時反映されるようだ。
追加のたびに10秒ウェイトを入れている。
私の環境ではウェイトがないと追加に失敗する(*)ことがあったので入れている。もっと短くても良いかもしれない。
(*) 具体的には、ADのグループには反映されるが Teams には反映されないメンバーができてしまった(この状態で半日ほど待ってみたが改善せず、上記 Admin Center で削除して再実行しなければならなかった)。