Migrieren von Slack auf Microsoft TeamsMigrate from Slack to Microsoft Teams

Dieser Artikel führt Sie durch den Weg der Umstellung von Slack auf Microsoft Teams.This article walks you through the journey of moving to Microsoft Teams from Slack.

Bei der Planung der Umstellung Ihrer Organisation von Slack auf Teams ist es wichtig zu entscheiden, was Sie beibehalten möchten (sofern vorhanden).When planning your organization’s move to Teams from Slack, it's important to decide what you need to keep (if anything). Wir beginnen mit einer Beschreibung, welche Arten von Daten migriert werden können, und führen Sie dann durch, wie Sie Ihre Bedürfnisse einschätzen, Ihre Umstellung planen und dann den Schritt machen können.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.

Das nachstehende Diagramm zeigt die Architektur von Slack auf hoher Ebene.The diagram below shows the Slack architecture at a high level.

Abbildung, welche die Architektur von Slack auf hoher Ebene verlangsamt

Planen Sie Ihre Migration von SlackPlan your migration from Slack

Was Sie migrieren können und was nichtWhat you can and can’t migrate

Ihr Slack-Serviceplan bestimmt, was Sie migrieren können und was nicht.Your Slack service plan will determine what you can and can’t migrate. Beispielsweise lassen einige Slack-Servicepläne nur das Exportieren von Verlauf und Dateien öffentlicher Kanäle zu, andere erfordern eine DocuSign-Anfrage, um private Kanäle und Direktnachrichten einzuschließen.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.

Um den Servicegrad Ihres Slack-Arbeitsbereichs zu bestimmen, melden Sie sich bei Slack an und notieren Sie sich Ihren Plantyp auf der Seite Über diesen Arbeitsbereich.To determine your Slack Workspace service level, log into Slack and note your plan type on the About this Workspace page.

Um mehr über die Exportmöglichkeiten von Slack zu erfahren, besuchen Sie die Slack-Website: 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

Das folgende Diagramm gibt Ihnen einen Überblick über die Slack-Migrationslandschaft, die wir in diesem Artikel behandeln werden.The diagram below gives you a high-level look at the Slack migration landscape that we’ll cover in this article.

Diagramm, das die Slack-Migrationslandschaft anzeigt.

Folgende Begriffe sollten Sie nach Abschluss dieses Abschnitts kennen:When you're done with this section, you should understand:

  • Der Servicegrad Ihrer Slack-ArbeitsbereicheThe service level of your Slack Workspaces
  • Was kann exportiert werden und was nichtWhat can and can't be exported
  • Allgemeine Vorgehensweisen beim ExportierenCommon approaches to exporting

Bewerten Sie Ihre Slack-ArbeitsbereicheAssess your Slack workspaces

Bevor Sie den Migrationsplan Ihrer Organisation planen können, müssen Sie einige Informationen über Ihre Slack-Arbeitsbereiche zusammenstellen.Before you can plan your organization’s migration plan, you need to pull together some information about your Slack workspaces. Wenn Sie verstehen, wie Ihre Slack-Arbeitsbereiche genutzt werden, können Sie den Umfang Ihrer Migration bestimmen.Understanding how your Slack workspaces are being used helps you determine the scope of your migration. Zum Beispiel, wie viele Arbeitsbereiche werden verschoben?For example, how many workspaces are being moved? Werden sie von einer bestimmten Abteilung, von vielen oder von einer ganzen Organisation verwendet?Are they used by a specific department, many, or in use by an entire organization?

Wenn Sie Mitglied der Slack-Arbeitsbereiche sind, die Sie migrieren möchten, können Sie die Nutzung selbst analysieren, indem Sie zu .slack.com/stats gehen. Überprüfen Sie die Registerkarten „Kanäle“ und „Mitglieder“, um nach Nutzungsmustern zu suchen.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. Entscheiden Sie, welche Arbeitsbereiche Sie migrieren möchten (und welche Sie zurücklassen möchten).Decide which workspaces you want to migrate (and which ones you want to leave behind).

Hinweis

