MicrosoftTeams

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

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 -NoTypeInformation

CSV記入例

displayNamedescriptionVisibility
経理課経理課所属課員での情報共有場所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へお問い合わせください。
※いただきました内容は確認させていただきますが、必ずしも回答をお約束するものではございません。

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

    ExchangePowershellを使用して配布リストのメンバーを一括取得する次のページ

    関連記事

    1. MicrosoftTeams

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

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

    2. MicrosoftTeams

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

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

    3. MicrosoftTeams

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

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

    最近の記事

    PAGE TOP