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へお問い合わせください。
※いただきました内容は確認させていただきますが、必ずしも回答をお約束するものではございません。







