Добавление тестовых данных в тестовый клиент Office 365Add test data to your Office 365 test tenant

Настройка подписки на программу разработчика O365 (или другого тестового клиента) для упрощения тестирования созданных приложений.Set up your O365 developer program subscription (or other test tenant) to make it easy for you to test the apps that you've built. Это позволит:It will help you:

  • Создание новых команд и каналов в ОрганизацииCreate new teams and channels in your organization

  • Добавьте пользователей, которые созданы с помощью пакета содержимого пользователя, в эти команды.Add the users that are created via the User content pack to those teams.

Перед началом работыBefore you start

Если у вас еще нет тестового клиента, вам потребуется присоединиться к программе для разработчиков Office 365 и зарегистрировать подписку разработчика.If you don't already have a test tenant, you will need to join the Office 365 developer program and sign up for a developer subscription. Кроме того, вам потребуется установить необходимые модули PowerShell.You'll also need to install the necessary PowerShell modules. Для запуска скриптов необходимо иметь разрешения глобального администратора для любого клиента, который вы используете.For whatever tenant you use you'll need to have global administrator permissions to run the scripts.

  1. Присоединяйтесь к программе для разработчиков Office 365Join the Office 365 Developer Program
  2. Настройка подписки на Microsoft 365 для разработчиковSet up a Microsoft 365 Developer Subscription
  3. Использование образцов пакетов данных с подпиской на Office 365 для разработчиков для установки пакета содержимого для пользователейUse sample data packs with your Office 365 developer subscription to install the Users content pack
  4. Установка модуля PowerShell TeamsInstall the Teams PowerShell module
  5. Установка модуля Azure AD PowerShellInstall the Azure AD PowerShell module

Необязательный шаг: разрешить отправку пользовательских приложенийOptional step: allow upload of custom apps

По умолчанию только глобальные администраторы или Администраторы службы Teams могут отправлять пользовательские приложения в каталог приложений клиента.By default, only global admins or teams service admins can upload custom apps into the tenant app catalog. Вы также можете разрешить всем пользователям отправлять пользовательские приложения для их использования или для тестирования в Teams.You can also enable all users to upload custom apps for their own use or to teams for testing.

Чтобы включить этот параметр, необходимо обновить политику установки глобального приложения в портале администрирования Teams.To enable this setting, you'll need to update the global App Setup Policy in your Teams Admin Portal.

Дополнительные сведения см. в указанных ниже статьях. For more information see:

Создание команд и каналовCreate teams and channels

Сохраните следующий фрагмент кода в виде XML-файла (XML) и запомните, где вы его сохранили.Save the following snippet as an XML (.xml) and note where you've saved it. В этом XML-коде определяется структура команд и каналов, которые будут созданы, вместе с их участниками.This XML defines the structure of the teams and channels that will be created - along with its members.

<?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) и запомните, где вы его сохранили.Save the following snippet as a PowerShell script (.ps1) and note where you've saved it. Этот сценарий выполняет действия по созданию команд и каналов и добавлению участников в них.This script executes the steps to create the teams and channels and add members to them.

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. Login with the global administrator account for your O365 Developer Program tenant.  This script will then use these credentials to connect to the powershell modules for Azure Active Directory and Microsoft Teams
        
        $creds = Get-Credential

        # Connecting to AAD PowerShell
        Connect-AzureAD -Credential $creds | Out-Null

        # Connect to Microsoft Teams PowerShell
        Connect-MicrosoftTeams -Credential $creds | Out-Null

        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 $teams.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 {
                    $newUserPrincipalName = (Get-AzureADUser -SearchString $user.UserName).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: $_"
                }   
            }

            Clear-Variable -Name group
        }

        Clear-Variable -Name creds
        
        # 5. Disconnect from all PowerShell sessions
        
        Write-Host "Completed execution and disconnecting from Microsoft 365 PowerShell sessions."
        Disconnect-MicrosoftTeams
        Disconnect-AzureAD
    }
    catch {
        Write-Host "Unable to complete the operation: $_"
    }
}
else {
    Write-Host "Content file has invalid data."
}

Откройте сеанс Windows PowerShell в режиме администратора.Open a Windows PowerShell session in Administrator mode. Запустите скрипт, который вы только что сохранили.Run the script that you just saved. Вам будет предложено ввести учетные данные, используя учетные данные глобального администратора, которые вы получили при первой регистрации в вашей подписке разработчика.You'll be prompted to provide the credentials - use the Global Administrator credentials you received when you first signed up for your developer subscription.

Примечание

Выполнение сценария займет несколько минут, не закрывайте сеанс PowerShell.The script will take several minutes to execute - do not close your PowerShell session. Если вы изменяли пользователей в подписке из того, что создается в пакете содержимого по умолчанию, некоторые пользователи не могут быть добавлены в Teams.If you've modified the users in your subscription from what is created in the default content pack, some users may not be added to teams. При выполнении скрипта будут выводиться действия, которые были успешными или неудачными.As the script executes it will output successful or failed actions.

После завершения выполнения скрипта можно выполнить вход в клиент Teams с одной из учетных записей пользователей и просмотреть только что созданные команды.Once the script has finished execution, you can login to the Teams client with one of the user accounts and view the newly created teams.