Teams のチームメンバーを一括削除するPowershellスクリプト

スポンサーリンク

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項目のみだが、そのまま使って問題ない。消したくないユーザはリストから消しておく

UserIdUserNameRole
abcccde-fajwe-fnaiejfa1241-faiweaaa@tec-memo.comaaa@tec-memo.comowner
fawiejfa-fjia2s-i93jfajfej2f3-jfia23bbb@tec-memo.comaaa@tec-memo.commember
aiiie24jj-eii3i5-fjaieiii24444-a349ccc@tec-memo.comaaa@tec-memo.commember

スクリプトの作成

任意のフォルダに作成した削除ユーザリストの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

コメント

タイトルとURLをコピーしました