
社内のチームを整理するのに全チームのメンバーや所有者情報が知りたいな。

PowerShellコマンドで取得できるよ。
ぼくはチュールの生産者情報が知りたいにゃ。
やりたい事
組織内にある全Teamsチームについて、以下の情報をcsvにエクスポートしたい。
・チーム名
・プライベートチーム / パブリックチーム
・所有者数
・所有者の表示名
・所有者メールアドレス
・メンバー数
・メンバーの表示名
・メンバーのメールアドレス
今回は、”所有者やメンバーが複数名いる場合は同じセル内に出力してほしい”との要望でした。
ちなみに現在あるチームはこちらの4つ☟

コマンド
実行するには”Teams管理者権限”が必要です。
サインインを求められるので、Teams管理者権限があるアカウントでサインインします。
欲しい情報に合わせてオブジェクトを書き替えます。
エクスポート先のパスは任意で。
#Microsoft Teams に接続
Connect-MicrosoftTeams
#チームの情報を取得
$teams = @()
Get-Team | ForEach-Object {
$obj = New-Object object
$users = Get-TeamUser -GroupId $_.GroupId
$owners = $users | Where-Object { $_.Role -like "owner" }
$members = $users | Where-Object { $_.Role -like "member" }
$OrgUnit
$obj | Add-Member -NotePropertyMembers @{
"GroupId" = $_.GroupId;
"DisplayName" = $_.DisplayName;
"Visibility" = $_.Visibility;
"Archived" = $_.Archived;
"Members" = $members.count;
"MemberID" = $members.User -join "`r`n";
"MemberName" = $members.Name -join "`r`n";
"Owners" = $owners.count;
"OwnerID" = $owners.User -join "`r`n";
"OwnerName" = $owners.Name -join "`r`n";
}
$teams += ($obj | Select-Object DisplayName,Visibility,Owners,OwnerId,OwnerName,Members,MemberID,MemberName) }
$teams | Export-Csv -Path (Join-Path "C:\temp" ("TeamOwnersAndMembers" + (Get-Date -Format "yyyyMMddHHmm") + ".csv")) -NoTypeInformation -Encoding UTF8
実行結果
取得結果はこちら☟
出力される列の順番=オブジェクトを書いた順番になってます。
所有者が複数名の場合も問題なく取得できました。

コメント