Microsoft 365 開発者サブスクリプションを使用して、サンプル データを使用してMicrosoft Teams アプリをテストできます。
前提条件
- テスト テナントがない場合は、Microsoft 365 開発者プログラムに参加します。
- Microsoft 365 開発者サブスクリプションを設定する
- サンプル データ パックを Microsoft 365 開発者サブスクリプションと共に使用して、Users コンテンツ パックをインストールします。
- Teams PowerShell モジュールをインストールします。
- Microsoft Graph PowerShell モジュールをインストールします。
注:
スクリプトを実行するには、テナントにグローバル管理者アクセス許可が必要です。
ユーザーによるアプリのアップロードを許可する
既定では、テナントにカスタム アプリをアップロードできるのは、グローバル管理者または Teams サービス管理者のみです。 また、ユーザーが自分で使用したり、テストのためにチームにカスタム アプリをアップロードしたりすることもできます。 詳細については、「Teams でカスタム アプリ ポリシーと設定を管理する」を参照してください。
テスト用のチームとチャネルを作成する
注:
Azure AD PowerShell は非推奨です。 詳細については、「 非推奨の更新プログラム」を参照してください。 Microsoft Entra IDと対話するには、Microsoft Graph PowerShell に移行することをお勧めします。 Microsoft Graph PowerShell では、すべての Microsoft Graph API へのアクセスが許可され、PowerShell 7 で利用できます。 詳細については、「 移行に関する FAQ」を参照してください。
次のスニペットを .xml ファイルとして保存し、ファイル パスをメモします。 この XML は、メンバーと共に作成されるチームとチャネルの構造を定義します。
<?xml version="1.0"?> <Teams> <Team Name="Store Portal" ID="storeportal" Description="" Type="Private" Creator="admin"> <Members> <Member UserName="AlexW" IsOwner="false"/> <Member UserName="PattiF" IsOwner="false"/> <Member UserName="PradeepG" IsOwner="false"/> <Member UserName="JoniS" IsOwner="false"/> <Member UserName="JohannaL" IsOwner="false"/> <Member UserName="NestorW" IsOwner="false"/> <Member UserName="IsaiahL" IsOwner="false"/> <Member UserName="AdeleV" IsOwner="false"/> <Member UserName="LeeG" IsOwner="false"/> <Member UserName="MeganB" IsOwner="true"/> <Member UserName="LynneR" IsOwner="false"/> <Member UserName="GradyA" IsOwner="false"/> <Member UserName="LidiaH" IsOwner="false"/> <Member UserName="DiegoS" IsOwner="false"/> <Member UserName="MiriamG" IsOwner="true"/> </Members> <Channels> <Channel Name="Sales" ID="sales" Description="" Creator="Admin" /> <Channel Name="Inventory" ID="inventory" Description="" Creator="Admin" /> <Channel Name="Los Angeles Store 239" ID="losangelesstore239" Description="" Creator="Admin" /> <Channel Name="Seattle Store 121" ID="seattlestore121" Description="" Creator="Admin" /> <Channel Name="Online" ID="online" Description="" Creator="Admin" /> <Channel Name="Store Layout" ID="storelayout" Description="" Creator="Admin" /> <Channel Name="Promotions" ID="promotions" Description="" Creator="Admin" /> </Channels> </Team> <Team Name="Mark 8 Project Team" ID="Mark8ProjectTeam" Description="Welcome to the team that we've assembled to create the Mark 8." Type="Private" Creator="admin"> <Members> <Member UserName="meganb" IsOwner="true" /> <Member UserName="alexw" IsOwner="false" /> <Member UserName="lynner" IsOwner="false" /> <Member UserName="isaiahl" IsOwner="false" /> <Member UserName="leeg" IsOwner="false" /> <Member UserName="pradeepg" IsOwner="false" /> <Member UserName="lidiah" IsOwner="false" /> <Member UserName="diegos" IsOwner="false" /> <Member UserName="johannal" IsOwner="false" /> <Member UserName="miriamg" IsOwner="false" /> <Member UserName="adelev" IsOwner="false" /> <Member UserName="jonis" IsOwner="false" /> <Member UserName="nestorw" IsOwner="false" /> <Member UserName="gradya" IsOwner="false" /> <Member UserName="pattif" IsOwner="false" /> </Members> <Channels> <Channel Name="Research and Development" ID="researchanddevelopment" Description="Channel for Research and Development!" Creator="meganb" /> <Channel Name="Design" ID="design" Description="Discuss design projects." Creator="meganb" /> <Channel Name="Digital Assets Web" ID="digitalassetsweb" Description="Discuss digital assets." Creator="meganb" /> <Channel Name="Go to Market Plan" ID="gotomarketplan" Description="Our go-to-market plan!" Creator="meganb" /> </Channels> </Team> <Team Name="District 9 Road Safety Audit" ID="district9roadsafetyaudit" Description="" Type="Private" Creator="admin"> <Members> <Member UserName="meganb" IsOwner="true" /> <Member UserName="alexw" IsOwner="false" /> <Member UserName="lynner" IsOwner="false" /> <Member UserName="isaiahl" IsOwner="false" /> <Member UserName="leeg" IsOwner="false" /> <Member UserName="pradeepg" IsOwner="false" /> <Member UserName="lidiah" IsOwner="false" /> <Member UserName="diegos" IsOwner="false" /> <Member UserName="johannal" IsOwner="false" /> <Member UserName="miriamg" IsOwner="false" /> <Member UserName="adelev" IsOwner="false" /> <Member UserName="jonis" IsOwner="false" /> <Member UserName="nestorw" IsOwner="false" /> <Member UserName="gradya" IsOwner="false" /> <Member UserName="pattif" IsOwner="false" /> </Members> <Channels> <Channel Name="Audit Planning" ID="auditplanning" Description="" Creator="Admin" /> <Channel Name="Delivery" ID="delivery" Description="" Creator="Admin" /> <Channel Name="Findings" ID="findings" Description="" Creator="Admin" /> <Channel Name="Recommended Actions" ID="recommendedactions" Description="" Creator="Admin" /> <Channel Name="Survey" ID="survey" Description="" Creator="Admin" /> </Channels> </Team> <Team Name="ACC-1000 Product Team" ID="acc1000productteam" Description="" Type="Private" Creator="admin" > <Members> <Member UserName="meganb" IsOwner="true" /> <Member UserName="alexw" IsOwner="false" /> <Member UserName="lynner" IsOwner="false" /> <Member UserName="isaiahl" IsOwner="false" /> <Member UserName="leeg" IsOwner="false" /> <Member UserName="pradeepg" IsOwner="false" /> <Member UserName="lidiah" IsOwner="false" /> <Member UserName="diegos" IsOwner="false" /> <Member UserName="johannal" IsOwner="false" /> <Member UserName="miriamg" IsOwner="false" /> <Member UserName="adelev" IsOwner="false" /> <Member UserName="jonis" IsOwner="false" /> <Member UserName="nestorw" IsOwner="false" /> <Member UserName="gradya" IsOwner="false" /> <Member UserName="pattif" IsOwner="false" /> </Members> <Channels> <Channel Name="Corporate Communication" ID="corporatecommunication" Description="" Creator="Admin" /> <Channel Name="Lean Process Improvement" ID="corporatecommunication" Description="" Creator="Admin" /> <Channel Name="Training and Certification" ID="trainingandcertification" Description="" Creator="Admin" /> <Channel Name="Production" ID="production" Description="" Creator="Admin" /> <Channel Name="Research and Development" ID="researchanddevelopment" Description="" Creator="Admin" /> <Channel Name="Supplier Collaboration" ID="suppliercollaboration" Description="" Creator="Admin" /> </Channels> </Team> </Teams>
次のスニペットを PowerShell スクリプト (.ps1) として保存し、保存した場所をメモします。 このスクリプトは、チームとチャネルを作成し、メンバーを追加する手順を実行します。
Param( [Parameter(Mandatory = $true)] # This specifies the ___location of your configuration XML [string] $teamsFilePath ) [xml]$XmlDocument = Get-Content -Path $teamsFilePath.ToString() if ($XmlDocument.Teams.Team.Count -gt 0) { try { # 1. Connecting to Microsft Graph PowerShell. Connect-MgGraph -Scopes "Group.ReadWrite.All", "User.ReadWrite.All", "Channel.Create", "Team.Create" -ErrorAction Stop # Connect to Microsoft Teams PowerShell. Connect-MicrosoftTeams Write-Host "Connected to Microsoft 365 and configuring your organization with test teams and channels" # 2. Create the teams as specified in the XML foreach ($team in $XmlDocument.Teams.Team ) { try { $group = New-Team -DisplayName $team.Name -Description $team.description -visibility public Write-Host "Successfully created team: " $group.DisplayName } catch { Write-Host "Unable to create team: $_" } # 3. Add users to the newly created teams foreach ($user in $team.Members.Member) { try { # Lookup user by exact userPrincipalName $username = if ($user.UserName -match '@') { $user.UserName.ToLower() } else { "$($user.UserName.ToLower())@M365x15856998.onmicrosoft.com" } $userObject = Get-MgUser -Filter "userPrincipalName eq '$username'" -ConsistencyLevel eventual $newUserPrincipalName = $userObject.UserPrincipalName if ($user.IsOwner -eq $true) { Add-TeamUser -GroupId $group.GroupId -User $newUserPrincipalName -Role Owner | Out-Null } else { Add-TeamUser -GroupId $group.GroupId -User $newUserPrincipalName | Out-Null } Write-Host "Successfully added user : " $user.UserName } catch { Write-Host "Unable to add team user: $_" } } # 4. Add a set of channels to each newly created team foreach ($channel in $team.Channels.Channel) { try { # Adding each team channel New-TeamChannel -GroupId $group.GroupId -DisplayName $channel.Name -Description $channel.Description | Out-Null Write-Host "Successfully created channel: " $channel.Name } catch { Write-Host "Unable to add new Team Channel: $_" } } } # 5. Disconnect from all PowerShell sessions Write-Host "Completed execution and disconnecting from Microsoft 365 PowerShell sessions." Disconnect-MicrosoftTeams Disconnect-MgGraph } catch { Write-Host "Unable to complete the operation: $_" } } else { Write-Host "Content file has invalid data." }
管理者モードでWindows PowerShell セッションを開き、保存したスクリプトを実行します。
資格情報の入力を求められたら、開発者サブスクリプションに初めてサインアップしたときに受け取ったグローバル管理者の資格情報を入力します。
注:
スクリプトの実行に数分かかるため、PowerShell セッションを閉じないでください。 サブスクリプション内のユーザーを既定のコンテンツ パックで作成されたものから変更した場合、一部のユーザーは Teams に追加されない可能性があります。 スクリプトを実行すると、成功または失敗したアクションが表示されます。
スクリプトの実行が完了したら、いずれかのユーザー アカウントを使用してTeams クライアントにサインインし、新しく作成されたチームを表示できます。
関連項目
Platform Docs