Wenn Sie keinen Zugriff auf die Seite „Statistiken“ haben, sind Sie kein Administrator oder Besitzer.If you don’t have access to the stats page, you’re not an admin or owner.

Exportieren von KanälenExport Channels

In Slack treten Benutzer einem Kanal bei, der Teil eines Slack-Arbeitsbereichs ist, während in Teams Benutzer einem Team beitreten, das eine Sammlung von Kanälen ist.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. Wir empfehlen, dass Sie die Slack-Analyse verwenden, um zu sehen, wie viel Aktivität in jedem Kanal stattfindet, damit Sie entscheiden können, welche Kanäle Sie verschieben möchten.We recommend that you use Slack analytics to see how much activity happens in each channel to help you decide which channels to move. Anhand der Ergebnisliste können Sie herausfinden, wie Sie Ihre Slack-Kanäle zu Teams in Teams gruppieren und wer Mitglied in jedem Team sein sollte.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.

Wenn Sie einen kostenpflichtigen Slack-Serviceplan haben (alles andere als kostenlos), können Sie die Analysefunktionen von Slack (.slack.com/admin/stats#channels) verwenden, um zu sehen, wie aktiv ein Kanal ist, wann er zuletzt genutzt wurde und wie viele Personen Mitglieder sind.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. Dies kann Ihnen bei der Entscheidung helfen, ob Sie den Kanal migrieren möchten oder nicht.This can help you decide whether to migrate the channel. Standardmäßig können Inhalte öffentlicher Kanäle (Nachrichten und Dateien) exportiert werden.By default, public channels content (messages and files) can be exported. Abhängig von Ihrem Slack-Serviceplan und ob Sie private Kanäle und Direktnachrichten von Slack angefordert haben, können diese exportiert werden.Depending on your Slack service plan and whether you’ve requested Private Channels and Direct Messages from Slack, those can be exported.

Um mehr über die Exportmöglichkeiten von Slack zu erfahren, besuchen Sie die Slack-Website: 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

Wichtig

Überprüfen Sie die Datenschutz- und Compliance-Anforderungen Ihrer Organisation um Kanaldaten.Check your organization’s privacy and compliance requirements around channel data. Ihre Organisation hat möglicherweise Compliance-Anforderungen in Bezug auf die Handhabung, Speicherung und Verarbeitung dieser Daten sowie die Einhaltung des Lebenszyklus von Endbenutzer identifizierbaren Inhalten (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).

Exportieren von DirektnachrichtenExport Direct Messages

Direktnachrichten sind die gleichen wie Chats in Teams, die Nicht-Kanalunterhaltungen sind, entweder 1:1 oder 1-zu-viele.Direct Messages are the same as chats in Teams, which are 1:1 or 1-to-many non-channel conversations. Die Exportfähigkeit hängt von Ihrem Slack-Serviceplan ab und davon, ob Sie die Aufnahme von Direktnachrichten in Ihren Slack-Export angefordert haben.Export-ability depends on your Slack service plan and if you’ve requested Direct Messages to be included in your Slack Export. Teams unterstützt das Importieren von Direktnachrichten zurzeit nicht.Teams doesn’t support importing Direct messages currently. Wenden Sie sich an einen Microsoft-Partner, um mehr über Lösungen von Drittanbietern zu erfahren, die Sie ausprobieren können, die Inhalte von Direktnachrichten in Teams integrieren.Consult a Microsoft partner to learn about third-party solutions you can explore that bring Direct Messages content into Teams.

Für das Exportieren von Direktnachrichten können Sie im Slack App Store Tools, wie z. B. Export, ausprobieren.For exporting Direct Messages, check out tools, such as Export, in the Slack App Store.

Apps und benutzerdefinierte IntegrationenApps and custom integrations

Apps in Slack sind wie Apps in Teams.Apps in Slack are like apps in Teams. Sobald Sie eine Liste von Apps und deren Konfigurationen im Arbeitsbereich haben, können Sie im Team App Store nachsehen, ob sie für Teams* verfügbar sind.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*.

Besuchen Sie .slack.com/apps/manage, um eine Liste der Apps und benutzerdefinierten Integrationen zu erhalten.Go to .slack.com/apps/manage to get a list of Apps and Custom Integrations. Diese Seite zeigt Ihnen auch die Anzahl der Konfigurationen, in denen jede App verwendet wird.This page also shows you the number of configurations where each app is in use. Benutzerdefinierte Integrationen unterscheiden sich in ihrer „Migrationsfähigkeit“.Custom Integrations vary in their “migrate-ability.” Wenn es sich um einen Webhook handelt, können Sie ihn normalerweise an einen Microsoft 365- oder Office 365-Connector senden, um den Workflow in Teams zu überführen.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. Bewerten Sie Bots und andere Apps von Fall zu Fall, um sie in Teams zu verschieben.Assess bots and other apps on a case-by-case basis to plan for moving them to Teams.

* Wenn Ihr Administrator die Nutzung von Apps eingeschränkt hat, werden Sie möglicherweise nicht die vollständige Liste der verfügbaren Apps sehen.* If your administrator has restricted apps usage, you may not be looking at the full list of available apps.

BenutzerUsers

Die Identitätsschemas, die Sie in Slack verwendet haben, werden möglicherweise nicht direkt zu Microsoft 365 oder Office 365 zugeordnet.The identity schemes you used in Slack might not map directly to Microsoft 365 or Office 365. So können beispielsweise die E-Mail-Adressen Ihrer Slack-Benutzer nicht zu den Geschäfts-, Schul oder Unikonten von Microsoft 365 oder Office 365 zugeordnet werden.For example, the email addresses of your Slack users may not map to Microsoft 365 or Office 365 work or school accounts. Sie sollten eine Benutzer-ID-Zuordnung erstellen, bevor Sie mit der Planung des Rollouts Ihres Teams beginnen.You should create a user-ID map before you start planning your Teams rollout.

Wenn Sie einen kostenpflichtigen Slack-Serviceplan haben, besuchen Sie .slack.com/admin/stats#members, um Mitgliederdaten wie E-Mail-Adresse und Kontotyp für jeden Benutzer (z. B. Einzel- oder Mehrkanalgast) zu erhalten.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).

Hier ist ein Skript, mit dem Sie E-Mail-Adressen aus einem Slack-Export mit Azure AD vergleichen können, um die Mehrdeutigkeit von Namen zu lösen.Here’s a script you can use to compare email addresses from a Slack export against Azure AD to help solve for name ambiguity. Es wird auch angezeigt, ob der Benutzer für Teams aktiviert ist.It’ll also report if the user is enabled for Teams. Wenn Sie Hilfe zu PowerShell benötigen, lesen Sie Erste Schritte mit 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..."

Folgendes sollten Sie nach Abschluss dieses Abschnitts haben:When you’re done with this section, you should have:

  • Eine Liste der Kanäle pro Arbeitsbereich mit Nutzungsstatistiken.A list of Channels per Workspace with usage statistics.
  • Eine Liste der Slack-Apps mit Konfigurationen pro Kanal.A list of Slack Apps with configurations per channel.
  • Bestimmt, welche Art von Slack-Nachrichtenverlauf Sie exportieren möchten (sofern vorhanden).Determined what type of Slack message history you want to export (if any).
  • Eine Liste von Benutzern, deren Slack-Konten den Arbeits- oder Schulkonten von Microsoft zugeordnet sind und welche Teams-Lizenz sie haben.A list of users whose Slack accounts map to Microsoft work or school accounts and which Teams license they have.

Planen Ihrer Teams-BereitstellungPlan your Teams deployment

Sie haben das, was Sie benötigen, aus Slack exportiert (und alles zurückgelassen, was Sie nicht benötigen).You’ve exported what you need from Slack (and left behind anything you don’t need). Jetzt ist es an der Zeit das Rollout von Teams zu planen und Ihre Slack-Daten zu importieren.Now it’s time to plan how you’ll roll out Teams and import your Slack data. Dies ist eine großartige Gelegenheit, um zu beurteilen, was für das Team auf der Grundlage der Nutzung gut funktioniert hat, und diese Elemente in Ihrer Teams-Bereitstellungsplanung aufzunehmen.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. Am Ende dieses Abschnitts finden Sie eine Blaupause für die Benutzer, Kanäle und Apps Ihres Teams.At the end of this section, you’ll have a blueprint for your Teams users, channels, and apps.

Das folgende Diagramm gibt Ihnen einen Überblick über die Elemente, die Sie in Ihrer Teams-Bereitstellung ansprechen werden.The diagram below gives you a high-level outline of the things you’ll address in your Teams deployment.

Allgemeine Übersicht über die Planung der Bereitstellung von Teams aus Slack.

Team- und KanalstrukturTeam and channel structure

Ein Slack-Arbeitsbereich kann ein einzelnes Team, mehrere Teams oder eine ganze Organisation sein.A Slack Workspace may represent a single team, multiple teams or an entire organization. Es ist wichtig, den Umfang der Arbeitsbereiche zu kennen, wenn Sie die Struktur bestimmen.It’s important to understand the scope of the Workspaces as you determine the structure. Die engste Beziehung zu einem Teams-Team in Slack ist der Arbeitsbereich, der eine Sammlung von Kanälen enthält.The closest relationship to a Teams team in Slack is the Workspace, which contains a collection of channels. Das folgende Diagramm zeigt 3 verschiedene Slack-to-Teams-Zuordnungen und eine Anleitung zur Auswahl der richtigen für jeden Arbeitsbereich.The diagram below demonstrates 3 different Slack-to-Teams mappings, and guidance for picking the right one for each Workspace.

Slack-to-Teams-ZuordnungSlack-to-Teams mapping
1 Slack-Arbeitsbereich: arrow_right: 1 Team1 Slack Workspace ➡️ 1 team Für kleinere Slack-Arbeitsbereiche, die weniger als 200 Kanäle benötigenFor smaller Slack workspaces that need fewer than 200 channels
Binden Sie einen Puffer für Wachstum und private Kanalplanung einInclude a buffer for growth and private channel planning
1 Slack-Arbeitsbereich: arrow_right: mehrere Teams1 Slack Workspace ➡️ multiple teams Verwenden Sie die Analysedaten Ihres Slack-Arbeitsbereichs, um logische Kanalgruppierungen zu erstellen, welche die Grundlage für Ihre Teams bilden.Use your Slack Workspace analytics data to create logical channel groupings, which become the basis of your teams
Mehr als 2 Slack-Arbeitsbereiche: arrow_right: mehrere Teams2+ Slack Workspaces ➡️ multiple teams Verwenden Sie die Analysedaten Ihres Slack-Arbeitsbereichs, um logische Team- und Kanalgruppierungen zu erstellen, welche die Grundlage für Ihre Teams bilden.Use your Slack Workspace analytics data to create logical team and channel groupings, which become the basis of your teams

Lösungen von Drittanbietern verfügen über Nutzungsstatistiken, die Ihnen helfen zu beurteilen, wie aktiv der Kanal ist und wie viele Beiträge es gibt.Third-party solutions have usage statistics to help you assess how active the channel is and how many posts there are. Typischerweise sind häufig genutzte Kanäle die geeigneten Kandidaten, um sie in Ihre Teamplanung einzubeziehen.Typically, channels that are frequently used would be candidates to include in your team planning.

Tipp

Behalten Sie nur das, was in Ihrem Ansatz erforderlich ist, um zu bestimmen, welche Kanäle in Teams wiederhergestellt werden sollen.Retain only what is required in your approach to determine which channels to recreate in Teams. Weitere Informationen finden Sie unter Übersicht über Teams und Kanäle.To learn more, read Overview of teams and channels.

TeamplanungTeam Planning

Verwenden Sie das Kanalinventar, das Sie im Abschnitt „Planung“ oben zusammengestellt haben, und arbeiten Sie mit Ihren Slack-Besitzern und Administratoren zusammen, um herauszufinden, welche Kanäle zu Teams werden sollen und welche zu Kanälen in einem Team werden sollen.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. Verwenden Sie entweder Excel oder PowerBI, um bei dieser Analyse zu helfen – beide können zusätzliche Erkenntnisse liefern, um diese Diskussionen darüber anzuregen, welche Kanäle beibehalten werden sollen.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.

Tipp

Teams hat derzeit ein 200-Kanal-Limit pro Team.Teams currently has a 200-channel limit per team. Wenn Ihre Liste der Kanäle sich diesem Limit nähert, sollten Sie einen Weg finden, sie in zwei getrennte Teams aufzuteilen.If your list of channels is getting close to that limit, you should figure out a way to split them into two separate teams.

KanalhistorieChannel History

Es gibt sowohl kostenlose Lösungen auf GitHub als auch kostenpflichtige Lösungen, die Sie verwenden können, je nach den Anforderungen Ihrer Organisation, um die Kanalhistorie der öffentlichen und privaten Kanäle zu erhalten.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. Außerdem könnte dies in Teams geskriptet werden.Additionally, this could be scripted into Teams.

Nachdem Sie Ihre neue Team- und Kanalstruktur in Teams eingerichtet haben, können Sie die exportierten Dateien in die entsprechenden Dokumentenbibliotheken in Ihren Teams-Kanälen kopieren.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.

Um das Importieren Ihrer Inhalte zu automatisieren, gibt es mehrere Ansätze, die Sie in Betracht ziehen können.To automate the importing of your content, there are several approaches you can consider. Es gibt kostenlose Lösungen auf GitHub (ChannelSurf oder Slack Export Viewer) und Partnerlösungen.There are free solutions on GitHub (ChannelSurf or Slack Export Viewer) and partner solutions. Wählen Sie eine Lösung, die auf den Anforderungen Ihrer Organisation basiert.Choose a solution based on your organization’s needs.

KanaldateienChannel Files

Die meisten Lösungen exportieren Dateien.Most solutions will export files. Sie werden jedoch in der Regel als Links in der Kanalhistorie bereitgestellt, die einen API-Schlüssel zum programmgesteuerten Abrufen erfordern.However, they’re typically provided as links in the Channel History that require an API key to programmatically retrieve.

Für Dateien, die in Slack gespeichert sind, können Sie, nachdem Sie Ihre Teams und Kanäle in Teams eingerichtet haben, diese programmgesteuert aus Slack in den Zielkanal von Teams kopieren.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.

Das folgende Skript ruft Dateien aus Slack ab.The following script retrieves files from Slack. Es durchsucht den angegebenen Slack-Export auf Ihrem Computer, erstellt einen Ordner in jedem Zielkanal und lädt alle Dateien an diesen Ort herunter.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. Es gibt Lösungen von Drittanbietern, die Daten extrahieren können.Third-party solutions exist that can extract data. Wenn Sie Hilfe zu PowerShell benötigen, lesen Sie Erste Schritte mit 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 und benutzerdefinierte IntegrationenApps and Custom Integrations

Überprüfen Sie Ihre Liste der Slack-Apps und benutzerdefinierten Integrationen (mit Konfigurationen) und entscheiden Sie, welche Sie in Teams verschieben möchten.Review your list of Slack apps and custom integrations (with configurations) and decide which ones you want to move to Teams. Schauen Sie auf den Teams Marketplace, um zu sehen, ob eine App verfügbar ist.Check the Teams Marketplace to see if an app is available. Ist das nicht der Fall, gibt es wahrscheinlich Alternativen.If not, there are likely alternatives.

Um herauszufinden, welche Apps zu Teams hinzugefügt werden sollen, ist es wichtig zu verstehen, wie die App verwendet wird.To figure out which apps to add to Teams, it’s important to understand how the app is being used. Wenn Sie die Frage stellen: „Welche Funktionalität bietet die App für diesen Kanal?“, erfahren Sie mehr über das Ergebnis, das die App liefert.By asking the question "what functionality is the app providing to this channel?", you'll learn about the outcome the app is delivering.

In vielen Fällen empfangen Apps in erster Linie ereignisgesteuerte Daten von einem externen Dienst (z. B. Überwachungssystem) und schieben eine Nachricht in den Slack.In many cases, apps primarily receive event-driven data from an external service (for example, monitoring system) and push a message into Slack. Sie können das gleiche Ergebnis erzielen, indem Sie einen Microsoft 365-Connector verwenden, der Nachrichten basierend auf Ereignissen in Teams verschieben kann.You can achieve the same outcome by using a Microsoft 365 Connector that can push messages into Teams based on events.

Nachfolgend finden Sie Beispiele für Slack-Lösungen, bei denen in Teams ein Microsoft 365-Connector zur Integration verwendet wurde.Below are examples of Slack solutions where a Microsoft 365 Connector was used in Teams for integration.

Benutzerbereitschaft und ÜbernahmeplanUser readiness and adoption plan

Der Grundstein für eine erfolgreiche Softwarebereitstellung hängt davon ab, wie gut die Benutzer auf den Wechsel vorbereitet sind.The cornerstone of any successful software deployment hinges on how prepared users are for the change. Benutzer in Ihrer Organisation, die Slack verwenden, werden die Konzepte des Teams leicht verstehen, aber es ist immer noch eine Schulung erforderlich, um ihnen einen reibungslosen Übergang zu ermöglichen.Users in your organization using Slack will easily understand Teams concepts, but training is still needed to help them make a smooth transition. Um eine umfassende Auswahl an Ressourcen für die Teams-Übernahme zu erhalten, besuchen Sie bitte den Teams-Übernahmehub.For a comprehensive set of Teams adoption resources, go to the Teams adoption hub.

Beispielsweise verfügen beide Produkte über Kanäle, aber sie werden in jedem Produkt unterschiedlich verwendet.For example, both products feature channels, but they’re used differently in each product. Beispielsweise wird oft ein Kanal in Slack wie ein Chat in Teams für kurzfristige, transaktionale Unterhaltungen verwendet.For example, often a Channel in Slack is used like a chat in Teams for short-term, transactional conversations. Weitere bemerkenswerte Unterschiede gibt es bei Thread-Unterhaltung und Nicht-Thread-Unterhaltung sowie bei der Einstellung von Benachrichtigungen.Other notable differences are around threaded/non-threaded conversations and tuning notification settings.

Schauen Sie sich unsere umfangreiche Bibliothek von Teams-Videoschulung für Endbenutzer an.Check out our rich library of End-user Teams video training.

Umstieg auf TeamsMove to Teams

Nachdem Ihr Übergangsplan definiert ist, können Sie mit der Erstellung Ihrer Teams und Kanäle in Teams beginnen.Now that your transition plan is defined, you can begin creating your teams and channels in Teams.

Sobald Sie Ihre Teams und Kanäle erstellt haben, fangen Sie an, Dateien aus Slack-Kanälen in Teams zu kopieren und Ihre Apps zu konfigurieren.Once you’ve created your teams & channels, begin copying files from Slack channels into Teams and configuring your apps. Wenn Sie eine Lösung zum Speichern der Historie verwenden, kann diese jetzt auch konfiguriert werden.If you’re using a solution to retain history, that can be configured now as well. Dann können Sie mit der Lizenzierung von Benutzern beginnen (wenn sie noch nicht lizenziert sind) und sie zu den entsprechenden Teams hinzufügen.Then you’re ready to start licensing users (if they aren’t licensed already) and adding them to the appropriate teams. Um den Bedarf an zusätzlichen Exporten und Dateikopien zu reduzieren, sollten Sie den Slack-Zugriff zu einem vereinbarten Datum entfernen, das mit dem Hinzufügen jedes Benutzers zum Team übereinstimmt.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. Dadurch entfällt das erneute Exportieren und Importieren von Deltaänderungen an Dateien und Historie.This avoids needing to re-export and import delta changes on files and history.

Befolgen Sie die Schritte in der folgenden Abbildung, um Teams in Ihrer Organisation einzuführen.Follow the steps in the diagram below to roll out Teams in your organization. Weitere Informationen finden Sie unter Rollout von Teams.For more information, check out How to roll out Teams.

Das Diagramm listet die Schritte des Wechsels von Slack zu Teams auf.