チームのメンバーを棚卸したいという要望を受けてPowerShellスクリプトを作成しました。
github.com
背景
該当のチームは社内の全ての部署の社員が参加するチームであり、会社に対する要望や意見について情報交換をすることを目的にしたチームです。
このチームは会社の役員(社長と執行役員)を含めないルールとしています。そのため、チームの棚卸のときにはメンバーの抜け漏れのチェックだけでなくルール上追加されてはいけない社員を追加していなかのチェックを行う必要があります。
このチームメンバーの棚卸を行ういい方法はないかという質問をうけて、メンバー一覧を役職名を含めて出力するスクリプトを作成しました。
そもそもTeamsのメンバ一覧は標準機能で出力できないのか?
2022年3月現在、該当する機能は無いです。「こんな機能がリリース予定のようです」等の情報がもしあれば共有いただけると嬉しいです。
ではどうやってメンバー一覧を出力するか
PowerShellを使います。
まずは、スクリプトを実行するために必要なモジュールをPCにインストールします。管理者権限で下記コマンドを実行してください。
モジュールのインストールコマンド
Install-Module MicrosoftTeams Install-Module AzureAD
モジュールのインストールが完了したら、下記スクリプトを使います。
以下の2箇所はテナントによって置き換えてください。
・実行アカウントのID/パスワード
・対象チームのID
$adminUserName = "XXX@XXX.onmicrosoft.com" $securePassword = "XXX" | ConvertTo-SecureString -AsPlainText -Force $credentials = New-Object System.Management.Automation.PSCredential($adminUserName, $securePassword) Connect-AzureAD -Credential $credentials Connect-MicrosoftTeams -Credential $credentials #全ユーザーを取得 $azureADAllUser= Get-AzureADUser -All $true #チームのメンバーをCSVに出力 $teamMembers = Get-TeamUser -GroupId "XXXX-XXXX-XXX-XXXX-XXXX" $members = @() foreach($member in $teamMembers) { $currentUser = $azureADAllUser | where ObjectID -EQ $member.UserId $obj = New-Object PSObject $obj | Add-Member -MemberType NoteProperty -Name DisplayName -Value $currentUser.DisplayName $obj | Add-Member -MemberType NoteProperty -Name Mail -Value $currentUser.UserPrincipalName $obj | Add-Member -MemberType NoteProperty -Name Department -Value $currentUser.Department $obj | Add-Member -MemberType NoteProperty -Name JobTitle -Value $currentUser.JobTitle $members += $obj } $members | Export-Csv -Path .\TeamMember.csv -Encoding UTF8 -NoTypeInformation
テナントによって置き換える対象は以下の2つです。
ひとつめ。実行アカウントのID/パスワード。
$adminUserName = "XXX@XXX.onmicrosoft.com"
$securePassword = "XXX" | ConvertTo-SecureString -AsPlainText -Force
ふたつめ。対象チームのID。
#チームのメンバーをCSVに出力
$teamMembers = Get-TeamUser -GroupId "XXXX-XXXX-XXX-XXXX-XXXX"
チームのIDは「チームへのリンクを取得」から入手できます。
ポップアップで表示されたリンクをコピーします。
メモ帳に貼り付けます。「groupID」がチームのIDなのでこの部分をコピーして先ほどのスクリプトで使用します。
以上です。