New-MgTeamを使用してcsvファイルからチームを一括作成する方法について記載する。New-MgTeamのコマンドではSMTPアドレスを直接指定できないため、グループアドレスとして使用することを想定している場合はお勧めできない方法となる。
検証環境について
動作確認した検証環境は以下の通り。
OS:Microsoft Windows 11 Enterprise
OSbuildバージョン:10.0.22621
PowerShellのバージョン:7.4.0
GraphPowershellのモジュール名とバージョン
Microsoft.Graph.Authentication 2.12.0
Microsoft.Graph.Sites 2.12.0
Microsoft.Graph.Teams 2.12.0サインインアカウントの権限はグローバル管理者。
使用するコマンド
New-MgTeam
Get-MgTeamChannel
使用例
Get-MgTeamChannel -TeamId 00000000-0000-0000-0000-000000000000 | Format-List取得できる情報例
CreatedDateTime : 0000/00/00 00:00:00
Description : TEST
DisplayName : General
Email : *****@****.onmicrosoft.com
FilesFolder : Microsoft.Graph.PowerShell.Models.MicrosoftGraphDriveItem
Id : *******@thread.tacv2
IsFavoriteByDefault :
Members :
MembershipType : standard
Messages :
SharedWithTeams :
Summary : Microsoft.Graph.PowerShell.Models.MicrosoftGraphChannelSummary
Tabs :
TenantId : ******
WebUrl : https://teams.microsoft.com/l/channel/*******@thread.tacv2/Digit
al%20Initiative%20Public%20Relations?groupId=*****&tenantId=*****
&allowXTenantAccess=False
AdditionalProperties : {}Get-MgTeamChannelFileFolder
使用例
Get-MgTeamChannelFileFolder`
-TeamId 00000000-0000-0000-0000-000000000000`
-ChannelId *****@thread.tacv2取得できる情報例
Analytics : Microsoft.Graph.PowerShell.Models.MicrosoftGraphItemAnalytics
Audio : Microsoft.Graph.PowerShell.Models.MicrosoftGraphAudio
Bundle : Microsoft.Graph.PowerShell.Models.MicrosoftGraphBundle
CTag :
Children :
Content :
CreatedBy : Microsoft.Graph.PowerShell.Models.MicrosoftGraphIdentitySet
CreatedByUser : Microsoft.Graph.PowerShell.Models.MicrosoftGraphUser
CreatedDateTime : 0000/00/00 0:00:00
Deleted : Microsoft.Graph.PowerShell.Models.MicrosoftGraphDeleted
Description :
ETag :
File : Microsoft.Graph.PowerShell.Models.MicrosoftGraphFile
FileSystemInfo : Microsoft.Graph.PowerShell.Models.MicrosoftGraphFileSystemInfo
Folder : Microsoft.Graph.PowerShell.Models.MicrosoftGraphFolder
Id : 0000000000000000000000000000000000
Image : Microsoft.Graph.PowerShell.Models.MicrosoftGraphImage
LastModifiedBy : Microsoft.Graph.PowerShell.Models.MicrosoftGraphIdentitySet
LastModifiedByUser : Microsoft.Graph.PowerShell.Models.MicrosoftGraphUser
LastModifiedDateTime : 0000/00/00 00:00:00
ListItem : Microsoft.Graph.PowerShell.Models.MicrosoftGraphListItem
Location : Microsoft.Graph.PowerShell.Models.MicrosoftGraphGeoCoordinates
Malware : Microsoft.Graph.PowerShell.Models.MicrosoftGraphMalware
Name : General
Package : Microsoft.Graph.PowerShell.Models.MicrosoftGraphPackage
ParentReference : Microsoft.Graph.PowerShell.Models.MicrosoftGraphItemReference
PendingOperations : Microsoft.Graph.PowerShell.Models.MicrosoftGraphPendingOperations
Permissions :
Photo : Microsoft.Graph.PowerShell.Models.MicrosoftGraphPhoto
Publication : Microsoft.Graph.PowerShell.Models.MicrosoftGraphPublicationFacet
RemoteItem : Microsoft.Graph.PowerShell.Models.MicrosoftGraphRemoteItem
RetentionLabel : Microsoft.Graph.PowerShell.Models.MicrosoftGraphItemRetentionLabel
Root : Microsoft.Graph.PowerShell.Models.MicrosoftGraphRoot
SearchResult : Microsoft.Graph.PowerShell.Models.MicrosoftGraphSearchResult
Shared : Microsoft.Graph.PowerShell.Models.MicrosoftGraphShared
SharepointIds : Microsoft.Graph.PowerShell.Models.MicrosoftGraphSharepointIds
Size : 0
SpecialFolder : Microsoft.Graph.PowerShell.Models.MicrosoftGraphSpecialFolder
Subscriptions :
Thumbnails :
Versions :
Video : Microsoft.Graph.PowerShell.Models.MicrosoftGraphVideo
WebDavUrl :
WebUrl : https://****.sharepoint.com/sites/****/Shared%20Documents/General
Workbook : Microsoft.Graph.PowerShell.Models.MicrosoftGraphWorkbook
AdditionalProperties : {[@odata.context, https://graph.microsoft.com/v1.0/$metadata#teams('00000000-0000-0000-0000-000000000000')/channels('****%40thread.tacv2')/filesFolder/$entity]}一括作成するためのCSVファイルを作成する
#CSVの保存先 windowsOSの場合、デスクトップに保存する
$csvSavePath = "$env:USERPROFILE\Desktop"
#CSVのファイル名
$csvFileName = "teamList.csv"
#パラメータを指定する
$teamPrmCSV = [PSCustomObject]@{
displayName = $null
description = $null
Visibility = $null
}
$teamPrmCSV | Export-Csv -Path "${csvSavePath}\${csvFileName}" `
-Encoding utf8 -NoTypeInformationCSV記入例
| displayName | description | Visibility |
|---|---|---|
| 経理課 | 経理課所属課員での情報共有場所 | Private |
| 総務課 | 総務課所属課員での情報共有場所 | Private |
| 社内各種問い合わせ窓口 | 各課チャネルに問い合わせ内容を投稿してください | Public |
CSVを読み込みチームを一括作成する
#CSVの保存先を指定する
$csvSavePath = "$env:USERPROFILE\Desktop"
#読み込むCSVファイル名を指定する
$csvFileName = "teamList.csv"
#編集したCSVファイルを読み込む
$csvTeamList = Import-Csv -Path "${csvSavePath}\${csvFileName}"
#GraphPowerShellへ接続する
Connect-MgGraph -Scopes Team.Create -NoWelcome
foreach($team in $csvTeamList){
#CSVの情報を取り出す
$teamParm = @{
"template@odata.bind" = "https://graph.microsoft.com/v1.0/teamsTemplates('standard')"
DisplayName = $team.displayName
description = $team.description
Visibility = $team.Visibility
}
New-MgTeam -BodyParameter $teamParm
}
Disconnect-MgGraphすべてのチームサイトのプロビジョニングを実行する
#取得したチームを保存する変数
$allTeamList = @()
#取得したチャネルを保存する変数
$allChannelList = @()
#GraphPowerShellに接続する
Connect-MgGraph -Scopes Team.ReadBasic.All,Files.Read.All -NoWelcome
#すべてのチームを取得する
$allTeamList = Get-MgTeam -All
foreach($team in $allTeamList){
#取得したチーム一つ一つのチームIDを使用しチャネルを取得する
$allChannelList = Get-MgTeamChannel -TeamId $team.id
foreach($channel in $allChannelList){
Get-MgTeamChannelFileFolder -TeamId $team.id -ChannelId $channel.id
}
}
Disconnect-MgGraph問い合わせフォーム
リンク切れのご報告や、記載内容に不備がありましたら、お手数をおかけしますが
以下お問い合わせフォームからご報告をお願い致します。
コマンドの仕様確認やエラー内容の確認、対処方法については、ご契約されているMicrosoftかCSPへお問い合わせください。
※いただきました内容は確認させていただきますが、必ずしも回答をお約束するものではございません。






