Slack から Microsoft Teams に移行するMigrate from Slack to Microsoft Teams

この記事では、Slack から Microsoft Teams への移行プロセスについて説明します。This article walks you through the journey of moving to Microsoft Teams from Slack.

Slack から Teams への組織の移行を計画する場合、保持するものを特定することが重要です (ある場合)。When planning your organization’s move to Teams from Slack, it's important to decide what you need to keep (if anything). まずは移行可能なデータの種類について説明し、次に組織のニーズの評価、移行計画、移行の実行方法について説明します。We'll start off by describing what types of data can be migrated and then walk you through how to assess your needs, plan your move, and then make the move.

次の図は、Slack のアーキテクチャの概観図です。The diagram below shows the Slack architecture at a high level.

Slack のアーキテクチャの概観図

Slack からの移行を計画するPlan your migration from Slack

移行できるものと移行できないものWhat you can and can’t migrate

移行できるものと移行できないものは、お客様の Slack サービス プランにより決まります。Your Slack service plan will determine what you can and can’t migrate. たとえば、エクスポートできるのはパブリック チャンネルの履歴とファイルのみの Slack サービス プランもあれば、プライベート チャンネルとダイレクト メッセージを含めるには DocuSign のリクエストが必要なサービス プランもあります。For example, some Slack service plans only let you export public channels history and files, other require a DocuSign request to include Private Channels and Direct Messages.

Slack ワークスペースのサービス レベルを特定するには、Slack にログインし、[このワークスペースについて] ページに表示されるプランの種類を確認します。To determine your Slack Workspace service level, log into Slack and note your plan type on the About this Workspace page.

Slack のエクスポート オプションの詳細については、Slack の Web サイトを参照してください。 https://get.slack.help/hc/articles/204897248-Guide-to-Slack-import-and-export-toolsTo learn more about Slack export options, go to the Slack website: https://get.slack.help/hc/articles/204897248-Guide-to-Slack-import-and-export-tools

この記事で説明する Slack の移行に関する状況の概略を次の図に示します。The diagram below gives you a high-level look at the Slack migration landscape that we’ll cover in this article.

Slack の移行に関する状況を示す図

このセクションを読み終えると、次のことを理解できます。When you're done with this section, you should understand:

  • Slack ワークスペースのサービス レベルThe service level of your Slack Workspaces
  • エクスポートできるものとできないものWhat can and can't be exported
  • エクスポートの一般的な方法Common approaches to exporting

Slack ワークスペースの評価Assess your Slack workspaces

組織の移行計画を立てる前に、Slack ワークスペースに関する情報をまとめる必要があります。Before you can plan your organization’s migration plan, you need to pull together some information about your Slack workspaces. Slack ワークスペースがどのように使用されているかを理解することで、移行の範囲を特定しやすくなります。Understanding how your Slack workspaces are being used helps you determine the scope of your migration. たとえば、ワークスペースはいくつ移行するのでしょうか。For example, how many workspaces are being moved? それらのワークスペースは特定の部署で使用されているものでしょうか。それとも組織全体で使用されているものでしょうか。Are they used by a specific department, many, or in use by an entire organization?

移行する Slack ワークスペースのメンバーのユーザーは、slack.com/stats にアクセスして使用状況をユーザー自身で分析できます。使用パターンは [チャンネル] タブと [メンバー] タブで確認できます。If you’re a member of the Slack Workspaces you want to migrate, you can analyze the usage yourself by going to .slack.com/stats. Review the Channels and Members tabs to look for usage patterns. 移行するワークスペース (および移行しないワークスペース) を決定します。Decide which workspaces you want to migrate (and which ones you want to leave behind).

注意

ユーザーが統計情報のページにアクセスできない場合、そのユーザーは管理者または所有者ではないことを意味します。If you don’t have access to the stats page, you’re not an admin or owner.

チャンネルをエクスポートするExport Channels

Slack では、ユーザーは Slack ワークスペースの一部であるチャンネルに参加します。これに対して Teams の場合、ユーザーはチャネルの集合体であるチームに参加します。In Slack, users join a channel which is part of a Slack Workspace, whereas in Teams users join a team which is a collection of channels. どのチャンネルを移行するかを決めやすくするために、Slack のアナリティクスを使用してそれぞれのチャンネルでのアクティビティの量を確認することを推奨します。We recommend that you use Slack analytics to see how much activity happens in each channel to help you decide which channels to move. 結果の一覧を使用して、Slack チャンネルを Teams のチームとしてグループ化する方法および各チームのメンバーにすべきユーザーを決定できます。You’ll use the resulting list to figure out how to group your Slack channels into teams in Teams as well as who should be members of each team.

