MicrosoftTeams

TeamsPowerShellを使用して全てチームのユーザー一覧を一括取得する

各チームに所属しているメンバーの一覧をCSVファイルとして取得する方法を記載する。

検証環境について

動作確認した検証環境は以下の通り。

OS:Microsoft Windows 11 Enterprise
OSbuildバージョン:10.0.22621
PowerShellのバージョン:7.4.0

TeamsPowershellのモジュール名とバージョン
MicrosoftTeams 6.2.0

サインインアカウントの権限はグローバル管理者。

使用するコマンド

Get-Team

使用例

Get-Team

取得できる情報例

GroupId                              DisplayName   Visibility  Archived  MailNickName  Description
-------                              -----------   ----------  --------  ------------  -----------
1a876669-a118-411d-809f-4fc112ebb7b0 Team001       Public      False     Team001       Teams001
0c7aa4d6-4eeb-4aa1-8431-1370117393c6 Team002       Public      False     Team002       Team002
d44211f2-1de4-4de7-8115-ad5769a6b9c2 Team003       Private     False     Team003       Team003

Get-TeamUser

使用例

Get-TeamUser -GroupId 17abc669-a2a8-432d-8b9f-4fc792ebb7b0

取得できる情報例

UserId                               User                         Name     Role
------                               ----                         ----     ----
dfea1940-cc0b-10af-62d8-a98b073a8a9a User001@****.onmicrosoft.com User001  owner
aab11a7d-657f-40af-0098-811c5CC3531a User002@****.onmicrosoft.com User002  owner
1bcca976-d112-4556-aa6d-11b9852f3431 User003@****.onmicrosoft.com User003  member

全てのチームのユーザーを取得しCSVファイルに保存する

#コマンド実行日時を取得する
$yyyyMMddFFFFF = Get-Date -Format "yyyyMMdd_FFFFF"

#CSVの保存先 windowsOSの場合、デスクトップに保存する
$csvSavePath = "$env:USERPROFILE\Desktop"

#保存するCSVのファイル名
$csvFileName = "allTeamMemberList_${yyyyMMddFFFFF}.csv"

#取得した情報を格納する配列を宣言する
$result = @()


#TeamsPowerShellに接続する
Connect-MicrosoftTeams

#現在登録されている全てのチームを取得する
$teamList = Get-Team

#アーカイブされているチームを除外する場合
#$teamList = Get-Team -Archived:$false

#取得したチームの数だけ繰り返す
foreach($team in $teamList){
    #チームに参加しているユーザーを取得する
    $teamUserList = Get-TeamUser -GroupId $team.GroupId

    #ユーザーの数だけ繰り返す
    foreach($teamUser in $teamUserList){
        #チーム名やUPN等の関連情報を格納する
        $result += [PSCustomObject]@{
            TeamName = $team.DisplayName
            GoupId = $team.GroupId
            Visibility = $team.Visibility
            UPN = $teamUser.User
            UserDisplayName = $teamUser.Name
            Role = $teamUser.Role
        }
    }
}

#TeamsPowerShellから切断する
Disconnect-MicrosoftTeams -Confirm:$false

#格納した結果を並び替えし、CSVファイルへエクスポートする
$result | Sort-Object TeamName,Visibility,@{Expression = "Role"; Descending = $true},UPN | 
Export-Csv -Encoding utf8 `
    -NoTypeInformation `
    -Path "${csvSavePath}\${csvFileName}"

参考情報

問い合わせフォーム

リンク切れのご報告や、記載内容に不備がありましたら、お手数をおかけしますが
以下お問い合わせフォームからご報告をお願い致します。
コマンドの仕様確認やエラー内容の確認、対処方法については、ご契約されているMicrosoftかCSPへお問い合わせください。
※いただきました内容は確認させていただきますが、必ずしも回答をお約束するものではございません。

    ExchangePowerShellを使用してMicrosoft365グループへCSVからメンバーを一括追加する前のページ

    GraphPowerShellを使用してアカウントの部署情報を一括更新する次のページ

    関連記事

    1. MicrosoftTeams

      GraphPowerShellからTeamsのチームを一括作成する

      New-MgTeamを使用してcsvファイルからチームを一括作成する方…

    2. MicrosoftTeams

      TeamsPowerShellを使用してすべてのチャネルを取得する

      チャネルの使用状況や設定を一括変更する際の前準備として情報収…

    3. MicrosoftTeams

      GraphPowershellを使用して使用されていないチームを一括でアーカイブ化する

      一定期間特定のアクティビティのないチームを、一括でアーカイブ…

    最近の記事

    PAGE TOP