MicrosoftTeams

GraphPowerShellからすべてのチームのメンバーを取得する

GraphPowerShellを使用してTeamsの各チームのメンバーを一括取得し、CSVで保存する。

検証環境について

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

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

GraphPowershellのモジュール名とバージョン
Microsoft.Graph.Authentication 2.11.1
Microsoft.Graph.Identity.DirectoryManagement 2.11.1

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

使用するコマンド

Get-MgTeam

使用例

Get-MgTeam -All | Format-List

取得できる情報例

AllChannels          :
Channels             :
Classification       :
CreatedDateTime      :
Description          : 
DisplayName          : 
FunSettings          : Microsoft.Graph.PowerShell.Models.MicrosoftGraphTeamFunSettings
Group                : Microsoft.Graph.PowerShell.Models.MicrosoftGraphGroup
GuestSettings        : Microsoft.Graph.PowerShell.Models.MicrosoftGraphTeamGuestSettings
Id                   : 00000000-0000-0000-0000-000000000123
IncomingChannels     :
InstalledApps        :
InternalId           :
IsArchived           :
MemberSettings       : Microsoft.Graph.PowerShell.Models.MicrosoftGraphTeamMemberSettings
Members              :
MessagingSettings    : Microsoft.Graph.PowerShell.Models.MicrosoftGraphTeamMessagingSettings
Operations           :
PermissionGrants     :
Photo                : Microsoft.Graph.PowerShell.Models.MicrosoftGraphProfilePhoto
PrimaryChannel       : Microsoft.Graph.PowerShell.Models.MicrosoftGraphChannel
Schedule             : Microsoft.Graph.PowerShell.Models.MicrosoftGraphSchedule
Specialization       :
Summary              : Microsoft.Graph.PowerShell.Models.MicrosoftGraphTeamSummary
Tags                 :
Template             : Microsoft.Graph.PowerShell.Models.MicrosoftGraphTeamsTemplate
TenantId             :
Visibility           : public
WebUrl               :
AdditionalProperties : {}

Get-MgTeamMember

使用例

Get-MgTeamMember -All -Id 00000000-0000-0000-0000-000000000123 | Format-List

取得できる情報例

DisplayName                 : Lee Gu
Id                          : MCMjMSMjNWJkMDk0NzAtODEyYS00NTl1LWE7OWYdNDJlNWFmOThkZWM0IyMwNGNhM2YwYi00NmRkLTQ5YTAtYWM0O
                              S0xODI0ODE2MGU4NGEjIzFiOONhOTFmLWQ5TjItNDIyNi8iYjZkLTA2Yjg2NTJmMjYzMQ==
Roles                       : {}
VisibleHistoryStartDateTime : 0001/01/01 0:00:00
AdditionalProperties        : {[@odata.type, #microsoft.graph.aadUserConversationMember], [userId, 00000000-0000-0000-0000-000000000000], [email, LeeG@*****.onmicrosoft.com], [tenantId, 00000000-0000-0000-0000-000000000000]}

すべてのチームメンバーをCSVファイルとして保存する

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

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

#CSVのファイル名を指定する
$csvFileName = "teamMemberList_${yyyyMMddFFFFF}.csv"

#取得した情報の保存先の変数
$allTeamMenberList = @()


#GraphPowerShellに接続する
Connect-MgGraph -NoWelcome -Scopes "TeamMember.Read.All"

#すべてのチームの表示名とIdを取得する
$allTeamList = Get-MgTeam -All | Select-Object DisplayName,Id

#チームごとにメンバー情報を取得する
foreach($team in $allTeamList){
    #teamIdを指定して特定チームのメンバーを取得する
    $teamMemberList = Get-MgTeamMember -All -TeamId $team.Id
    
    #ownerやguestなど役割があるアカウントを降順になるよう並び替え
  $teamMemberList = $teamMemberList | Sort-Object Roles -Descending

    #上記で取得した各メンバーごとの情報を取得する
    foreach($teamMember in $teamMemberList){
        $allTeamMenberList += [PSCustomObject]@{
            TeamName = $team.DisplayName
            MemberDisplayName = $teamMember.DisplayName
            MemberEmail = $teamMember.AdditionalProperties.email
            Roles = [String]$teamMember.roles
        }
    }
}

#GraphPowerShellから切断する
Disconnect-MgGraph

#CSVファイルとして保存する
$allTeamMenberList | Export-Csv -Encoding UTF8 `
    -NoTypeInformation `
    -Path "${csvSavePath}\${csvFileName}"

保存したCSV内の情報例

"TeamName","MemberDisplayName","MemberEmail","Roles"
"Digital Initiative Public Relations","Patti Fernandez","PattiF@*****.onmicrosoft.com","owner"
"Digital Initiative Public Relations","Alex Wilber","AlexW@*****.onmicrosoft.com",""
"U.S. Sales","Miriam Graham","******@gmail.com","guest"

問い合わせフォーム

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

    GraphPowerShellからユーザーを一括作成する前のページ

    Microsoft365のグループ、セキュリティグループ、配布リスト、サイトのユーザー作成を制限する次のページ

    関連記事

    1. MicrosoftTeams

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

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

    2. MicrosoftTeams

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

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

    3. MicrosoftTeams

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

      各チームに所属しているメンバーの一覧をCSVファイルとして取…

    4. MicrosoftTeams

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

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

    最近の記事

    PAGE TOP