Slack の有料版サービス プラン (無料版以外のすべてのサービス プラン) を使用している場合、Slack のアナリティクス (slack.com/admin/stats#channels) を使用して、チャンネルの活発度、最後に使用された日時、およびメンバー数を確認できます。If you have a paid Slack service plan (anything other than Free), you can use Slack’s analytics (.slack.com/admin/stats#channels) to see how active a channel is, when it was last used, and how many people are members. こうした情報を使用して、チャンネルを移行するかどうかを決定できます。This can help you decide whether to migrate the channel. 既定では、パブリック チャンネルのコンテンツ (メッセージおよびファイル) はエクスポートできます。By default, public channels content (messages and files) can be exported. これらは、Slack のサービス プランに応じて、また、プライベート チャンネルとダイレクト メッセージを Slack に要求したかどうかに応じてエクスポートできます。Depending on your Slack service plan and whether you’ve requested Private Channels and Direct Messages from Slack, those can be exported.

Slack のエクスポート オプションの詳細については、Slack の Web サイトを参照してください。 https://get.slack.help/hc/articles/204897248-Guide-to-Slack-import-and-export-toolsTo learn more about Slack export options, go to the Slack website: https://get.slack.help/hc/articles/204897248-Guide-to-Slack-import-and-export-tools

重要

チャンネルのデータに関する組織のプライバシーとコンプライアンスの要件を確認します。Check your organization’s privacy and compliance requirements around channel data. 組織では、エンドユーザーを特定可能なコンテンツ (EUII) のライフライクルへの準拠に加え、このデータの取り扱い、保存、および処理に関するコンプライアンス要件がある場合があります。Your organization may have compliance requirements around the handling, storage, and processing of this data, in addition to complying with the lifecycle of end-user identifiable content (EUII).

ダイレクト メッセージをエクスポートするExport Direct Messages

ダイレクト メッセージは Teams のチャットと同じ機能で、1 対 1 または 1 対多数のチャンネル外の会話です。Direct Messages are the same as chats in Teams, which are 1:1 or 1-to-many non-channel conversations. エクスポート性は、Slack のサービス プランおよび、Slack のエクスポートにダイレクト メッセージを含めることを要求しているかどうかにより決まります。Export-ability depends on your Slack service plan and if you’ve requested Direct Messages to be included in your Slack Export. Teams では現在、ダイレクト メッセージのインポートはサポートされていません。Teams doesn’t support importing Direct messages currently. ダイレクト メッセージのコンテンツを Teams に移動するためのサードパーティのソリューションを調べるには、Microsoft パートナーに相談して説明を受けてください。Consult a Microsoft partner to learn about third-party solutions you can explore that bring Direct Messages content into Teams.

ダイレクト メッセージをエクスポートする場合は、Slack アプリ ストアの Export などのツールを確認してください。For exporting Direct Messages, check out tools, such as Export, in the Slack App Store.

アプリとカスタム統合Apps and custom integrations

Slack のアプリは、Teams のアプリのようなものです。Apps in Slack are like apps in Teams. ワークスペースにあるアプリとそれらの構成の一覧が用意できたら、Teams アプリ ストアで検索を行い、Teams で使用できるものを確認できます*。Once you have a list of apps and their configurations in the Workspace, you can search in the Teams App store to see if they’re available for Teams*.

.slack.com/apps/manage にアクセスしてアプリとカスタム統合の一覧を取得します。Go to .slack.com/apps/manage to get a list of Apps and Custom Integrations. このページには、各アプリが使用している構成の数も表示されます。This page also shows you the number of configurations where each app is in use. カスタム統合の移行性は一定ではありません。Custom Integrations vary in their “migrate-ability.” Web フックの場合は、通常はそれを Microsoft 365 または Office 365 コネクタに送信して、ワークフローを Teams に移動できます。If it’s a Web Hook, you can usually send it to a Microsoft 365 or Office 365 Connector to shift the workflow into Teams. ボットやその他のアプリの Teams への移行については、それぞれの個別の状況に応じて評価を行うことにより計画を立てます。Assess bots and other apps on a case-by-case basis to plan for moving them to Teams.

* アプリの使用が管理者により制限されている場合、使用可能なアプリの完全な一覧が表示されない可能性があります。* If your administrator has restricted apps usage, you may not be looking at the full list of available apps.

ユーザーUsers

Slack で使用してきた ID スキームは、Microsoft 365 または Office 365 に直接マッピングできない可能性があります。The identity schemes you used in Slack might not map directly to Microsoft 365 or Office 365. たとえば、Slack ユーザーのメール アドレスは、Microsoft 365 または Office 365 の職場または学校のアカウントにマッピングできない場合があります。For example, the email addresses of your Slack users may not map to Microsoft 365 or Office 365 work or school accounts. Teams の展開を開始する前に、ユーザー ID マップを作成する必要があります。You should create a user-ID map before you start planning your Teams rollout.

有料版 Slack のサービス プランを使用している場合は、.slack.com/admin/stats#members にアクセスして各ユーザーのメール アドレスやアカウントの種類 (例: シングル チャンネル ゲスト、マルチ チャンネル ゲスト) などのメンバーの詳細情報を取得できます。If you’re on a paid Slack service plan, you can go to .slack.com/admin/stats#members to get member details such as email address and account type for each user (for example, single vs. multi-channel guest).

下に示すスクリプトは、Slack のエクスポートからのメール アドレスを Azure AD と比較することで名前のあいまいさを解消するために使用できます。Here’s a script you can use to compare email addresses from a Slack export against Azure AD to help solve for name ambiguity. このスクリプトでは、ユーザーが Teams に対して有効化されているかどうかも報告されます。It’ll also report if the user is enabled for Teams. PowerShell のサポートが必要な場合は、「Azure PowerShell コマンドレットを使う」を参照してください。If you need help with PowerShell, read Get started with Azure PowerShell.

Connect-AzureAD
Function Get-TimeStamp {
    return "[{0:MM/dd/yy} {0:HH:mm:ss}]" -f (Get-Date)
}

class User {
    [ValidateNotNullOrEmpty()] $ID
    [ValidateNotNullOrEmpty()] $FullName
    [string] $Email
    [string] $UPN
    [ValidateNotNullOrEmpty()][bool] $ExistsAzureAD
    [ValidateNotNullOrEmpty()][bool] $TeamsEnabled
}

$output = New-Object -type System.Collections.ObjectModel.Collection["User"]

$users = Get-Content -Raw -Path .\slackHistory\users.json | ConvertFrom-Json

Write-Host -ForegroundColor Green "$(Get-Timestamp) User Count: " $users.Count

$i=1
Write-Host "$(Get-Timestamp) Attempting direct email match.. `n"
foreach ($slackUser in $users) {
    $user = New-Object User
    $user.id = $slackUser.id
    $user.FullName = $slackUser.name
    try {
        if ($null -ne $slackUser.profile.email) {
            $user.email = $slackUser.profile.email
            $emailSplit = $slackUser.profile.email.Split('@')
            $mailNickName = $emailSplit[0]
            $result = Get-AzureADUser -Filter "MailNickName eq '$($mailNickName)' or UserPrincipalName eq '$($slackUser.profile.email)' or proxyAddresses/any(c:c eq 'smtp:$($slackUser.profile.email)')"
            if ($null -ne $result) {
                $user.ExistsAzureAD = $true
                $user.UPN = $result.UserPrincipalName
                $assignedPlans = $result.assignedPlans
                foreach ($plan in $assignedPlans) {
                    if ($plan.ServicePlanId -eq "57ff2da0-773e-42df-b2af-ffb7a2317929") {
                        if ($plan.CapabilityStatus -eq "Enabled") {
                            $user.TeamsEnabled = $true
                        }
                        else {
                            $user.TeamsEnabled = $false
                        }
                    }
                }
                Write-Host -ForegroundColor Green "$(Get-Timestamp) Current User $($i) - AzureAD object found:" $result.MailNickName
                Write-Host -ForegroundColor Green "$(Get-Timestamp) Current User $($i) - Teams Enabled:" $user.TeamsEnabled
            }
            else {
                $user.ExistsAzureAD = $false
                Write-Host -ForegroundColor Yellow "$(Get-Timestamp) Current User $($i) - AzureAD object not found: " $slackUser.profile.email
            }
        }
        $i++
    }   
    catch
    {
        $user.ExistsAzureAD = $false
        Write-Host -ForegroundColor Yellow "$(Get-Timestamp) Current User $($i) - AzureAD object not found: $($i)" $user.profile.email
        $i++
    }
    $output.Add($user)
}

$output | Export-Csv -Path .\SlackToAzureADIdentityMapping.csv -NoTypeInformation
Write-Host "`n $(Get-Timestamp) Generated SlackToAzureADIdentityMapping.csv. Exiting..."
$output | Export-Csv -Path .\SlackToAzureADIdentityMapping.csv -NoTypeInformation
Write-Host "`n $(Get-Timestamp) Generated SlackToAzureADIdentityMapping.csv. Exiting..."

このセクションの手順を完了すると、次の準備が完了します。When you’re done with this section, you should have:

  • ワークスペースごとのチャンネルの一覧および使用状況の統計情報。A list of Channels per Workspace with usage statistics.
  • Slack アプリの一覧およびチャンネルごとの構成。A list of Slack Apps with configurations per channel.
  • エクスポートする Slack メッセージ履歴の種類の特定 (エクスポートする場合)。Determined what type of Slack message history you want to export (if any).
  • ユーザーの Slack アカウントが Microsoft の職場または学校のアカウントにマッピングされるユーザーの一覧、およびそれらのユーザーが持っている Teams のライセンスの種類。A list of users whose Slack accounts map to Microsoft work or school accounts and which Teams license they have.

Teams の展開を計画するPlan your Teams deployment

以上の手順により、必要なコンテンツの Slack からのエクスポートが完了します (必要のないコンテンツはエクスポートせずに残します)。You’ve exported what you need from Slack (and left behind anything you don’t need). 次に、Teams を展開し、Slack のデータをインポートする方法について説明します。Now it’s time to plan how you’ll roll out Teams and import your Slack data. このステップでは、チームで効果的に使用されてきた内容を使用状況に基づいて評価し、Teams の展開計画にこれらの要素を含めることができます。This is a great opportunity to assess what's worked well for the team based on usage and include those elements in your Teams deployment plan. このセクションの手順を完了すると、Teams のユーザー、チャネル、アプリに関する詳細計画が完成します。At the end of this section, you’ll have a blueprint for your Teams users, channels, and apps.

Teams の展開における考慮対象の概略を次の図に示します。The diagram below gives you a high-level outline of the things you’ll address in your Teams deployment.

Slack から移行における Teams の展開計画の概略。

Teams とチャネルの構造Team and channel structure

Slack ワークスペースは、1 つのチーム、複数のチーム、または組織全体を表す場合があります。A Slack Workspace may represent a single team, multiple teams or an entire organization. 構造を特定する際は、ワークスペースの対象範囲を把握することが重要です。It’s important to understand the scope of the Workspaces as you determine the structure. ワークスペースは、Teams のチームと機能的に 1 番近い Slack 内の要素です。ワークスペースにはチャンネルの集まりが含まれています。The closest relationship to a Teams team in Slack is the Workspace, which contains a collection of channels. Slack から Teams への 3 種類のマッピング パターンおよび各ワークスペースに対して適切な方法を選ぶためのガイダンスを下の図に示します。The diagram below demonstrates 3 different Slack-to-Teams mappings, and guidance for picking the right one for each Workspace.

Slack から Teams へのマッピングSlack-to-Teams mapping
1 Slack ワークスペース ➡️ 1 チーム1 Slack Workspace ➡️ 1 team 必要なチャンネルが 200 未満の小規模な Slack ワークスペース向けFor smaller Slack workspaces that need fewer than 200 channels
成長したときのためのバッファーとプライベート チャンネルの計画を含めますInclude a buffer for growth and private channel planning
1 Slack ワークスペース ➡️ 複数のチーム1 Slack Workspace ➡️ multiple teams Slack ワークスペースのアナリティクス データを使用して、チームの基となる論理的なチャンネルのグループ分けをしますUse your Slack Workspace analytics data to create logical channel groupings, which become the basis of your teams
2 つ以上の Slack ワークスペース ➡️ 複数のチーム2+ Slack Workspaces ➡️ multiple teams Slack のワークスペース アナリティクス データを使用して、チームの基となる論理的なチームおよびチャンネルのグループ分けをしますUse your Slack Workspace analytics data to create logical team and channel groupings, which become the basis of your teams

チャンネルの活発度やチャンネルでの投稿数の評価に役立つ使用状況の統計情報は、サードパーティのソリューションで提供されます。Third-party solutions have usage statistics to help you assess how active the channel is and how many posts there are. 通常、使用頻度の高いチャンネルはチームの計画に含める候補として適しています。Typically, channels that are frequently used would be candidates to include in your team planning.

ヒント

お客様の使用方法にとり必要なものだけを保持することで、Teams で再構築するチャンネルを特定します。Retain only what is required in your approach to determine which channels to recreate in Teams. 詳細については、「チームとチャネルの概要」を参照してください。To learn more, read Overview of teams and channels.

チームの計画Team Planning

上記の計画セクションで作成したチャンネル インベントリを使用して、どのチャンネルをチームにし、どのチャンネルをチーム内のチャネルにするかを Slack の所有者および管理者と協議して決定します。Using the Channel inventory you compiled in the Planning section above, work with your Slack owners and admins to figure out which channels should become teams and which ones should become channels in a team. Excel または PowerBI では保持するチャンネルについての協議を進める上で役立つ追加の分析情報が提供されるため、いずれかを使用して分析に役立てます。Use either Excel or PowerBI to help with this analysis - both can provide additional insights to help drive these discussions on which channels to retain.

ヒント

Teams では現在、チーム 1 つあたりのチャネル数の上限は 200 です。Teams currently has a 200-channel limit per team. 一覧に含まれるチャンネル数がこの上限値に近い場合、それらのチャンネルを 2 つのチームに分割する方法を考える必要があります。If your list of channels is getting close to that limit, you should figure out a way to split them into two separate teams.

チャンネル履歴Channel History

パブリックおよびプライベート チャンネルのチャンネル履歴の保持に関する組織の要件に応じて、GitHub 上の無料のソリューションと有料のソリューションの両方を使用できます。There are both free solutions on GitHub and paid solutions you can use, depending on your organization’s requirements to retain Channel History of Public and Private channels. また、スクリプトを使用してソリューションを Teams に記述できます。Additionally, this could be scripted into Teams.

チームおよびチャンネルの新しい構造のセットアップが Teams で完了したら、エクスポートしたファイルを Teams チャネルの適切なドキュメント ライブラリにコピーできます。Once you’ve set up your new team and channel structure in Teams, you can copy the exported files into the appropriate document libraries in your Teams channels.

コンテンツのインポートを自動化する方法がいくつかあるので、これらを検討します。To automate the importing of your content, there are several approaches you can consider. GitHub 上の無料ソリューション (ChannelSurf または Slack Export Viewer) およびパートナー ソリューションがあります。There are free solutions on GitHub (ChannelSurf or Slack Export Viewer) and partner solutions. 組織のニーズに応じてソリューションを選択します。Choose a solution based on your organization’s needs.

チャンネル ファイルChannel Files

ほとんどのソリューションでは、ファイルをエクスポートできます。Most solutions will export files. ただし、これらは通常チャンネル履歴のリンクとして提供され、プログラムで取得するには API キーを必要とします。However, they’re typically provided as links in the Channel History that require an API key to programmatically retrieve.

Slack に保存されているファイルの場合、チームおよびチャネルのセットアップを Teams で完了すると、プログラムを使用してこれらのファイルを Slack からターゲットの Teams のチャネルにコピーできます。For files stored in Slack, once you’ve set up your teams and channels in Teams, you can programmatically copy them from Slack into the target Teams channel.

次のスクリプトでは、Slack からファイルを取得します。The following script retrieves files from Slack. コンピューター上の指定された Slack のエクスポートが検索され、各ターゲット チャネルにフォルダーが作成され、すべてのファイルがその場所にダウンロードされます。It searches the specified Slack export on your computer, creates a folder in each target channel, and downloads all of the files to that location. データを抽出できるサードパーティのソリューションがあります。Third-party solutions exist that can extract data. PowerShell のサポートが必要な場合は、「Azure PowerShell コマンドレットを使う」を参照してください。If you need help with PowerShell, read Get started with Azure PowerShell.

$ExportPath = ".\slackHistory"
$ExportContents = Get-ChildItem -path $ExportPath -Recurse
Function Get-TimeStamp {
    return "[{0:MM/dd/yy} {0:HH:mm:ss}]" -f (Get-Date)
}

class File {
    [string] $Name
    [string] $Title
    [string] $Channel
    [string] $DownloadURL
    [string] $MimeType
    [double] $Size
    [string] $ParentPath
    [string] $Time
}

$channelList = Get-Content -Raw -Path .\slackHistory\channels.json | ConvertFrom-Json
$Files = New-Object -TypeName System.Collections.ObjectModel.Collection["File"]

Write-Host -ForegroundColor Green "$(Get-TimeStamp) Starting Step 1 (processing channel export for files) of 2. Total Channel Count: $($channelList.Count)"
#Iterate through each Channel listed in the Archive
foreach ($channel in $channelList) {
    #Iterate through Channel folders from the Export
    foreach ($folder in $ExportContents)
    {
        #If Channel Name matches..
        if ($channel.name -eq $folder){
            $channelJsons = Get-ChildItem -Path $folder.FullName -File
            Write-Host -ForegroundColor White "$(Get-TimeStamp) Info: Starting to process $($channelJsons.Count) days of content for #$($channel.name)."
            #Start processing the daily JSON for files
            foreach ($json in $channelJsons){
                $currentJson = Get-Content -Raw -Path $json.FullName | ConvertFrom-Json
                #Write-Host -ForegroundColor Yellow "$(Get-TimeStamp) Info: Processing $($json.Name) in #$($channel.name).."
                #Iterate through every action
                foreach ($entry in $currentJson){
                    #If the action contained file(s)..
                    if($null -ne $entry.files){
                        #Iterate through each file and add it to the List of Files to download
                        foreach ($item in $entry.Files) {
                        $file = New-Object -TypeName File
                            if ($null -ne $item.url_private_download){
                                $file.Name = $item.name
                                $file.Title = $item.Title
                                $file.Channel = $channel.name
                                $file.DownloadURL = $item.url_private_download
                                $file.MimeType = $item.mimetype
                                $file.Size = $item.size
                                $file.ParentPath = $folder.FullName
                                $file.Time = $item.created
                                $files.Add($file)
                            }
                        }
                    }
                }
            }
        }
    }
}
Write-Host -ForegroundColor Green "$(Get-TimeStamp) Step 1 of 2 complete. `n"

Write-Host -ForegroundColor Green "$(Get-TimeStamp) Starting step 2 (creating folders and downloading files) of 2."
#Determine which Files folders need to be created
$FoldersToMake = New-Object System.Collections.ObjectModel.Collection["string"]
foreach ($file in $files){
    if ($FoldersToMake -notcontains $file.Channel){
        $FoldersToMake.Add($file.Channel)
    }
}

#Create Folders
foreach ($folder in $FoldersToMake){
    #$fullFolderPath = $file.ParentPath + "\Files"
    $fullFolderPath = $ExportPath +"\$($folder)"
    $fullFilesPath = $ExportPath +"\$($folder)\Files"
    if (-not (Test-Path $fullFilesPath)){
        New-Item -Path $fullFolderPath  -Name "Files" -ItemType "directory"
    }
}

#Downloading Files
foreach ($file in $files)
{
    Write-Host -ForegroundColor Yellow "$(Get-TimeStamp) Downloading $($file.Name)."
    $fullFilePath = $file.ParentPath + "\Files\" + $file.Name
        if (-not (Test-Path $fullFilePath)){
            try{
                $request = (New-Object System.Net.WebClient).DownloadFile($file.DownloadURL, $fullFilePath)
            }
            catch [System.Net.WebException]{
                Write-Host -ForegroundColor Red "$(Get-TimeStamp) Error: Unable to download $($file.Name) to $($fullFilePath)"
            }   
        }
        else {
            try{
                $extensionPosition = $file.name.LastIndexOf('.')
                $splitFileName = $file.name.Substring(0,$extensionPosition)
                $splitFileExtention = $file.name.Substring($extensionPosition)
                $newFileName = $splitFileName + $file.Time + $splitFileExtention
                $fullFilePath = $file.ParentPath + "\Files\" + $newFileName
                $request = (New-Object System.Net.WebClient).DownloadFile($file.DownloadURL, $fullFilePath)
            }
            catch [System.Net.WebException]{
                Write-Host -ForegroundColor Red "$(Get-TimeStamp) Error: Unable to download $($file.Name) to $($fullFilePath)"
            }   
        }
}
Write-Host -ForegroundColor Green "$(Get-TimeStamp) Step 2 of 2 complete. `n"
Write-Host -ForegroundColor Green "$(Get-TimeStamp) Exiting.."

アプリとカスタム統合Apps and Custom Integrations

Slack アプリとカスタム統合 (構成を含む) の一覧を確認し、その中で Teams に移動するものを決めます。Review your list of Slack apps and custom integrations (with configurations) and decide which ones you want to move to Teams. 利用可能なアプリがあるかどうかを Teams Marketplace で確認します。Check the Teams Marketplace to see if an app is available. ない場合でも、多くの場合代替方法を見つけられます。If not, there are likely alternatives.

Teams に追加するアプリを特定するには、アプリの使用状況を把握することが重要です。To figure out which apps to add to Teams, it’s important to understand how the app is being used. "このアプリはこのチャンネルにどのような機能を提供しているか?" と考えることで、アプリが提供している成果物を把握できます。By asking the question "what functionality is the app providing to this channel?", you'll learn about the outcome the app is delivering.

多くの場合、アプリは主に外部サービス (例: 監視システム) からイベント主導のデータを受信し、Slack にメッセージをプッシュします。In many cases, apps primarily receive event-driven data from an external service (for example, monitoring system) and push a message into Slack. これと同じ結果は、Microsoft 365 コネクタを使用してイベントに基づいてメッセージを Teams にプッシュする方法で得られます。You can achieve the same outcome by using a Microsoft 365 Connector that can push messages into Teams based on events.

統合のために Teams で Microsoft 365 コネクタが使用された Slack のソリューションの例を次に示します。Below are examples of Slack solutions where a Microsoft 365 Connector was used in Teams for integration.

ユーザーの準備状況と導入計画User readiness and adoption plan

ソフトウェアの展開を成功させられるかどうかは、変更に向けたユーザーの準備度合にかかっています。The cornerstone of any successful software deployment hinges on how prepared users are for the change. Slack を使用している組織内のユーザーは Teams の概念をすばやく理解できると思われますが、ユーザーがスムーズに移行できるようにするにはやはりトレーニングが必要です。Users in your organization using Slack will easily understand Teams concepts, but training is still needed to help them make a smooth transition. Teams 導入のための包括的なリソースについては、「Teams 導入ハブ」を参照してください。For a comprehensive set of Teams adoption resources, go to the Teams adoption hub.

たとえば、チャネルは両方の製品に含まれる機能ですが、使用法はそれぞれの製品で異なります。For example, both products feature channels, but they’re used differently in each product. たとえば、Slack のチャンネルは多くの場合、Teams のチャットのように、短期間の事務的な会話に使用されます。For example, often a Channel in Slack is used like a chat in Teams for short-term, transactional conversations. 他にも、スレッド形式 / 非スレッド形式の会話や通知設定の調整などにおいても顕著な違いがあります。Other notable differences are around threaded/non-threaded conversations and tuning notification settings.

Teams のエンドユーザー ビデオ トレーニングに役立つ豊富なライブラリをぜひご覧ください。Check out our rich library of End-user Teams video training.

Teams に移行するMove to Teams

これで移行計画が定義されたので、Teams でチャネルとチームの作成を開始できます。Now that your transition plan is defined, you can begin creating your teams and channels in Teams.

チームとチャネルを作成したら、Slack チャンネルから Teams へのファイルのコピーとアプリの構成を開始します。Once you’ve created your teams & channels, begin copying files from Slack channels into Teams and configuring your apps. 履歴を保持するソリューションを使用する場合、それもこの段階で構成できます。If you’re using a solution to retain history, that can be configured now as well. これで、ユーザーへのライセンスの付与 (まだライセンスを付与していない場合) と正しいチームへのユーザーの追加を開始する準備ができました。Then you’re ready to start licensing users (if they aren’t licensed already) and adding them to the appropriate teams. 追加のエクスポートやファイルのコピーをせずに済むよう、あらかじめ決められた日に、各ユーザーをチームへ追加するのと同時に Slack へのアクセスを削除することを検討してください。To reduce the need for additional exports and file copies, consider removing Slack access at an agreed-upon date that coincides with each user’s addition to the team. これにより、ファイルや履歴の差分変更の再エクスポートとインポートが不要になります。This avoids needing to re-export and import delta changes on files and history.

下の図の手順に従って、組織で Teams を展開します。Follow the steps in the diagram below to roll out Teams in your organization. 詳細については、「Teams の展開方法」を参照してください。For more information, check out How to roll out Teams.

Slack から Teams への移行手順を示す図