Teams のチームメンバーの大幅な入れ替えが発生した場合、手作業でメンバーを削除していくのは面倒。そこで一括で削除するPowershellスクリプトを作成する。一括登録する場合はこちらの記事を参照。
事前準備
Powershellスクリプトを作成、実行する前に、事前に必要な情報として、対象チームのGroupID と対象メンバーのリストが必要となる。
Powershell でmicrosoftteams モジュールをインストール
Powershell を管理者権限で起動して下記コマンドでモジュールをインストールする。
PS> Install-Module microsoftteams
Powershell で Teams に接続する。
Powershell より Connect-MicrosoftTeams コマンドを実行し、
PS> Connect-MicrosoftTeams
認証画面が表示されるので対象テナントのユーザを選択するか、管理者ユーザでログインする。
対象チームのGroupIDを取得する。
Get-Team コマンドで対象チームを絞り込む。所属しているユーザや、チーム名などで検索して対象チームのGroupID を取得する。
チーム名で検索する場合
PS> Get-Team -DisplayName "みんなのチーム"
ユーザが所属しているチームで検索する場合
PS> Get-Team -DisplayName -User hoge@tec-memo.com
実行すると下記のようにGroupIDが表示されるので控えておく
PS> Get-Team -DisplayName "みんなのチーム"
GroupId DisplayName Visibility Archived MailNickName Description
------- ----------- ---------- -------- ------------ -----------
123456abc-a11b-1fiea-cc11-abcdefg123 みんなのチーム HiddenMe... False 567 みんなのチーム
所属しているメンバー一覧を取得する。
削除するユーザリストを作成するために、チームに所属しているメンバー一覧を取得する。加工しやすいように Export-Csv でcsv に出力して、削除したくないユーザなどの加工をする。もちろんリストは手作りしてもよい。
PS> Get-TeamUser -GroupId "123456abc-a11b-1fiea-cc11-abcdefg123" |Export-Csv "c:\account.csv"
下記のようなcsvファイルが作成される。実際使うのはUser項目のみだが、そのまま使って問題ない。消したくないユーザはリストから消しておく
UserId | User | Name | Role |
abcccde-fajwe-fnaiejfa1241-faiwe | aaa@tec-memo.com | aaa@tec-memo.com | owner |
fawiejfa-fjia2s-i93jfajfej2f3-jfia23 | bbb@tec-memo.com | aaa@tec-memo.com | member |
aiiie24jj-eii3i5-fjaieiii24444-a349 | ccc@tec-memo.com | aaa@tec-memo.com | member |
スクリプトの作成
任意のフォルダに作成した削除ユーザリストのcsvファイルと下記のスクリプトを作成して配置した上で実行する。リストファイル名はaccount.csv としている。GroupID変数は上記で取得したGroupIDに適宜書き換える
# 作業フォルダの定義
$scriptname = $MyInvocation.MyCommand.Name
$path = $PSScriptRoot
# 作業フォルダに移動
cd $path
#ログ取得
if (!(Test-Path .\log)){
mkdir .\log
Write-Output ("logフォルダを作成しました。")
}
$logfile = ".\log\" + $scriptname +"_"+ (Get-date -Format "yyyy-MMdd-HHmmss") + ".log"
Start-Transcript $logfile -Append
# Teams 接続
Connect-MicrosoftTeams
# 削除対象のCSVリストを取得
$Lists = Import-Csv -Encoding Default ".\account.csv"
# チームのGourpID定義
$GroupID = "123456abc-a11b-1fiea-cc11-abcdefg123"
$count = 0
# フォルダ作成
foreach($l in $Lists){
$count ++
Remove-TeamUser -GroupId $GroupID -User $l.User
Write-Output("[" + $count +"]/[" + $Lists.Count + "] " + $l.User + " をチームから削除しました。")
}
# ログ停止
Stop-Transcript
コメント